summaryrefslogtreecommitdiff
path: root/src/HttpConnection.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/HttpConnection.cc')
-rw-r--r--src/HttpConnection.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/HttpConnection.cc b/src/HttpConnection.cc
index 74362823..7fb4cd4f 100644
--- a/src/HttpConnection.cc
+++ b/src/HttpConnection.cc
@@ -110,6 +110,10 @@ HttpResponseHandle HttpConnection::receiveResponse()
logger->info(MSG_RECEIVE_RESPONSE, cuid, proc->getHeaderString().c_str());
pair<string, HttpHeaderHandle> httpStatusHeader = proc->getHttpStatusHeader();
+ if(Util::toLower(httpStatusHeader.second->getFirst("Connection")).find("close") != string::npos) {
+ entry->getHttpRequest()->getRequest()->setKeepAlive(false);
+ }
+
HttpResponseHandle httpResponse = new HttpResponse();
httpResponse->setCuid(cuid);
httpResponse->setStatus(strtol(httpStatusHeader.first.c_str(), 0, 10));
@@ -120,3 +124,17 @@ HttpResponseHandle HttpConnection::receiveResponse()
return httpResponse;
}
+
+bool HttpConnection::isIssued(const SegmentHandle& segment) const
+{
+ for(HttpRequestEntries::const_iterator itr = outstandingHttpRequests.begin();
+ itr != outstandingHttpRequests.end(); ++itr) {
+ HttpRequestHandle httpRequest = (*itr)->getHttpRequest();
+ // TODO fix this using operator==
+ if(httpRequest->getSegment().get() == segment.get()) {
+ return true;
+ }
+ }
+ return false;
+}
+