diff options
author | Daniel Stenberg <daniel@haxx.se> | 2019-06-08 23:03:03 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-06-08 23:03:03 +0200 |
commit | 893250f18c3d8521b4fd21ea739174724cb1cf08 (patch) | |
tree | 62a7eb98db7eb6e48603e4b5514be447c81b80e8 /lib/easy.c | |
parent | 4ae6b5bb855bd63464c78fe37598f4655bf7d801 (diff) | |
download | curl-bagder/multi-socket-unpause.tar.gz |
unpause: trigger a timeout for event-based transfersbagder/multi-socket-unpause
... 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
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 */ |