diff --git a/src/socket/tcp.rs b/src/socket/tcp.rs index f7bb54d..00f94de 100644 --- a/src/socket/tcp.rs +++ b/src/socket/tcp.rs @@ -634,9 +634,9 @@ impl<'a> TcpSocket<'a> { /// See [Socket::process](enum.Socket.html#method.process). pub fn process(&mut self, timestamp: u64, ip_repr: &IpRepr, payload: &[u8]) -> Result<(), Error> { - if self.state == State::Closed { return Err(Error::Rejected) } + debug_assert!(ip_repr.protocol() == IpProtocol::Tcp); - if ip_repr.protocol() != IpProtocol::Tcp { return Err(Error::Rejected) } + if self.state == State::Closed { return Err(Error::Rejected) } let packet = TcpPacket::new_checked(&payload[..ip_repr.payload_len()])?; let repr = TcpRepr::parse(&packet, &ip_repr.src_addr(), &ip_repr.dst_addr())?; diff --git a/src/socket/udp.rs b/src/socket/udp.rs index 3d9767c..0fb511e 100644 --- a/src/socket/udp.rs +++ b/src/socket/udp.rs @@ -153,7 +153,7 @@ impl<'a, 'b> UdpSocket<'a, 'b> { /// See [Socket::process](enum.Socket.html#method.process). pub fn process(&mut self, _timestamp: u64, ip_repr: &IpRepr, payload: &[u8]) -> Result<(), Error> { - if ip_repr.protocol() != IpProtocol::Udp { return Err(Error::Rejected) } + debug_assert!(ip_repr.protocol() == IpProtocol::Udp); let packet = UdpPacket::new_checked(&payload[..ip_repr.payload_len()])?; let repr = UdpRepr::parse(&packet, &ip_repr.src_addr(), &ip_repr.dst_addr())?;