Fix keepalive handling (various issues in original issue tracker) #14
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi,
the original client has some problem with the state machine, which handles the keep alive packets. If the connection breaks and the client is waiting for a ping response, a reconnect with the same client will still wait for the pong response, as the state machine says
pingOutstanding
is true.This code cleans it up a bit:
pingOutstanding=false
(that's the main issue)pingOutstanding
state variable is also reset to false for safetyThis fixes the issues mentioned in the original issue tracker:
This is mainly an improvement to the following pull request on original repo: knolleary#802
It would be nice to include this together with the urgent fix to unbreak passing a password on connect.
I am testing this at moment together with the PR #11 with the device BSB-LAN (for heaters): fredlcore/BSB-LAN#683