X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fhttp%2Fformdata.cpp;h=9897bc59b4a1a663ba8d5f124909582e9b75e131;hb=9a62e48662f6328515ebf256e24762d856b8ce15;hp=182c5bbbdc7bfc1890cbf6e74380f6ac785902c1;hpb=d20870655aeca0614d9fc315fe5f9893ebdc7aa3;p=libs%2Fnet.git diff --git a/source/http/formdata.cpp b/source/http/formdata.cpp index 182c5bb..9897bc5 100644 --- a/source/http/formdata.cpp +++ b/source/http/formdata.cpp @@ -53,15 +53,15 @@ void FormData::parse_multipart(const Request &req, const string &boundary) if(is_boundary) { - /* The CRLF preceding the boundary delimiter is treated as part - of the delimiter as per RFC 2046 */ - string::size_type part_end = line_start-1; - if(content[part_end-1]=='\r') - --part_end; - if(part_start>0) { - SubMessage part = SubMessage::parse(content.substr(part_start, line_start-part_start)); + /* The CRLF preceding the boundary delimiter is treated as part + of the delimiter as per RFC 2046 */ + string::size_type part_end = line_start-1; + if(content[part_end-1]=='\r') + --part_end; + + SubMessage part = SubMessage::parse(content.substr(part_start, part_end-part_start)); Header content_disposition(part, "Content-Disposition"); const Header::Value &cd_value = content_disposition.values.at(0); if(cd_value.value=="form-data") @@ -72,10 +72,10 @@ void FormData::parse_multipart(const Request &req, const string &boundary) } part_start = lf+1; - } - if(!content.compare(line_start+2+boundary.size(), 2, "--")) - break; + if(!content.compare(line_start+2+boundary.size(), 2, "--")) + break; + } line_start = lf+1; }