You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ssh, internal: flush the worker's queued output on every call
- wolfSSH_worker() calls wolfSSH_SendPacket() whenever
ssh->outputBuffer holds bytes and the session is not
disconnected, in place of doing so only for WS_SUCCESS,
WS_WANT_READ or WS_CHAN_RXD. A failed flush reaches the return
only when the receive reported nothing; ssh->error keeps the
receive's code when the receive reported anything but
WS_WANT_READ and the flush left bytes queued to retry. Drops
the second DoReceive(), its WS_WINDOW_FULL case, and the
WOLFSSH_TEST_BLOCK fork.
- wolfSSH_SendPacket() records its code in ssh->error on every
transport failure path, and the comments on _ChannelRead(),
_ChannelReadExt() and test_ChannelReadExtHardFailureReported()
no longer describe the former contract.
- The echoserver shell loop and the Windows wolfsshd shell loop
treat a WS_WANT_WRITE from wolfSSH_worker() as non-fatal.
- tests cover the flush on an idle receive, the owed flush across
calls, what ssh->error holds after a receive failure, a hard
send failure, channel data alongside a failed send, a discarded
buffer and an out-of-bounds send, and that queued output stays
unsent on the pass that receives a disconnect.
0 commit comments