The functions Curl_disconnect() and Curl_done() are both used within the
scope of a single request so they cannot be allowed to use
Curl_expire(... 0) to kill all timeouts as there are some timeouts that
are set before a request that are supposed to remain until the request
is done.
The timeouts are now instead cleared at curl_easy_cleanup() and when the
multi state machine changes a handle to the complete state.
/* Important: reset the conn pointer so that we don't point to memory
that could be freed anytime */
easy->easy_conn = NULL;
+
+ Curl_expire(data, 0); /* stop all timers */
break;
case CURLM_STATE_MSGSENT:
}
#endif
+ Curl_expire(data, 0); /* shut off timers */
+
if(m)
/* This handle is still part of a multi handle, take care of this first
and detach this handle from there. */
NULL, Curl_scan_cache_used);
#endif
- Curl_expire(data, 0); /* shut off timers */
Curl_hostcache_prune(data); /* kill old DNS cache entries */
{
conn = *connp;
data = conn->data;
- Curl_expire(data, 0); /* stop timer */
-
if(conn->bits.done)
/* Stop if Curl_done() has already been called */
return CURLE_OK;