mirror of
https://github.com/curl/curl.git
synced 2026-06-02 00:24:15 +03: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
1 changed files with 6 additions and 2 deletions
|
|
@ -112,7 +112,7 @@ cr_recv(struct Curl_easy *data, int sockindex,
|
|||
|
||||
tls_bytes_read = sread(sockfd, backend->tlsbuf, TLSBUF_SIZE);
|
||||
if(tls_bytes_read == 0) {
|
||||
failf(data, "EOF in sread");
|
||||
failf(data, "connection closed without TLS close_notify alert");
|
||||
*err = CURLE_READ_ERROR;
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -163,7 +163,11 @@ cr_recv(struct Curl_easy *data, int sockindex,
|
|||
(uint8_t *)plainbuf + plain_bytes_copied,
|
||||
plainlen - plain_bytes_copied,
|
||||
&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");
|
||||
*err = CURLE_READ_ERROR;
|
||||
return -1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue