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: flush the worker's queued output and report what it is waiting on
- wolfSSH_worker() calls wolfSSH_SendPacket() whenever
ssh->outputBuffer holds bytes, in place of doing so only for
WS_SUCCESS, WS_WANT_READ or WS_CHAN_RXD. It takes ssh->error into
rxErr before the send and restores it unless the send status
wins, replaces DoReceive()'s WS_FATAL_ERROR with ssh->error when
that holds a specific code, and writes *channelId before the
send. Drops the second DoReceive(), its WS_WINDOW_FULL case, and
the WOLFSSH_TEST_BLOCK fork.
- GetInputData() returns its condition in place of assigning
ssh->error and returning WS_FATAL_ERROR; DoReceive() records it
at both call sites.
- SendChannelData() and SendChannelExtendedData() capture the send
status into sendRet and record it inside the existing
ret == WS_SUCCESS block, which now also gates plainSz. Both set
plainSz as well when the flush of already-queued output returns
WS_WANT_WRITE.
- _ChannelRead(), _ChannelReadExt() and
SendPendingChannelWindowAdjust() drop their savedError capture
and restore, keeping the assignment on failure.
- wolfSSH_shutdown() reads ret in its teardown-send guards.
- echoserver, wolfsshd, sftpclient, client and scpclient gate on
the worker's and shutdown's return values, and sftpclient and the
wolfssh app drop 12 now-dead WS_FATAL_ERROR translations.
- echoserver reads wolfSSH_get_error() once after the shutdown
drain for its end-of-connection report; wolfsshd's drain loops on
WS_SUCCESS, the wants, WS_CHAN_RXD, WS_EXTDATA and WS_REKEYING.
- tests cover the worker's flush and reported status and assert the
specific codes it now returns; TestShutdownKeepsFlushWantWrite()
checks wolfSSH_shutdown()'s return alone.
0 commit comments