This commit is contained in:
karenzshea 2016-01-29 17:02:18 -05:00 committed by Patrick Niklaus
parent 262cdd7bc0
commit f5c12ec433
3 changed files with 8 additions and 8 deletions

View File

@ -21,9 +21,6 @@ class RequestParser
public: public:
RequestParser(); RequestParser();
std::tuple<RequestStatus, http::compression_type>
parse(http::request &current_request, char *begin, char *end);
enum class RequestStatus : char enum class RequestStatus : char
{ {
valid, valid,
@ -31,6 +28,9 @@ class RequestParser
indeterminate indeterminate
}; };
std::tuple<RequestStatus, http::compression_type>
parse(http::request &current_request, char *begin, char *end);
private: private:
RequestStatus consume(http::request &current_request, const char input); RequestStatus consume(http::request &current_request, const char input);

View File

@ -41,13 +41,13 @@ void Connection::handle_read(const boost::system::error_code &error, std::size_t
// no error detected, let's parse the request // no error detected, let's parse the request
http::compression_type compression_type(http::no_compression); http::compression_type compression_type(http::no_compression);
RequestStatus result; RequestParser::RequestStatus result;
std::tie(result, compression_type) = std::tie(result, compression_type) =
request_parser.parse(current_request, incoming_data_buffer.data(), request_parser.parse(current_request, incoming_data_buffer.data(),
incoming_data_buffer.data() + bytes_transferred); incoming_data_buffer.data() + bytes_transferred);
// the request has been parsed // the request has been parsed
if (result == RequestStatus::yes) if (result == RequestParser::RequestStatus::valid)
{ {
current_request.endpoint = TCP_socket.remote_endpoint().address(); current_request.endpoint = TCP_socket.remote_endpoint().address();
request_handler.handle_request(current_request, current_reply); request_handler.handle_request(current_request, current_reply);
@ -85,7 +85,7 @@ void Connection::handle_read(const boost::system::error_code &error, std::size_t
strand.wrap(boost::bind(&Connection::handle_write, this->shared_from_this(), strand.wrap(boost::bind(&Connection::handle_write, this->shared_from_this(),
boost::asio::placeholders::error))); boost::asio::placeholders::error)));
} }
else if (result == RequestStatus::no) else if (result == RequestParser::RequestStatus::invalid)
{ // request is not parseable { // request is not parseable
current_reply = http::reply::stock_reply(http::reply::bad_request); current_reply = http::reply::stock_reply(http::reply::bad_request);

View File

@ -19,7 +19,7 @@ RequestParser::RequestParser()
{ {
} }
std::tuple<RequestStatus, http::compression_type> std::tuple<RequestParser::RequestStatus, http::compression_type>
RequestParser::parse(http::request &current_request, char *begin, char *end) RequestParser::parse(http::request &current_request, char *begin, char *end)
{ {
while (begin != end) while (begin != end)
@ -39,7 +39,7 @@ RequestParser::parse(http::request &current_request, char *begin, char *end)
return std::make_tuple(result, selected_compression); return std::make_tuple(result, selected_compression);
} }
RequestStatus RequestParser::consume(http::request &current_request, const char input) RequestParser::RequestStatus RequestParser::consume(http::request &current_request, const char input)
{ {
switch (state) switch (state)
{ {