mirror of
https://github.com/boostorg/beast.git
synced 2025-07-30 21:07:26 +02:00
Improve first line serialization
This commit is contained in:
@ -4,6 +4,7 @@
|
||||
* Frame processing routines are member functions
|
||||
* Fix on_headers called twice from basic_parser_v1
|
||||
* Constrain parser_v1 constructor
|
||||
* Improve first line serialization
|
||||
* Refine Parser concept
|
||||
|
||||
API Changes:
|
||||
|
@ -40,11 +40,24 @@ write_firstline(DynamicBuffer& dynabuf,
|
||||
write(dynabuf, msg.method);
|
||||
write(dynabuf, " ");
|
||||
write(dynabuf, msg.url);
|
||||
write(dynabuf, " HTTP/");
|
||||
write(dynabuf, msg.version / 10);
|
||||
write(dynabuf, ".");
|
||||
write(dynabuf, msg.version % 10);
|
||||
write(dynabuf, "\r\n");
|
||||
switch(msg.version)
|
||||
{
|
||||
case 10:
|
||||
write(dynabuf, " HTTP/1.0\r\n");
|
||||
break;
|
||||
case 11:
|
||||
write(dynabuf, " HTTP/1.1\r\n");
|
||||
break;
|
||||
default:
|
||||
{
|
||||
std::string s;
|
||||
s = " HTTP/" +
|
||||
std::to_string(msg.version/10) + '.' +
|
||||
std::to_string(msg.version%10) + "\r\n";
|
||||
write(dynabuf, s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
template<class DynamicBuffer, class Body, class Headers>
|
||||
@ -52,11 +65,24 @@ void
|
||||
write_firstline(DynamicBuffer& dynabuf,
|
||||
message_v1<false, Body, Headers> const& msg)
|
||||
{
|
||||
write(dynabuf, "HTTP/");
|
||||
write(dynabuf, msg.version / 10);
|
||||
write(dynabuf, ".");
|
||||
write(dynabuf, msg.version % 10);
|
||||
write(dynabuf, " ");
|
||||
switch(msg.version)
|
||||
{
|
||||
case 10:
|
||||
write(dynabuf, "HTTP/1.0 ");
|
||||
break;
|
||||
case 11:
|
||||
write(dynabuf, "HTTP/1.1 ");
|
||||
break;
|
||||
default:
|
||||
{
|
||||
std::string s;
|
||||
s = " HTTP/" +
|
||||
std::to_string(msg.version/10) + '.' +
|
||||
std::to_string(msg.version%10) + ' ';
|
||||
write(dynabuf, s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
write(dynabuf, msg.status);
|
||||
write(dynabuf, " ");
|
||||
write(dynabuf, msg.reason);
|
||||
|
Reference in New Issue
Block a user