net-ppp: return error when PPP link gets terminated by the peer.

This commit is contained in:
Dario Nieuwenhuis 2023-08-30 01:04:43 +02:00
parent a4d78a6552
commit 975f2f23c0
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());