Add HTTPRequest and improvements to HTTPMessage parsing

This commit is contained in:
Vinnie Falco
2013-09-20 12:58:41 -07:00
parent 0cbfc6079b
commit ed1a4b1283
9 changed files with 152 additions and 6 deletions

View File

@@ -44,7 +44,15 @@ std::size_t HTTPParser::process (void const* buf, std::size_t bytes)
if (m_impl->finished ())
{
if (m_type == typeResponse)
if (m_type == typeRequest)
{
m_request = new HTTPRequest (
m_impl->version (),
m_impl->fields (),
m_impl->body (),
m_impl->method ());
}
else if (m_type == typeResponse)
{
m_response = new HTTPResponse (
m_impl->version (),
@@ -54,7 +62,7 @@ std::size_t HTTPParser::process (void const* buf, std::size_t bytes)
}
else
{
// m_request = new HTTPRequest (
bassertfalse;
}
}
@@ -71,6 +79,23 @@ bool HTTPParser::finished () const
return m_impl->finished();
}
StringPairArray const& HTTPParser::fields () const
{
return m_impl->fields();
}
bool HTTPParser::headersComplete () const
{
return m_impl->headers_complete();
}
SharedPtr <HTTPRequest> const& HTTPParser::request ()
{
bassert (m_type == typeRequest);
return m_request;
}
SharedPtr <HTTPResponse> const& HTTPParser::response ()
{
bassert (m_type == typeResponse);