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.
pull/667/head
John Safranek 2024-03-13 15:08:07 -07:00
parent c07a86856e
commit 76e8d66289
No known key found for this signature in database
GPG Key ID: 8CE817DE0D3CCB4A
1 changed files with 1 additions and 5 deletions

View File

@ -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) {
@ -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) {