mirror of
https://github.com/moparisthebest/curl
synced 2024-11-04 16:45:06 -05:00
pause: force-drain the transfer on unpause
... since the socket might not actually be readable anymore when for example the data is already buffered in the TLS layer. Fixes #4966 Reported-by: Anders Berg Closes #5000
This commit is contained in:
parent
0e06c1637b
commit
fa0216b294
@ -1033,6 +1033,7 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action)
|
||||
to have this handle checked soon */
|
||||
if((newstate & (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) !=
|
||||
(KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) {
|
||||
data->state.drain++;
|
||||
Curl_expire(data, 0, EXPIRE_RUN_NOW); /* get this handle going again */
|
||||
if(data->multi)
|
||||
Curl_update_timer(data->multi);
|
||||
|
@ -5,7 +5,7 @@
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
@ -1217,7 +1217,8 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
||||
else
|
||||
fd_write = CURL_SOCKET_BAD;
|
||||
|
||||
if(conn->data->state.drain) {
|
||||
if(data->state.drain) {
|
||||
data->state.drain--;
|
||||
select_res |= CURL_CSELECT_IN;
|
||||
DEBUGF(infof(data, "Curl_readwrite: forcibly told to drain data\n"));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user