aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-03-12 19:47:35 +0100
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-03-12 19:52:14 +0100
commitb6a9e7573dddded44a5275a0c99b3190292187b3 (patch)
tree28cdd44459ece7a62a0ac50e3b16f0ec9d43b201
parent16624b5c94a42c788da7b4a8e8d07e44cde154d7 (diff)
make the check from before compile
-rw-r--r--src/client.rs17
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<()> {