diff --git a/core/coms/socket/src/config.rs b/core/coms/socket/src/config.rs index 3ef412f3b9ce18f7082a2058462ca73db2551fbf..c53e275aaf0c785521dd5352e636f8eae36af99a 100644 --- a/core/coms/socket/src/config.rs +++ b/core/coms/socket/src/config.rs @@ -206,7 +206,7 @@ impl SocketConfig { let config = &self.data.borrow().Socket; self.parse_sockets(config.ListenStream.as_ref(), ListenItem::Stream)?; self.parse_sockets(config.ListenDatagram.as_ref(), ListenItem::Datagram)?; - self.parse_sockets(&[config.ListenNetlink.clone()], ListenItem::Netlink)?; + self.parse_sockets(config.ListenNetlink.as_ref(), ListenItem::Netlink)?; self.parse_sockets( config.ListenSequentialPacket.as_ref(), ListenItem::SequentialPacket, diff --git a/core/coms/socket/src/rentry.rs b/core/coms/socket/src/rentry.rs index b6165249287c663190c4a4d292f9ba2c758bac1c..50b0b0e5234d329be3e45fa955aee04590ac8dbf 100644 --- a/core/coms/socket/src/rentry.rs +++ b/core/coms/socket/src/rentry.rs @@ -42,6 +42,10 @@ fn deserialize_pathbuf_vec(s: &str) -> Result, core::error::Error> Ok(res) } +fn deserialize_netlink_vec(s: &str) -> Result, core::error::Error> { + Ok(vec![s.to_string()]) +} + #[derive(UnitSection, Default, Clone, Debug, Serialize, Deserialize)] #[allow(dead_code)] pub(super) struct SectionSocket { @@ -60,8 +64,8 @@ pub(super) struct SectionSocket { pub ListenStream: Vec, #[entry(append)] pub ListenDatagram: Vec, - #[entry(default = String::new())] - pub ListenNetlink: String, + #[entry(append, parser = deserialize_netlink_vec)] + pub ListenNetlink: Vec, #[entry(append)] pub ListenSequentialPacket: Vec, #[entry(append)]