diff --git a/ChangeLog b/ChangeLog index 4f1f1320..4da4f9e0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-08-30 Tatsuhiro Tsujikawa + + Fixed the bug that HTTP request header for XML-RPC request is not + parsed properly. + * src/HttpHeader.cc + * src/HttpHeaderProcessor.cc + 2009-08-30 Tatsuhiro Tsujikawa Fixed the bug that XML-RPC authorization might be done before HTTP diff --git a/src/HttpHeader.cc b/src/HttpHeader.cc index 4ab6234e..73b1dccb 100644 --- a/src/HttpHeader.cc +++ b/src/HttpHeader.cc @@ -33,10 +33,12 @@ */ /* copyright --> */ #include "HttpHeader.h" + +#include + #include "Range.h" #include "Util.h" #include "A2STR.h" -#include namespace aria2 { @@ -199,7 +201,7 @@ void HttpHeader::fill(std::istream& in) while(std::getline(in, line)) { line = Util::trim(line); if(line.empty()) { - break; + continue; } std::pair hp; Util::split(hp, line, ':'); diff --git a/src/HttpHeaderProcessor.cc b/src/HttpHeaderProcessor.cc index 2bfd0be7..298b936e 100644 --- a/src/HttpHeaderProcessor.cc +++ b/src/HttpHeaderProcessor.cc @@ -33,13 +33,15 @@ */ /* copyright --> */ #include "HttpHeaderProcessor.h" + +#include + #include "HttpHeader.h" #include "message.h" #include "Util.h" #include "DlRetryEx.h" #include "DlAbortEx.h" #include "A2STR.h" -#include namespace aria2 { @@ -131,7 +133,7 @@ SharedHandle HttpHeaderProcessor::getHttpRequestHeader() httpHeader->setMethod(firstLine[0]); httpHeader->setRequestPath(firstLine[1]); httpHeader->setVersion(firstLine[2]); - std::istringstream strm(_buf.substr(14)); + std::istringstream strm(_buf.substr(delimpos)); httpHeader->fill(strm); return httpHeader; }