Ignore unrecognized NDISC options (as per RFC 4861).

Closes: #210
Approved by: whitequark
v0.7.x
Valentin Lorentz 2018-05-14 19:09:40 +02:00 committed by Homu
parent 2d716883b6
commit a4e42880f8
1 changed files with 5 additions and 5 deletions

View File

@ -228,7 +228,7 @@ impl<'a> Repr<'a> {
let opt = NdiscOption::new_checked(packet.payload())?;
match opt.option_type() {
NdiscOptionType::SourceLinkLayerAddr => Some(opt.link_layer_addr()),
_ => { return Err(Error::Unrecognized); }
_ => None,
}
} else {
None
@ -245,7 +245,7 @@ impl<'a> Repr<'a> {
NdiscOptionRepr::SourceLinkLayerAddr(addr) => lladdr = Some(addr),
NdiscOptionRepr::Mtu(val) => mtu = Some(val),
NdiscOptionRepr::PrefixInformation(info) => prefix_info = Some(info),
_ => { return Err(Error::Unrecognized); }
_ => ()
}
offset += opt.buffer_len();
}
@ -263,7 +263,7 @@ impl<'a> Repr<'a> {
let opt = NdiscOption::new_checked(packet.payload())?;
match opt.option_type() {
NdiscOptionType::SourceLinkLayerAddr => Some(opt.link_layer_addr()),
_ => { return Err(Error::Unrecognized); }
_ => None,
}
} else {
None
@ -277,7 +277,7 @@ impl<'a> Repr<'a> {
let opt = NdiscOption::new_checked(packet.payload())?;
match opt.option_type() {
NdiscOptionType::TargetLinkLayerAddr => Some(opt.link_layer_addr()),
_ => { return Err(Error::Unrecognized); }
_ => None,
}
} else {
None
@ -311,7 +311,7 @@ impl<'a> Repr<'a> {
offset += 8 + ip_repr.buffer_len() + data.len();
}
}
_ => { return Err(Error::Unrecognized); }
_ => ()
}
}
Ok(Repr::Redirect {