@@ -33,6 +33,7 @@ pub enum WgPeerAttrs {
33
33
TxBytes ( u64 ) ,
34
34
AllowedIps ( Vec < Vec < WgAllowedIpAttrs > > ) ,
35
35
ProtocolVersion ( u32 ) ,
36
+ Flags ( u32 ) ,
36
37
}
37
38
38
39
impl Nla for WgPeerAttrs {
@@ -51,6 +52,7 @@ impl Nla for WgPeerAttrs {
51
52
WgPeerAttrs :: TxBytes ( v) => size_of_val ( v) ,
52
53
WgPeerAttrs :: AllowedIps ( nlas) => nlas. iter ( ) . map ( |op| op. as_slice ( ) . buffer_len ( ) ) . sum ( ) ,
53
54
WgPeerAttrs :: ProtocolVersion ( v) => size_of_val ( v) ,
55
+ WgPeerAttrs :: Flags ( v) => size_of_val ( v) ,
54
56
}
55
57
}
56
58
@@ -66,6 +68,7 @@ impl Nla for WgPeerAttrs {
66
68
WgPeerAttrs :: TxBytes ( _) => WGPEER_A_TX_BYTES ,
67
69
WgPeerAttrs :: AllowedIps ( _) => WGPEER_A_ALLOWEDIPS ,
68
70
WgPeerAttrs :: ProtocolVersion ( _) => WGPEER_A_PROTOCOL_VERSION ,
71
+ WgPeerAttrs :: Flags ( _) => WGPEER_A_FLAGS ,
69
72
}
70
73
}
71
74
@@ -87,6 +90,7 @@ impl Nla for WgPeerAttrs {
87
90
}
88
91
}
89
92
WgPeerAttrs :: ProtocolVersion ( v) => NativeEndian :: write_u32 ( buffer, * v) ,
93
+ WgPeerAttrs :: Flags ( v) => NativeEndian :: write_u32 ( buffer, * v) ,
90
94
}
91
95
}
92
96
}
@@ -114,14 +118,12 @@ impl<'a, T: AsRef<[u8]> + ?Sized> Parseable<NlaBuffer<&'a T>> for WgPeerAttrs {
114
118
WGPEER_A_LAST_HANDSHAKE_TIME => Self :: LastHandshake (
115
119
parse_timespec ( payload) . context ( "invalid WGPEER_A_LAST_HANDSHAKE_TIME" ) ?,
116
120
) ,
117
- WGPEER_A_RX_BYTES => Self :: RxBytes (
118
- parse_u64 ( payload)
119
- . context ( "invalid WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL value" ) ?,
120
- ) ,
121
- WGPEER_A_TX_BYTES => Self :: TxBytes (
122
- parse_u64 ( payload)
123
- . context ( "invalid WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL value" ) ?,
124
- ) ,
121
+ WGPEER_A_RX_BYTES => {
122
+ Self :: RxBytes ( parse_u64 ( payload) . context ( "invalid WGPEER_A_RX_BYTES value" ) ?)
123
+ }
124
+ WGPEER_A_TX_BYTES => {
125
+ Self :: TxBytes ( parse_u64 ( payload) . context ( "invalid WGPEER_A_TX_BYTES value" ) ?)
126
+ }
125
127
WGPEER_A_ALLOWEDIPS => {
126
128
let error_msg = "failed to parse WGPEER_A_ALLOWEDIPS" ;
127
129
let mut ips = Vec :: new ( ) ;
@@ -138,9 +140,11 @@ impl<'a, T: AsRef<[u8]> + ?Sized> Parseable<NlaBuffer<&'a T>> for WgPeerAttrs {
138
140
Self :: AllowedIps ( ips)
139
141
}
140
142
WGPEER_A_PROTOCOL_VERSION => Self :: ProtocolVersion (
141
- parse_u32 ( payload)
142
- . context ( "invalid WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL value" ) ?,
143
+ parse_u32 ( payload) . context ( "invalid WGPEER_A_PROTOCOL_VERSION value" ) ?,
143
144
) ,
145
+ WGPEER_A_FLAGS => {
146
+ Self :: Flags ( parse_u32 ( payload) . context ( "invalid WGPEER_A_FLAGS value" ) ?)
147
+ }
144
148
kind => return Err ( DecodeError :: from ( format ! ( "invalid NLA kind: {}" , kind) ) ) ,
145
149
} )
146
150
}
0 commit comments