summaryrefslogtreecommitdiff
path: root/lib/easy.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2020-02-28 23:55:05 +0100
committerDaniel Stenberg <daniel@haxx.se>2020-02-29 10:53:09 +0100
commitfa0216b294af4c7113a9040ca65eefc7fc18ac1c (patch)
treefa845a386251732a7dcf6891d9f0c0e843faa033 /lib/easy.c
parent0e06c1637b30800d41636dcd02f5becf3f6664c1 (diff)
downloadcurl-fa0216b294af4c7113a9040ca65eefc7fc18ac1c.tar.gz
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
Diffstat (limited to 'lib/easy.c')
-rw-r--r--lib/easy.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/easy.c b/lib/easy.c
index 454621076..1a6912748 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -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);