diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-03-11 18:28:41 +0100 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-03-11 18:28:41 +0100 |
commit | c31a8bf5fed3e46d56b83dafbe9fe7f0881a5430 (patch) | |
tree | 0d4ca79d3307309ebfc96a3180eaadf3eadf223c | |
parent | e65151018ba000c481e5d916fcdce18a3f8d7b39 (diff) |
prepare for sending configure-request
-rw-r--r-- | Cargo.lock | 4 | ||||
-rw-r--r-- | src/client.rs | 11 |
2 files changed, 13 insertions, 2 deletions
@@ -230,7 +230,7 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] name = "pppoe" version = "0.1.0" -source = "git+https://github.com/rsdsl/pppoe-rs#6be94b66f0825b32cd81be546af1a70feb6b65e7" +source = "git+https://github.com/rsdsl/pppoe-rs#4bd219d651bcbbd85b44dfea0aca31946317e8e5" dependencies = [ "byteorder", "libc", @@ -241,7 +241,7 @@ dependencies = [ [[package]] name = "pppoe-sys" version = "0.1.0" -source = "git+https://github.com/rsdsl/pppoe-rs#6be94b66f0825b32cd81be546af1a70feb6b65e7" +source = "git+https://github.com/rsdsl/pppoe-rs#4bd219d651bcbbd85b44dfea0aca31946317e8e5" dependencies = [ "bindgen", "cc", diff --git a/src/client.rs b/src/client.rs index f43ac30..f557c78 100644 --- a/src/client.rs +++ b/src/client.rs @@ -157,6 +157,15 @@ impl Client { Ok(()) } + fn configure(&self) -> Result<()> { + match self.state() { + State::Session(_) => {} + _ => return Err(Error::AlreadyActive), + } + + Ok(()) + } + fn handle_ppp(&self, src_mac: [u8; 6], header: &Header) -> Result<()> { let ppp = pppoe::ppp::Header::with_buffer(header.payload())?; let protocol = ppp.protocol(); @@ -278,6 +287,8 @@ impl Client { self.set_state(State::Session(session_id)); println!("session established, ID {}", session_id); + self.configure()?; + Ok(()) } else { Err(Error::UnexpectedPads(remote_mac_str.clone())) |