diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/vrrpv2.rs | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/vrrpv2.rs b/src/vrrpv2.rs index 8247b19..ad68e6e 100644 --- a/src/vrrpv2.rs +++ b/src/vrrpv2.rs @@ -129,13 +129,11 @@ impl VRRPv2 { fn parse(bytes: &[u8]) -> Result<VRRPv2, VRRPv2Error> { let mut rdr = Cursor::new(bytes); - let vertype = rdr.read_u8()?; - if (vertype & 0xF) != 1 { - return Err(VRRPv2Error::InvalidType); - } - if (vertype >> 4) != 2 { - return Err(VRRPv2Error::InvalidVersion); - } + match rdr.read_u8()? { + i if (i & 0xF) != 1 => return Err(VRRPv2Error::InvalidType), + i if (i >> 4) != 2 => return Err(VRRPv2Error::InvalidVersion), + _ => {} + }; let virtual_router_id = rdr.read_u8()?; let priority = rdr.read_u8()?; let count_ip_addrs = rdr.read_u8()?; |