diff --git a/src/http/client/http_client.cc b/src/http/client/http_client.cc index 5dbfca5242c..355f38e0ec1 100644 --- a/src/http/client/http_client.cc +++ b/src/http/client/http_client.cc @@ -202,6 +202,10 @@ void HttpConnection::HttpProcessInternal(const std::string body, std::string pat return; } + if (curl_handle_) { + // delete existing curl_handle + del_curl_handle(curl_handle_, gi); + } curl_handle->connection = this; set_curl_handle(curl_handle); diff --git a/src/http/client/http_curl.cc b/src/http/client/http_curl.cc index 900ae935c44..c3d8bd4ec91 100644 --- a/src/http/client/http_curl.cc +++ b/src/http/client/http_curl.cc @@ -97,9 +97,6 @@ static void check_multi_info(GlobalInfo *g) std::string empty_str(""); if (conn->connection->HttpClientCb() != NULL) conn->connection->HttpClientCb()(empty_str, error); - - conn->connection->set_curl_handle(NULL); - del_curl_handle(conn, g); } } }