From 000b8544c65e017e4898225f349853394c38f497 Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Wed, 30 Sep 2020 13:22:07 -0600 Subject: [PATCH] add peek when waiting for data --- examples/echoserver/echoserver.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/examples/echoserver/echoserver.c b/examples/echoserver/echoserver.c index fb4d598..6bb1865 100644 --- a/examples/echoserver/echoserver.c +++ b/examples/echoserver/echoserver.c @@ -896,6 +896,7 @@ static int shell_worker(thread_ctx_t* threadCtx) * returns 0 on success */ static int sftp_worker(thread_ctx_t* threadCtx) { + byte tmp[1]; int ret = WS_SUCCESS; int error = WS_SUCCESS; SOCKET_T sockfd; @@ -910,7 +911,13 @@ static int sftp_worker(thread_ctx_t* threadCtx) { printf("... sftp server would write block\n"); } - select_ret = tcp_select(sockfd, TEST_SFTP_TIMEOUT); + if (wolfSSH_stream_peek(threadCtx->ssh, tmp, 1) > 0) { + select_ret = WS_SELECT_RECV_READY; + } + else { + select_ret = tcp_select(sockfd, TEST_SFTP_TIMEOUT); + } + if (select_ret == WS_SELECT_RECV_READY || select_ret == WS_SELECT_ERROR_READY || error == WS_WANT_WRITE)