Merge pull request #921 from jwilm/fix-keep-alive
fix(client): keep-alive works as intended now
This commit is contained in:
@@ -691,6 +691,7 @@ impl<H: MessageHandler<T>, T: Transport> State<H, T> {
|
|||||||
{
|
{
|
||||||
let timeout = next.timeout;
|
let timeout = next.timeout;
|
||||||
let state = mem::replace(self, State::Closed);
|
let state = mem::replace(self, State::Closed);
|
||||||
|
trace!("State::update state={:?}, interest={:?}", state, next.interest);
|
||||||
match (state, next.interest) {
|
match (state, next.interest) {
|
||||||
(_, Next_::Remove) |
|
(_, Next_::Remove) |
|
||||||
(State::Closed, _) => return, // Keep State::Closed.
|
(State::Closed, _) => return, // Keep State::Closed.
|
||||||
@@ -730,6 +731,10 @@ impl<H: MessageHandler<T>, T: Transport> State<H, T> {
|
|||||||
None
|
None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Writing::KeepAlive => {
|
||||||
|
writing = Writing::KeepAlive;
|
||||||
|
None
|
||||||
|
}
|
||||||
_ => return, // Keep State::Closed.
|
_ => return, // Keep State::Closed.
|
||||||
};
|
};
|
||||||
if let Some(encoder) = encoder {
|
if let Some(encoder) = encoder {
|
||||||
@@ -746,6 +751,7 @@ impl<H: MessageHandler<T>, T: Transport> State<H, T> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
trace!("(reading, writing) -> {:?}", (&reading, &writing));
|
||||||
match (reading, writing) {
|
match (reading, writing) {
|
||||||
(Reading::KeepAlive, Writing::KeepAlive) => {
|
(Reading::KeepAlive, Writing::KeepAlive) => {
|
||||||
let next = factory.keep_alive_interest();
|
let next = factory.keep_alive_interest();
|
||||||
|
|||||||
Reference in New Issue
Block a user