wolfssl: fix handling of abrupt connection close
No binary (build failed)
—
(log yok)
| @@ -2017,13 +2017,13 @@ static CURLcode wssl_recv(struct Curl_cfilter *cf, | |
| 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); | |