Loading lib/hostasyn.c +12 −7 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2011, 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 Loading Loading @@ -83,10 +83,6 @@ void Curl_async_cancel(struct connectdata *conn) Curl_freeaddrinfo(conn->async.temp_ai); conn->async.temp_ai = NULL; } /* for ares-using, make sure all possible outstanding requests are properly cancelled before we proceed */ ares_cancel(conn->data->state.areschannel); } Loading Loading @@ -126,6 +122,10 @@ CURLcode Curl_addrinfo_callback(struct connectdata *conn, if(--conn->async.num_pending > 0) /* We are not done yet. Just return. */ return CURLE_OK; /* make sure the temp pointer is cleared and isn't pointing to something we take care of below */ conn->async.temp_ai = NULL; #endif if(data->share) Curl_share_lock(data, CURL_LOCK_DATA_DNS, CURL_LOCK_ACCESS_SINGLE); Loading @@ -147,8 +147,10 @@ CURLcode Curl_addrinfo_callback(struct connectdata *conn, if(--conn->async.num_pending > 0) { /* We are not done yet. Clean up and return. This function will be called again. */ if(conn->async.temp_ai) if(conn->async.temp_ai) { Curl_freeaddrinfo(conn->async.temp_ai); conn->async.temp_ai = NULL; } return CURLE_OUT_OF_MEMORY; } #endif Loading Loading @@ -178,9 +180,12 @@ CURLcode Curl_addrinfo_callback(struct connectdata *conn, Curl_freeaddrinfo(conn->async.temp_ai); rc = CURLE_OUT_OF_MEMORY; } if(data->share) Curl_share_unlock(data, CURL_LOCK_DATA_DNS); /* make sure the temp pointer is cleared and isn't pointing to something we've taken care of already */ conn->async.temp_ai = NULL; } } #endif Loading lib/url.c +2 −0 Original line number Diff line number Diff line Loading @@ -5241,6 +5241,8 @@ CURLcode Curl_done(struct connectdata **connp, data->req.location = NULL; } Curl_async_cancel(conn); if(conn->dns_entry) { Curl_resolv_unlock(data, conn->dns_entry); /* done with this */ conn->dns_entry = NULL; Loading Loading
lib/hostasyn.c +12 −7 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2011, 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 Loading Loading @@ -83,10 +83,6 @@ void Curl_async_cancel(struct connectdata *conn) Curl_freeaddrinfo(conn->async.temp_ai); conn->async.temp_ai = NULL; } /* for ares-using, make sure all possible outstanding requests are properly cancelled before we proceed */ ares_cancel(conn->data->state.areschannel); } Loading Loading @@ -126,6 +122,10 @@ CURLcode Curl_addrinfo_callback(struct connectdata *conn, if(--conn->async.num_pending > 0) /* We are not done yet. Just return. */ return CURLE_OK; /* make sure the temp pointer is cleared and isn't pointing to something we take care of below */ conn->async.temp_ai = NULL; #endif if(data->share) Curl_share_lock(data, CURL_LOCK_DATA_DNS, CURL_LOCK_ACCESS_SINGLE); Loading @@ -147,8 +147,10 @@ CURLcode Curl_addrinfo_callback(struct connectdata *conn, if(--conn->async.num_pending > 0) { /* We are not done yet. Clean up and return. This function will be called again. */ if(conn->async.temp_ai) if(conn->async.temp_ai) { Curl_freeaddrinfo(conn->async.temp_ai); conn->async.temp_ai = NULL; } return CURLE_OUT_OF_MEMORY; } #endif Loading Loading @@ -178,9 +180,12 @@ CURLcode Curl_addrinfo_callback(struct connectdata *conn, Curl_freeaddrinfo(conn->async.temp_ai); rc = CURLE_OUT_OF_MEMORY; } if(data->share) Curl_share_unlock(data, CURL_LOCK_DATA_DNS); /* make sure the temp pointer is cleared and isn't pointing to something we've taken care of already */ conn->async.temp_ai = NULL; } } #endif Loading
lib/url.c +2 −0 Original line number Diff line number Diff line Loading @@ -5241,6 +5241,8 @@ CURLcode Curl_done(struct connectdata **connp, data->req.location = NULL; } Curl_async_cancel(conn); if(conn->dns_entry) { Curl_resolv_unlock(data, conn->dns_entry); /* done with this */ conn->dns_entry = NULL; Loading