summaryrefslogtreecommitdiff
path: root/src/HttpConnection.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-07-03 00:02:27 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-07-03 00:02:27 +0900
commitf2d85c38cc6e7c514510e117a6711913f08bf64d (patch)
tree344e1b648592485c0f18e9c04fd043600f41d0ea /src/HttpConnection.cc
parentf022402dc91e7796032dfbeacd730bb8bf201920 (diff)
Fix segmentaion fault
Diffstat (limited to 'src/HttpConnection.cc')
-rw-r--r--src/HttpConnection.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/HttpConnection.cc b/src/HttpConnection.cc
index c008d5a9..9f49c1d8 100644
--- a/src/HttpConnection.cc
+++ b/src/HttpConnection.cc
@@ -63,8 +63,8 @@ namespace aria2 {
HttpRequestEntry::HttpRequestEntry
(const std::shared_ptr<HttpRequest>& httpRequest)
- : httpRequest_(httpRequest),
- proc_(new HttpHeaderProcessor(HttpHeaderProcessor::CLIENT_PARSER))
+ : httpRequest_{httpRequest},
+ proc_{make_unique<HttpHeaderProcessor>(HttpHeaderProcessor::CLIENT_PARSER)}
{}
HttpRequestEntry::~HttpRequestEntry() {}
@@ -152,9 +152,11 @@ std::shared_ptr<HttpResponse> HttpConnection::receiveResponse()
httpResponse->setHttpHeader(proc->getResult());
httpResponse->setHttpRequest(outstandingHttpRequests_.front()->
getHttpRequest());
+ socketRecvBuffer_->shiftBuffer(proc->getLastBytesProcessed());
outstandingHttpRequests_.pop_front();
+ } else {
+ socketRecvBuffer_->shiftBuffer(proc->getLastBytesProcessed());
}
- socketRecvBuffer_->shiftBuffer(proc->getLastBytesProcessed());
return httpResponse;
}