diff --git a/src/http/conn.rs b/src/http/conn.rs index f8548325..9ea90b85 100644 --- a/src/http/conn.rs +++ b/src/http/conn.rs @@ -691,6 +691,7 @@ impl, T: Transport> State { { let timeout = next.timeout; let state = mem::replace(self, State::Closed); + trace!("State::update state={:?}, interest={:?}", state, next.interest); match (state, next.interest) { (_, Next_::Remove) | (State::Closed, _) => return, // Keep State::Closed. @@ -730,6 +731,10 @@ impl, T: Transport> State { None } } + Writing::KeepAlive => { + writing = Writing::KeepAlive; + None + } _ => return, // Keep State::Closed. }; if let Some(encoder) = encoder { @@ -746,6 +751,7 @@ impl, T: Transport> State { } }; + trace!("(reading, writing) -> {:?}", (&reading, &writing)); match (reading, writing) { (Reading::KeepAlive, Writing::KeepAlive) => { let next = factory.keep_alive_interest();