case WOLFSSL_ERROR_NONE:
case WOLFSSL_ERROR_WANT_READ:
case WOLFSSL_ERROR_WANT_WRITE:
- if(!wssl->io_result && connssl->peer_closed) {
- CURL_TRC_CF(data, cf, "wssl_recv(len=%zu) -> CLOSED", blen);
- return CURLE_OK;
+ if(!wssl->io_result && !connssl->peer_closed) {
+ /* there is data pending, re-invoke wolfSSL_read() */
+ CURL_TRC_CF(data, cf, "wssl_recv(len=%zu) -> AGAIN", blen);
+ return CURLE_AGAIN;
}
- /* there is data pending, re-invoke wolfSSL_read() */
- CURL_TRC_CF(data, cf, "wssl_recv(len=%zu) -> AGAIN", blen);
- return CURLE_AGAIN;
+ /* fall through to default error handling below */
+ FALLTHROUGH();
default:
if(wssl->io_result == CURLE_AGAIN) {
CURL_TRC_CF(data, cf, "wssl_recv(len=%zu) -> AGAIN", blen);