Merge pull request #1842 from embassy-rs/ppp-terminate

net-ppp: return error when PPP link gets terminated by the peer.
This commit is contained in:
Dario Nieuwenhuis 2023-08-29 23:09:30 +00:00 committed by GitHub
commit aa7752020e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 1 deletions

View File

@ -18,7 +18,7 @@ log = { version = "0.4.14", optional = true }
embedded-io-async = { version = "0.5.0" }
embassy-net-driver-channel = { version = "0.1.0", path = "../embassy-net-driver-channel" }
embassy-futures = { version = "0.1.0", path = "../embassy-futures" }
ppproto = { version = "0.1.1"}
ppproto = { version = "0.1.2"}
embassy-sync = { version = "0.2.0", path = "../embassy-sync" }
[package.metadata.embassy_docs]

View File

@ -53,6 +53,8 @@ pub enum RunError<E> {
WriteZero,
/// Writing to the serial got EOF.
Eof,
/// PPP protocol was terminated by the peer
Terminated,
}
impl<E> From<WriteAllError<E>> for RunError<E> {
@ -128,6 +130,9 @@ impl<'d> Runner<'d> {
let status = ppp.status();
match status.phase {
ppproto::Phase::Dead => {
return Err(RunError::Terminated);
}
ppproto::Phase::Open => {
if !was_up {
on_ipv4_up(status.ipv4.unwrap());