Skip to content

Commit

Permalink
SFTP Fix
Browse files Browse the repository at this point in the history
1. Remove the continue from the SFTP worker loop when there's a timeout
   on the select and when there's a want_read from the wolfSSH_worker.
2. When the select has receive data ready, check it. Don't make it
   conditional on want read as well.

The goal is that when there isn't data waiting on the socket, check and
process the data in the SFTP channel's buffer, always.
  • Loading branch information
ejohnstown committed Mar 13, 2024
1 parent c07a868 commit 76e8d66
Showing 1 changed file with 1 addition and 5 deletions.
6 changes: 1 addition & 5 deletions examples/echoserver/echoserver.c
Original file line number Diff line number Diff line change
Expand Up @@ -1196,11 +1196,8 @@ static int sftp_worker(thread_ctx_t* threadCtx)
}
else if (selected == WS_SELECT_TIMEOUT) {
timeout = TEST_SFTP_TIMEOUT_LONG;
continue;
}

if (ret == WS_WANT_READ || ret == WS_WANT_WRITE ||
selected == WS_SELECT_RECV_READY) {
else if (selected == WS_SELECT_RECV_READY) {
ret = wolfSSH_worker(ssh, NULL);
error = wolfSSH_get_error(ssh);
if (ret == WS_REKEYING) {
Expand All @@ -1213,7 +1210,6 @@ static int sftp_worker(thread_ctx_t* threadCtx)
error == WS_WINDOW_FULL) {
timeout = TEST_SFTP_TIMEOUT;
ret = error;
continue;
}

if (error == WS_EOF) {
Expand Down

0 comments on commit 76e8d66

Please sign in to comment.