From 5c3d8d20a6cf21daef2c265daa840afde9d7de3f Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 18 Oct 2016 17:32:01 +0200 Subject: curl_multi_add_handle: set timeouts in closure handles The closure handle only ever has default timeouts set. To improve the state somewhat we clone the timeouts from each added handle so that the closure handle always has the same timeouts as the most recently added easy handle. Fixes #739 --- lib/multi.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lib') diff --git a/lib/multi.c b/lib/multi.c index 8e4091687..e81f5aadd 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -462,6 +462,14 @@ CURLMcode curl_multi_add_handle(struct Curl_multi *multi, handle is added */ memset(&multi->timer_lastcall, 0, sizeof(multi->timer_lastcall)); + /* The closure handle only ever has default timeouts set. To improve the + state somewhat we clone the timeouts from each added handle so that the + closure handle always has the same timeouts as the most recently added + easy handle. */ + multi->closure_handle->set.timeout = data->set.timeout; + multi->closure_handle->set.server_response_timeout = + data->set.server_response_timeout; + update_timer(multi); return CURLM_OK; } -- cgit v1.2.3