Skip to content

Commit de0ac68

Browse files
fixups
1 parent dae9177 commit de0ac68

File tree

1 file changed

+19
-16
lines changed

1 file changed

+19
-16
lines changed

netwatch/src/interfaces/linux.rs

+19-16
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,20 @@
22
33
#[cfg(not(target_os = "android"))]
44
use n0_future::{Either, TryStream, TryStreamExt};
5+
#[cfg(not(target_os = "android"))]
6+
use netlink_packet_core::{NetlinkMessage, NLM_F_DUMP, NLM_F_REQUEST};
7+
#[cfg(not(target_os = "android"))]
8+
use netlink_packet_route::{link::LinkMessage, route::RouteMessage, RouteNetlinkMessage};
59
use tokio::{
610
fs::File,
711
io::{AsyncBufReadExt, BufReader},
812
};
913

14+
#[cfg(not(target_os = "android"))]
15+
type Handle = netlink_proto::ConnectionHandle<RouteNetlinkMessage>;
16+
#[cfg(not(target_os = "android"))]
17+
type NetlinkError = netlink_proto::Error<RouteNetlinkMessage>;
18+
1019
use super::DefaultRouteDetails;
1120

1221
#[derive(Debug, thiserror::Error)]
@@ -89,13 +98,13 @@ async fn default_route_proc() -> Result<Option<DefaultRouteDetails>, Error> {
8998

9099
macro_rules! try_rtnl {
91100
($msg: expr, $message_type:path) => {{
92-
use netlink_packet_core::{NetlinkMessage, NetlinkPayload};
101+
use netlink_packet_core::NetlinkPayload;
93102
use netlink_packet_route::RouteNetlinkMessage;
94103

95104
let (header, payload) = $msg.into_parts();
96105
match payload {
97106
NetlinkPayload::InnerMessage($message_type(msg)) => msg,
98-
NetlinkPayload::Error(err) => return Err(err),
107+
NetlinkPayload::Error(err) => return Err(Error::from(err)),
99108
_ => return Err(Error::UnexpectedNetlinkMessage),
100109
}
101110
}};
@@ -145,8 +154,8 @@ async fn default_route_netlink() -> Result<Option<DefaultRouteDetails>, Error> {
145154
use netlink_sys::protocols::NETLINK_ROUTE;
146155
use tracing::{info_span, Instrument};
147156

148-
let (conn, handle, _receiver) =
149-
netlink_proto::new_connection::<netlink_packet_route::RouteNetlinkMessage>(NETLINK_ROUTE)?;
157+
let (connection, handle, _receiver) =
158+
netlink_proto::new_connection::<RouteNetlinkMessage>(NETLINK_ROUTE)?;
150159

151160
let task = tokio::spawn(connection.instrument(info_span!("netlink.conn")));
152161

@@ -165,25 +174,19 @@ async fn default_route_netlink() -> Result<Option<DefaultRouteDetails>, Error> {
165174
}))
166175
}
167176

168-
type Handle = netlink_proto::ConnectionHandle<netlink_packet_core::RouteNetlinkMessage>;
169-
type NetlinkError = netlink_proto::Error<netlink_packet_core::RouteNetlinkMessage>;
170-
171-
use netlink_packet_core::{NetlinkMessage, NLM_F_DUMP, NLM_F_REQUEST};
172-
use netlink_packet_route::{link::LinkMessage, route::RouteMessage, RouteNetlinkMessage};
173-
174177
#[cfg(not(target_os = "android"))]
175178
fn get_route(
176179
mut handle: Handle,
177180
message: RouteMessage,
178-
) -> impl TryStream<Ok = RouteMessage, Error = Error> {
181+
) -> impl TryStream<Ok = RouteMessage, Err = Error> {
179182
let mut req = NetlinkMessage::from(RouteNetlinkMessage::GetRoute(message));
180183
req.header.flags = NLM_F_REQUEST | NLM_F_DUMP;
181184

182185
match handle.request(req, netlink_proto::sys::SocketAddr::new(0, 0)) {
183186
Ok(response) => {
184187
Either::Left(response.map(move |msg| Ok(try_rtnl!(msg, RouteNetlinkMessage::NewRoute))))
185188
}
186-
Err(e) => Either::Right(future::err::<RouteMessage, Error>(e).into_stream()),
189+
Err(e) => Either::Right(n0_future::stream::once::<Result<RouteMessage, Error>>(e)),
187190
}
188191
}
189192

@@ -195,7 +198,7 @@ fn create_route_message(family: netlink_packet_route::AddressFamily) -> RouteMes
195198
message.header.protocol = RouteProtocol::Static;
196199
message.header.scope = RouteScope::Universe;
197200
message.header.kind = RouteType::Unicast;
198-
message.header.kind = family;
201+
message.header.address_family = family;
199202
message
200203
}
201204

@@ -205,7 +208,7 @@ async fn default_route_netlink_family(
205208
handle: &Handle,
206209
family: netlink_packet_route::AddressFamily,
207210
) -> Result<Option<(String, u32)>, Error> {
208-
use netlink_packet_route::{route::RouteAttribute, AddressFamily};
211+
use netlink_packet_route::route::RouteAttribute;
209212

210213
let msg = create_route_message(family);
211214
let mut routes = get_route(handle.clone(), msg);
@@ -247,15 +250,15 @@ async fn default_route_netlink_family(
247250
fn get_link(
248251
mut handle: Handle,
249252
message: LinkMessage,
250-
) -> impl TryStream<Ok = LinkMessage, Error = Error> {
253+
) -> impl TryStream<Ok = LinkMessage, Err = Error> {
251254
let mut req = NetlinkMessage::from(RouteNetlinkMessage::GetLink(message));
252255
req.header.flags = NLM_F_REQUEST;
253256

254257
match handle.request(req, netlink_proto::sys::SocketAddr::new(0, 0)) {
255258
Ok(response) => {
256259
Either::Left(response.map(move |msg| Ok(try_rtnl!(msg, RouteNetlinkMessage::NewLink))))
257260
}
258-
Err(e) => Either::Right(future::err::<RouteMessage, Error>(e).into_stream()),
261+
Err(e) => Either::Right(n0_future::stream::once::<Result<RouteMessage, Error>>(e)),
259262
}
260263
}
261264

0 commit comments

Comments
 (0)