main: fix double brackets sent when socket rx ring buffer wraps around #55
Loading…
Reference in New Issue
No description provided.
Delete Branch "fix_double_brac"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fix double brackets sent when socket rx ring buffer wraps around. Fixes #42
The line of code causing the issue was actually added a month ago in
b7e6cdbec2
, I wonder if there's a reason behind that change?@ -216,3 +216,1 @@
Ok(SessionInput::Nothing) => {
send_line(&mut socket, b"{}");
}
// SessionInput::Nothing happens when socket RX ring buffer wraps around without
Your code seems correct but this comment sounds inaccurate: isn't
SessionInput::Nothing
also returned in other situations, e.g. if you send a partial command without the newline (irrespective of whether the ring buffer wrapped around or not)?Hm, I have only considered the use case of using Netcat or the pytec client library to interface the device, where every command will always be followed by a newline.
What you just said is certainly true if someone decides to roll their own application to interface with the thermostat. I'll update the comment.
No they won't. TCP doesn't guarantee that data will not be fragmented. For instance, if one side of the transmission sends "1234" then the other may receive "12" first and then "34" later. TCP data should be treated as a pure stream.
Right, I am surprised this bug didn't occur more often then, given all the things that could have gone wrong.