summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/easy.c4
-rw-r--r--lib/multi.c6
-rw-r--r--lib/multiif.h3
3 files changed, 12 insertions, 1 deletions
diff --git a/lib/easy.c b/lib/easy.c
index 64c647be2..fa34c3827 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -1099,6 +1099,10 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action)
(KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) )
Curl_expire(data, 0, EXPIRE_RUN_NOW); /* get this handle going again */
+ /* This transfer may have been moved in or out of the bundle, update
+ the corresponding socket callback, if used */
+ Curl_updatesocket(data);
+
return result;
}
diff --git a/lib/multi.c b/lib/multi.c
index 69df90288..2f139ab37 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -2421,6 +2421,12 @@ static void singlesocket(struct Curl_multi *multi,
data->numsocks = num;
}
+void Curl_updatesocket(struct Curl_easy *data)
+{
+ singlesocket(data->multi, data);
+}
+
+
/*
* Curl_multi_closed()
*
diff --git a/lib/multiif.h b/lib/multiif.h
index a988bfd4a..b9c722aed 100644
--- a/lib/multiif.h
+++ b/lib/multiif.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -26,6 +26,7 @@
* Prototypes for library-wide functions provided by multi.c
*/
+void Curl_updatesocket(struct Curl_easy *data);
void Curl_expire(struct Curl_easy *data, time_t milli, expire_id);
void Curl_expire_clear(struct Curl_easy *data);
void Curl_expire_done(struct Curl_easy *data, expire_id id);