Fix problems with cancelled HTTP requests "corrupting" future requests.
This commit is contained in:
parent
e076496244
commit
4608278d6b
1 changed files with 3 additions and 0 deletions
|
@ -262,6 +262,7 @@ namespace Connector_HTTP {
|
||||||
tthread::lock_guard<tthread::mutex> guard(connconn[uid]->in_use);
|
tthread::lock_guard<tthread::mutex> guard(connconn[uid]->in_use);
|
||||||
//if the server connection is dead, handle as timeout.
|
//if the server connection is dead, handle as timeout.
|
||||||
if ( !connconn.count(uid) || !connconn[uid]->conn->connected()){
|
if ( !connconn.count(uid) || !connconn[uid]->conn->connected()){
|
||||||
|
connconn[uid]->conn->close();
|
||||||
return Handle_Timeout(H, conn);
|
return Handle_Timeout(H, conn);
|
||||||
}
|
}
|
||||||
//forward the original request
|
//forward the original request
|
||||||
|
@ -290,6 +291,7 @@ namespace Connector_HTTP {
|
||||||
//keep trying unless the timeout triggers
|
//keep trying unless the timeout triggers
|
||||||
if (timeout++ > 4000){
|
if (timeout++ > 4000){
|
||||||
std::cout << "[20s timeout triggered]" << std::endl;
|
std::cout << "[20s timeout triggered]" << std::endl;
|
||||||
|
connconn[uid]->conn->close();
|
||||||
return Handle_Timeout(H, conn);
|
return Handle_Timeout(H, conn);
|
||||||
}else{
|
}else{
|
||||||
Util::sleep(5);
|
Util::sleep(5);
|
||||||
|
@ -298,6 +300,7 @@ namespace Connector_HTTP {
|
||||||
}
|
}
|
||||||
if ( !connconn.count(uid) || !connconn[uid]->conn->connected() || !conn->connected()){
|
if ( !connconn.count(uid) || !connconn[uid]->conn->connected() || !conn->connected()){
|
||||||
//failure, disconnect and sent error to user
|
//failure, disconnect and sent error to user
|
||||||
|
connconn[uid]->conn->close();
|
||||||
return Handle_Timeout(H, conn);
|
return Handle_Timeout(H, conn);
|
||||||
}else{
|
}else{
|
||||||
long long int ret = Util::getMS();
|
long long int ret = Util::getMS();
|
||||||
|
|
Loading…
Add table
Reference in a new issue