Simplified Server::parse_request

This commit is contained in:
eidheim 2016-11-23 09:54:22 +01:00
commit 0d8052dcb9
2 changed files with 11 additions and 11 deletions

View file

@ -255,7 +255,7 @@ namespace SimpleWeb {
//streambuf (maybe some bytes of the content) is appended to in the async_read-function below (for retrieving content).
size_t num_additional_bytes=request->streambuf.size()-bytes_transferred;
if(!parse_request(request, request->content))
if(!parse_request(request))
return;
//If content, read that as well
@ -292,9 +292,9 @@ namespace SimpleWeb {
});
}
bool parse_request(const std::shared_ptr<Request> &request, std::istream& stream) const {
bool parse_request(const std::shared_ptr<Request> &request) const {
std::string line;
getline(stream, line);
getline(request->content, line);
size_t method_end;
if((method_end=line.find(' '))!=std::string::npos) {
size_t path_end;
@ -311,7 +311,7 @@ namespace SimpleWeb {
else
return false;
getline(stream, line);
getline(request->content, line);
size_t param_end;
while((param_end=line.find(':'))!=std::string::npos) {
size_t value_start=param_end+1;
@ -322,7 +322,7 @@ namespace SimpleWeb {
request->header.insert(std::make_pair(line.substr(0, param_end), line.substr(value_start, line.size()-value_start-1)));
}
getline(stream, line);
getline(request->content, line);
}
}
else

View file

@ -15,13 +15,13 @@ public:
bool parse_request_test() {
std::shared_ptr<Request> request(new Request());
stringstream ss;
ss << "GET /test/ HTTP/1.1\r\n";
ss << "TestHeader: test\r\n";
ss << "TestHeader2:test2\r\n";
ss << "\r\n";
std::ostream stream(&request->content.streambuf);
stream << "GET /test/ HTTP/1.1\r\n";
stream << "TestHeader: test\r\n";
stream << "TestHeader2:test2\r\n";
stream << "\r\n";
if(!parse_request(request, ss))
if(!parse_request(request))
return 0;
if(request->method!="GET")