mirror of
https://github.com/boostorg/beast.git
synced 2025-07-29 20:37:31 +02:00
Remove message free functions (API Change)
This commit is contained in:
@ -17,6 +17,7 @@ API Changes:
|
||||
* Refactor prepare
|
||||
* Protect basic_fields special members
|
||||
* Remove message connection settings
|
||||
* Remove message free functions
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
@ -64,8 +64,7 @@
|
||||
<member><link linkend="beast.ref.http__async_write">async_write</link></member>
|
||||
<member><link linkend="beast.ref.http__async_write_header">async_write_header</link></member>
|
||||
<member><link linkend="beast.ref.http__async_write_some">async_write_some</link></member>
|
||||
<member><link linkend="beast.ref.http__is_keep_alive">is_keep_alive</link></member>
|
||||
<member><link linkend="beast.ref.http__is_upgrade">is_upgrade</link></member>
|
||||
<member><link linkend="beast.ref.http__int_to_status">int_to_status</link></member>
|
||||
<member><link linkend="beast.ref.http__make_serializer">make_serializer</link></member>
|
||||
<member><link linkend="beast.ref.http__obsolete_reason">obsolete_reason</link></member>
|
||||
<member><link linkend="beast.ref.http__operator_ls_">operator<<</link></member>
|
||||
@ -76,6 +75,7 @@
|
||||
<member><link linkend="beast.ref.http__string_to_verb">string_to_verb</link></member>
|
||||
<member><link linkend="beast.ref.http__swap">swap</link></member>
|
||||
<member><link linkend="beast.ref.http__to_string">to_string</link></member>
|
||||
<member><link linkend="beast.ref.http__to_status_class">to_status_class</link></member>
|
||||
<member><link linkend="beast.ref.http__write">write</link></member>
|
||||
<member><link linkend="beast.ref.http__write_header">write_header</link></member>
|
||||
<member><link linkend="beast.ref.http__write_some">write_some</link></member>
|
||||
@ -84,7 +84,6 @@
|
||||
<entry valign="top">
|
||||
<bridgehead renderas="sect3">Constants</bridgehead>
|
||||
<simplelist type="vert" columns="1">
|
||||
<member><link linkend="beast.ref.http__connection">connection</link></member>
|
||||
<member><link linkend="beast.ref.http__error">error</link></member>
|
||||
<member><link linkend="beast.ref.http__field">field</link></member>
|
||||
<member><link linkend="beast.ref.http__status">status</link></member>
|
||||
|
@ -9,10 +9,10 @@
|
||||
#define BEAST_HTTP_IMPL_MESSAGE_IPP
|
||||
|
||||
#include <beast/core/error.hpp>
|
||||
#include <beast/http/rfc7230.hpp>
|
||||
#include <beast/core/detail/ci_char_traits.hpp>
|
||||
#include <beast/core/detail/type_traits.hpp>
|
||||
#include <boost/assert.hpp>
|
||||
#include <boost/throw_exception.hpp>
|
||||
#include <stdexcept>
|
||||
|
||||
namespace beast {
|
||||
@ -43,7 +43,7 @@ method(verb v)
|
||||
{
|
||||
if(v == verb::unknown)
|
||||
BOOST_THROW_EXCEPTION(
|
||||
std::invalid_argument{"unknown verb"});
|
||||
std::invalid_argument{"unknown method"});
|
||||
method_ = v;
|
||||
this->set_method_impl({});
|
||||
}
|
||||
@ -140,7 +140,7 @@ result(unsigned v)
|
||||
if(v > 999)
|
||||
BOOST_THROW_EXCEPTION(
|
||||
std::invalid_argument{
|
||||
"invalid result-code"});
|
||||
"invalid status-code"});
|
||||
result_ = static_cast<status>(v);
|
||||
}
|
||||
|
||||
@ -307,8 +307,8 @@ message<isRequest, Body, Fields>::
|
||||
prepare(std::true_type)
|
||||
{
|
||||
auto const n = size();
|
||||
if(this->method_ == verb::trace &&
|
||||
(! n || *n > 0))
|
||||
if(this->method_ == verb::trace && (
|
||||
! n || *n > 0))
|
||||
BOOST_THROW_EXCEPTION(std::invalid_argument{
|
||||
"invalid request body"});
|
||||
if(n)
|
||||
@ -366,34 +366,6 @@ swap(
|
||||
swap(m1.body, m2.body);
|
||||
}
|
||||
|
||||
template<bool isRequest, class Fields>
|
||||
bool
|
||||
is_keep_alive(header<isRequest, Fields> const& msg)
|
||||
{
|
||||
BOOST_ASSERT(msg.version == 10 || msg.version == 11);
|
||||
if(msg.version == 11)
|
||||
{
|
||||
if(token_list{msg["Connection"]}.exists("close"))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
if(token_list{msg["Connection"]}.exists("keep-alive"))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
template<bool isRequest, class Fields>
|
||||
bool
|
||||
is_upgrade(header<isRequest, Fields> const& msg)
|
||||
{
|
||||
BOOST_ASSERT(msg.version == 10 || msg.version == 11);
|
||||
if(msg.version == 10)
|
||||
return false;
|
||||
if(token_list{msg["Connection"]}.exists("upgrade"))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
} // http
|
||||
} // beast
|
||||
|
||||
|
@ -595,24 +595,6 @@ swap(
|
||||
message<isRequest, Body, Fields>& m1,
|
||||
message<isRequest, Body, Fields>& m2);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/** Returns `true` if the HTTP/1 message indicates a keep alive.
|
||||
|
||||
Undefined behavior if version is greater than 11.
|
||||
*/
|
||||
template<bool isRequest, class Fields>
|
||||
bool
|
||||
is_keep_alive(header<isRequest, Fields> const& msg);
|
||||
|
||||
/** Returns `true` if the HTTP/1 message indicates an Upgrade request or response.
|
||||
|
||||
Undefined behavior if version is greater than 11.
|
||||
*/
|
||||
template<bool isRequest, class Fields>
|
||||
bool
|
||||
is_upgrade(header<isRequest, Fields> const& msg);
|
||||
|
||||
} // http
|
||||
} // beast
|
||||
|
||||
|
@ -21,7 +21,7 @@ is_upgrade(http::header<true, Fields> const& req)
|
||||
return false;
|
||||
if(req.method() != http::verb::get)
|
||||
return false;
|
||||
if(! http::is_upgrade(req))
|
||||
if(! http::token_list{req["Connection"]}.exists("upgrade"))
|
||||
return false;
|
||||
if(! http::token_list{req["Upgrade"]}.exists("websocket"))
|
||||
return false;
|
||||
|
@ -8,6 +8,7 @@
|
||||
#ifndef BEAST_WEBSOCKET_IMPL_STREAM_IPP
|
||||
#define BEAST_WEBSOCKET_IMPL_STREAM_IPP
|
||||
|
||||
#include <beast/websocket/rfc6455.hpp>
|
||||
#include <beast/websocket/teardown.hpp>
|
||||
#include <beast/websocket/detail/hybi13.hpp>
|
||||
#include <beast/websocket/detail/pmd_extension.hpp>
|
||||
@ -285,7 +286,7 @@ do_response(http::header<false> const& res,
|
||||
return false;
|
||||
if(res.result() != http::status::switching_protocols)
|
||||
return false;
|
||||
if(! is_upgrade(res))
|
||||
if(! http::token_list{res["Connection"]}.exists("upgrade"))
|
||||
return false;
|
||||
if(! http::token_list{res["Upgrade"]}.exists("websocket"))
|
||||
return false;
|
||||
|
@ -194,25 +194,6 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
testFreeFunctions()
|
||||
{
|
||||
{
|
||||
request<string_body> m;
|
||||
m.method(verb::get);
|
||||
m.target("/");
|
||||
m.version = 11;
|
||||
m.insert("Upgrade", "test");
|
||||
BEAST_EXPECT(! is_upgrade(m));
|
||||
|
||||
m.insert(field::connection, "upgrade");
|
||||
BEAST_EXPECT(is_upgrade(m));
|
||||
|
||||
m.version = 10;
|
||||
BEAST_EXPECT(! is_upgrade(m));
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
testSwap()
|
||||
{
|
||||
@ -312,7 +293,6 @@ public:
|
||||
{
|
||||
testMessage();
|
||||
testHeaders();
|
||||
testFreeFunctions();
|
||||
testSwap();
|
||||
testSpecialMembers();
|
||||
testMethod();
|
||||
|
Reference in New Issue
Block a user