summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/vrrpv2.rs12
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()?;