diff options
author | Daniel Stenberg <daniel@haxx.se> | 2019-06-08 23:03:03 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-06-09 18:33:59 +0200 |
commit | 680f1413321c0bad593a69a86511df4d98a3b5df (patch) | |
tree | 500ec23c0a46693f449e3ed4758281dd36cb3f92 /lib/easy.c | |
parent | cf1ec70e721544ba39652abd6331dde6bbf9108d (diff) | |
download | curl-680f1413321c0bad593a69a86511df4d98a3b5df.tar.gz |
unpause: trigger a timeout for event-based transfers
... so that timeouts or other state machine actions get going again
after a changing pause state. For example, if the last delivery was
paused there's no pending socket activity.
Reported-by: sstruchtrup on github
Fixes #3994
Closes #4001
Diffstat (limited to 'lib/easy.c')
-rw-r--r-- | lib/easy.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/easy.c b/lib/easy.c index 4a6f96567..a4fff5b36 100644 --- a/lib/easy.c +++ b/lib/easy.c @@ -1038,8 +1038,11 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action) to have this handle checked soon */ if(!result && ((newstate&(KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) != - (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) ) + (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) ) { Curl_expire(data, 0, EXPIRE_RUN_NOW); /* get this handle going again */ + if(data->multi) + Curl_update_timer(data->multi); + } /* This transfer may have been moved in or out of the bundle, update the corresponding socket callback, if used */ |