mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-31 11:17:29 +02:00
client/server: tolerate WANT_WRITE errors
This commit is contained in:
committed by
David Garske
parent
4e112419f5
commit
12a3efeca8
@ -807,7 +807,8 @@ static int ClientBenchmarkThroughput(WOLFSSL_CTX* ctx, char* host, word16 port,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
if (err != WOLFSSL_ERROR_WANT_READ) {
|
if (err != WOLFSSL_ERROR_WANT_READ &&
|
||||||
|
err != WOLFSSL_ERROR_WANT_WRITE) {
|
||||||
fprintf(stderr, "SSL_read bench error %d\n", err);
|
fprintf(stderr, "SSL_read bench error %d\n", err);
|
||||||
err_sys("SSL_read failed");
|
err_sys("SSL_read failed");
|
||||||
}
|
}
|
||||||
@ -1072,7 +1073,9 @@ static int ClientRead(WOLFSSL* ssl, char* reply, int replyLen, int mustRead,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mustRead && err == WOLFSSL_ERROR_WANT_READ) {
|
if (mustRead &&
|
||||||
|
(err == WOLFSSL_ERROR_WANT_READ
|
||||||
|
|| err == WOLFSSL_ERROR_WANT_WRITE)) {
|
||||||
elapsed = current_time(0) - start;
|
elapsed = current_time(0) - start;
|
||||||
if (elapsed > MAX_NON_BLOCK_SEC) {
|
if (elapsed > MAX_NON_BLOCK_SEC) {
|
||||||
fprintf(stderr, "Nonblocking read timeout\n");
|
fprintf(stderr, "Nonblocking read timeout\n");
|
||||||
|
@ -416,6 +416,7 @@ int ServerEchoData(SSL* ssl, int clientfd, int echoData, int block,
|
|||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
if (err != WOLFSSL_ERROR_WANT_READ &&
|
if (err != WOLFSSL_ERROR_WANT_READ &&
|
||||||
|
err != WOLFSSL_ERROR_WANT_WRITE &&
|
||||||
err != WOLFSSL_ERROR_ZERO_RETURN &&
|
err != WOLFSSL_ERROR_ZERO_RETURN &&
|
||||||
err != APP_DATA_READY) {
|
err != APP_DATA_READY) {
|
||||||
fprintf(stderr, "SSL_read echo error %d\n", err);
|
fprintf(stderr, "SSL_read echo error %d\n", err);
|
||||||
@ -553,7 +554,9 @@ static void ServerRead(WOLFSSL* ssl, char* input, int inputLen)
|
|||||||
if (wolfSSL_pending(ssl))
|
if (wolfSSL_pending(ssl))
|
||||||
err = WOLFSSL_ERROR_WANT_READ;
|
err = WOLFSSL_ERROR_WANT_READ;
|
||||||
}
|
}
|
||||||
} while (err == WC_PENDING_E || err == WOLFSSL_ERROR_WANT_READ);
|
} while (err == WC_PENDING_E
|
||||||
|
|| err == WOLFSSL_ERROR_WANT_READ
|
||||||
|
|| err == WOLFSSL_ERROR_WANT_WRITE);
|
||||||
if (ret > 0) {
|
if (ret > 0) {
|
||||||
/* null terminate message */
|
/* null terminate message */
|
||||||
input[ret] = '\0';
|
input[ret] = '\0';
|
||||||
|
Reference in New Issue
Block a user