comments
This commit is contained in:
parent
262cdd7bc0
commit
f5c12ec433
@ -21,9 +21,6 @@ class RequestParser
|
|||||||
public:
|
public:
|
||||||
RequestParser();
|
RequestParser();
|
||||||
|
|
||||||
std::tuple<RequestStatus, http::compression_type>
|
|
||||||
parse(http::request ¤t_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 ¤t_request, char *begin, char *end);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RequestStatus consume(http::request ¤t_request, const char input);
|
RequestStatus consume(http::request ¤t_request, const char input);
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ RequestParser::RequestParser()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
std::tuple<RequestStatus, http::compression_type>
|
std::tuple<RequestParser::RequestStatus, http::compression_type>
|
||||||
RequestParser::parse(http::request ¤t_request, char *begin, char *end)
|
RequestParser::parse(http::request ¤t_request, char *begin, char *end)
|
||||||
{
|
{
|
||||||
while (begin != end)
|
while (begin != end)
|
||||||
@ -39,7 +39,7 @@ RequestParser::parse(http::request ¤t_request, char *begin, char *end)
|
|||||||
return std::make_tuple(result, selected_compression);
|
return std::make_tuple(result, selected_compression);
|
||||||
}
|
}
|
||||||
|
|
||||||
RequestStatus RequestParser::consume(http::request ¤t_request, const char input)
|
RequestParser::RequestStatus RequestParser::consume(http::request ¤t_request, const char input)
|
||||||
{
|
{
|
||||||
switch (state)
|
switch (state)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user