From e1fa62e6c7ce3617b8bb72b4ffe63f505cc0fdda Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Mon, 21 Apr 2008 10:48:11 +0000 Subject: 2008-04-21 Tatsuhiro Tsujikawa Now HTTP status and version are a member variable of HttpHeader. HTTP status is processed as a string, not integer. * src/AbstractProxyResponseCommand.cc * src/HttpConnection.cc * src/HttpHeader.cc * src/HttpHeader.h * src/HttpHeaderProcessor.cc * src/HttpHeaderProcessor.h * src/HttpResponse.cc * src/HttpResponse.h * test/HttpHeaderProcessorTest.cc * test/HttpResponseTest.cc --- src/HttpHeaderProcessor.cc | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'src/HttpHeaderProcessor.cc') diff --git a/src/HttpHeaderProcessor.cc b/src/HttpHeaderProcessor.cc index 254bb737..b16d7f90 100644 --- a/src/HttpHeaderProcessor.cc +++ b/src/HttpHeaderProcessor.cc @@ -77,7 +77,7 @@ bool HttpHeaderProcessor::eoh() const size_t HttpHeaderProcessor::getPutBackDataLength() const { - std::string str = strm.str(); + const std::string& str = strm.str(); std::string::size_type delimpos = std::string::npos; if((delimpos = str.find("\r\n\r\n")) != std::string::npos) { return str.size()-(delimpos+4); @@ -93,7 +93,7 @@ void HttpHeaderProcessor::clear() strm.str(""); } -std::pair HttpHeaderProcessor::getHttpStatusHeader() +SharedHandle HttpHeaderProcessor::getHttpResponseHeader() { strm.seekg(0, std::ios::beg); std::string line; @@ -102,19 +102,11 @@ std::pair HttpHeaderProcessor::getHttpStatusHeade if(line.size() <= 12) { throw new DlRetryEx(EX_NO_STATUS_HEADER); } - std::string status = line.substr(9, 3); HttpHeaderHandle httpHeader(new HttpHeader()); - while(getline(strm, line)) { - line = Util::trim(line); - if(line.empty()) { - break; - } - std::pair hp; - Util::split(hp, line, ':'); - httpHeader->put(hp.first, hp.second); - } - - return std::pair(status, httpHeader); + httpHeader->setResponseStatus(line.substr(9, 3)); + httpHeader->setVersion(line.substr(0, 8)); + httpHeader->fill(strm); + return httpHeader; } std::string HttpHeaderProcessor::getHeaderString() const -- cgit