mirror of
https://github.com/moparisthebest/curl
synced 2025-01-09 13:08:00 -05:00
rustls: Handle close_notify.
If we get a close_notify, treat that as EOF. If we get an EOF from the TCP stream, treat that as an error (because we should have ended the connection earlier, when we got a close_notify). Closes #6763
This commit is contained in:
parent
472b537215
commit
7488ef2960
@ -112,7 +112,7 @@ cr_recv(struct Curl_easy *data, int sockindex,
|
|||||||
|
|
||||||
tls_bytes_read = sread(sockfd, backend->tlsbuf, TLSBUF_SIZE);
|
tls_bytes_read = sread(sockfd, backend->tlsbuf, TLSBUF_SIZE);
|
||||||
if(tls_bytes_read == 0) {
|
if(tls_bytes_read == 0) {
|
||||||
failf(data, "EOF in sread");
|
failf(data, "connection closed without TLS close_notify alert");
|
||||||
*err = CURLE_READ_ERROR;
|
*err = CURLE_READ_ERROR;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -163,7 +163,11 @@ cr_recv(struct Curl_easy *data, int sockindex,
|
|||||||
(uint8_t *)plainbuf + plain_bytes_copied,
|
(uint8_t *)plainbuf + plain_bytes_copied,
|
||||||
plainlen - plain_bytes_copied,
|
plainlen - plain_bytes_copied,
|
||||||
&n);
|
&n);
|
||||||
if(rresult != RUSTLS_RESULT_OK) {
|
if(rresult == RUSTLS_RESULT_ALERT_CLOSE_NOTIFY) {
|
||||||
|
*err = CURLE_OK;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else if(rresult != RUSTLS_RESULT_OK) {
|
||||||
failf(data, "error in rustls_client_session_read");
|
failf(data, "error in rustls_client_session_read");
|
||||||
*err = CURLE_READ_ERROR;
|
*err = CURLE_READ_ERROR;
|
||||||
return -1;
|
return -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user