From 4608278d6befa32542df4aebe7eed293abb7e98c Mon Sep 17 00:00:00 2001 From: Thulinma Date: Thu, 14 Mar 2013 01:24:43 +0100 Subject: [PATCH] Fix problems with cancelled HTTP requests "corrupting" future requests. --- src/connectors/conn_http.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/connectors/conn_http.cpp b/src/connectors/conn_http.cpp index f470e413..5dfb55ad 100644 --- a/src/connectors/conn_http.cpp +++ b/src/connectors/conn_http.cpp @@ -262,6 +262,7 @@ namespace Connector_HTTP { tthread::lock_guard guard(connconn[uid]->in_use); //if the server connection is dead, handle as timeout. if ( !connconn.count(uid) || !connconn[uid]->conn->connected()){ + connconn[uid]->conn->close(); return Handle_Timeout(H, conn); } //forward the original request @@ -290,6 +291,7 @@ namespace Connector_HTTP { //keep trying unless the timeout triggers if (timeout++ > 4000){ std::cout << "[20s timeout triggered]" << std::endl; + connconn[uid]->conn->close(); return Handle_Timeout(H, conn); }else{ Util::sleep(5); @@ -298,6 +300,7 @@ namespace Connector_HTTP { } if ( !connconn.count(uid) || !connconn[uid]->conn->connected() || !conn->connected()){ //failure, disconnect and sent error to user + connconn[uid]->conn->close(); return Handle_Timeout(H, conn); }else{ long long int ret = Util::getMS();