aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-03-11 18:28:41 +0100
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-03-11 18:28:41 +0100
commitc31a8bf5fed3e46d56b83dafbe9fe7f0881a5430 (patch)
tree0d4ca79d3307309ebfc96a3180eaadf3eadf223c
parente65151018ba000c481e5d916fcdce18a3f8d7b39 (diff)
prepare for sending configure-request
-rw-r--r--Cargo.lock4
-rw-r--r--src/client.rs11
2 files changed, 13 insertions, 2 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 0704472..88c5fc3 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -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()))