1use std::io;
4
5use futures::channel::mpsc::UnboundedReceiver;
6
7use crate::{
8 packet::{NetlinkMessage, RtnlMessage},
9 proto::Connection,
10 sys::{protocols::NETLINK_ROUTE, AsyncSocket, SocketAddr},
11 Handle,
12};
13
14#[cfg(feature = "tokio_socket")]
15#[allow(clippy::type_complexity)]
16pub fn new_connection() -> io::Result<(
17 Connection<RtnlMessage>,
18 Handle,
19 UnboundedReceiver<(NetlinkMessage<RtnlMessage>, SocketAddr)>,
20)> {
21 new_connection_with_socket()
22}
23
24#[allow(clippy::type_complexity)]
25pub fn new_connection_with_socket<S>() -> io::Result<(
26 Connection<RtnlMessage, S>,
27 Handle,
28 UnboundedReceiver<(NetlinkMessage<RtnlMessage>, SocketAddr)>,
29)>
30where
31 S: AsyncSocket,
32{
33 let (conn, handle, messages) = netlink_proto::new_connection_with_socket(NETLINK_ROUTE)?;
34 Ok((conn, Handle::new(handle), messages))
35}