diff --git a/Cargo.toml b/Cargo.toml index db0e3f7..4b66d28 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,7 +25,7 @@ netlink-sys = { version = "0.8" } netlink-packet-utils = { version = "0.5" } netlink-packet-route = { version = "0.21" } netlink-packet-core = { version = "0.7" } -netlink-proto = { default-features = false, version = "0.11" } +netlink-proto = { default-features = false, version = "0.11.4" } nix = { version = "0.29.0", default-features = false, features = ["fs", "mount", "sched", "signal"] } tokio = { version = "1.0.1", features = ["rt"], optional = true} async-global-executor = { version = "2.0.2", optional = true } diff --git a/src/connection.rs b/src/connection.rs index 097b8ba..c5230d4 100644 --- a/src/connection.rs +++ b/src/connection.rs @@ -33,3 +33,19 @@ where netlink_proto::new_connection_with_socket(NETLINK_ROUTE)?; Ok((conn, Handle::new(handle), messages)) } + +#[allow(clippy::type_complexity)] +pub fn from_socket( + socket: S, +) -> ( + Connection, + Handle, + UnboundedReceiver<(NetlinkMessage, SocketAddr)>, +) +where + S: AsyncSocket, +{ + let (conn, handle, messages) = + netlink_proto::from_socket_with_codec(socket); + (conn, Handle::new(handle), messages) +} diff --git a/src/lib.rs b/src/lib.rs index 5d830dc..8b3b562 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -29,6 +29,7 @@ mod traffic_control; pub use crate::addr::{ AddressAddRequest, AddressDelRequest, AddressGetRequest, AddressHandle, }; +pub use crate::connection::from_socket; #[cfg(feature = "tokio_socket")] pub use crate::connection::new_connection; pub use crate::connection::new_connection_with_socket;