File tree Expand file tree Collapse file tree 1 file changed +12
-2
lines changed Expand file tree Collapse file tree 1 file changed +12
-2
lines changed Original file line number Diff line number Diff line change @@ -8,7 +8,8 @@ use futures::{
8
8
9
9
use netlink_packet_core:: { NetlinkMessage , NLM_F_DUMP , NLM_F_REQUEST } ;
10
10
use netlink_packet_route:: {
11
- route:: RouteMessage , AddressFamily , RouteNetlinkMessage ,
11
+ route:: { RouteAttribute , RouteMessage } ,
12
+ AddressFamily , RouteNetlinkMessage ,
12
13
} ;
13
14
14
15
use crate :: { try_rtnl, Error , Handle } ;
@@ -51,9 +52,18 @@ impl RouteGetRequest {
51
52
message,
52
53
} = self ;
53
54
55
+ let has_dest = message
56
+ . attributes
57
+ . iter ( )
58
+ . any ( |attr| matches ! ( attr, RouteAttribute :: Destination ( _) ) ) ;
59
+
54
60
let mut req =
55
61
NetlinkMessage :: from ( RouteNetlinkMessage :: GetRoute ( message) ) ;
56
- req. header . flags = NLM_F_REQUEST | NLM_F_DUMP ;
62
+ req. header . flags = NLM_F_REQUEST ;
63
+
64
+ if !has_dest {
65
+ req. header . flags |= NLM_F_DUMP ;
66
+ }
57
67
58
68
match handle. request ( req) {
59
69
Ok ( response) => Either :: Left ( response. map ( move |msg| {
You can’t perform that action at this time.
0 commit comments