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
- 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, WS_CHAN_RXD or WS_EOF. A failed flush reaches the
return only when the receive reported nothing. ssh->error keeps
the receive's code when the receive failed, and the close's when
a WS_CHANNEL_CLOSED pass hard-failed its flush. Drops the second
DoReceive(), its WS_WINDOW_FULL case, the WOLFSSH_TEST_BLOCK
fork, and the separate WS_CHANNEL_CLOSED flush.
- SendPacketFlush() records its code in ssh->error on every
transport failure path, and wolfSSH_SendPacket() says so. The
comments on _ChannelRead(), _ChannelReadExt() and
test_ChannelReadExtHardFailureReported() drop the former
contract.
- The echoserver and Espressif shell loops and the Windows
wolfsshd shell loop treat a WS_WANT_WRITE from wolfSSH_worker()
as non-fatal, and sftp_worker()'s handshake flush retry waits on
tcp_select() between passes.
- wolfSSH_stream_read()'s note no longer says a queued adjust
needs a wolfSSH_worker() whose receive succeeded.
- 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, an out-of-bounds send and a close whose flush
hard-failed, and queued output staying unsent on the disconnect
pass.
0 commit comments