diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-03-12 19:47:35 +0100 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-03-12 19:52:14 +0100 |
commit | b6a9e7573dddded44a5275a0c99b3190292187b3 (patch) | |
tree | 28cdd44459ece7a62a0ac50e3b16f0ec9d43b201 | |
parent | 16624b5c94a42c788da7b4a8e8d07e44cde154d7 (diff) |
make the check from before compile
-rw-r--r-- | src/client.rs | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/client.rs b/src/client.rs index 2805d42..5400307 100644 --- a/src/client.rs +++ b/src/client.rs @@ -194,8 +194,13 @@ impl Client { } fn recv<'a>(&'a self, buf: &'a mut [u8; 1024]) -> Result<Packet> { + let mut n; + loop { - let pkt = self.recv_pkt(buf)?; + n = self.recv_pkt(buf)?; + let buf = &buf[..n]; + + let pkt = Packet::with_buffer(buf)?; let eth = pkt.ethernet_header(); let header = pkt.pppoe_header(); @@ -211,15 +216,15 @@ impl Client { continue; } - return Ok(pkt); + break; } + + Ok(Packet::with_buffer(&buf[..n])?) } - fn recv_pkt<'a>(&'a self, buf: &'a mut [u8; 1024]) -> Result<Packet> { + fn recv_pkt(&self, buf: &mut [u8; 1024]) -> Result<usize> { let n = self.inner.lock().unwrap().socket.recv(buf)?; - let buf = &buf[..n]; - - Ok(Packet::with_buffer(buf)?) + Ok(n) } fn discover(&self) -> Result<()> { |