Skip to content

Commit 570b762

Browse files
committed
Add dump option to RouteGetRequest
With dump set to false, we can mimic the behaviour of `ip route get`.
1 parent 58e6f35 commit 570b762

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/route/get.rs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use crate::{try_rtnl, Error, Handle};
1616
pub struct RouteGetRequest {
1717
handle: Handle,
1818
message: RouteMessage,
19+
dump: bool,
1920
}
2021

2122
/// Internet Protocol (IP) version.
@@ -38,22 +39,35 @@ impl IpVersion {
3839

3940
impl RouteGetRequest {
4041
pub(crate) fn new(handle: Handle, message: RouteMessage) -> Self {
41-
RouteGetRequest { handle, message }
42+
RouteGetRequest {
43+
handle,
44+
message,
45+
dump: true,
46+
}
4247
}
4348

4449
pub fn message_mut(&mut self) -> &mut RouteMessage {
4550
&mut self.message
4651
}
4752

53+
pub fn dump(mut self, val: bool) -> Self {
54+
self.dump = val;
55+
self
56+
}
57+
4858
pub fn execute(self) -> impl Stream<Item = Result<RouteMessage, Error>> {
4959
let RouteGetRequest {
5060
mut handle,
5161
message,
62+
dump,
5263
} = self;
5364

5465
let mut req =
5566
NetlinkMessage::from(RouteNetlinkMessage::GetRoute(message));
56-
req.header.flags = NLM_F_REQUEST | NLM_F_DUMP;
67+
req.header.flags = NLM_F_REQUEST;
68+
if dump {
69+
req.header.flags |= NLM_F_DUMP;
70+
}
5771

5872
match handle.request(req) {
5973
Ok(response) => Either::Left(response.map(move |msg| {

0 commit comments

Comments
 (0)