mirror of
https://github.com/boostorg/beast.git
synced 2025-07-30 12:57:31 +02:00
Remove message free functions (API Change)
This commit is contained in:
@ -17,6 +17,7 @@ API Changes:
|
|||||||
* Refactor prepare
|
* Refactor prepare
|
||||||
* Protect basic_fields special members
|
* Protect basic_fields special members
|
||||||
* Remove message connection settings
|
* 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">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_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__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__int_to_status">int_to_status</link></member>
|
||||||
<member><link linkend="beast.ref.http__is_upgrade">is_upgrade</link></member>
|
|
||||||
<member><link linkend="beast.ref.http__make_serializer">make_serializer</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__obsolete_reason">obsolete_reason</link></member>
|
||||||
<member><link linkend="beast.ref.http__operator_ls_">operator<<</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__string_to_verb">string_to_verb</link></member>
|
||||||
<member><link linkend="beast.ref.http__swap">swap</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_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">write</link></member>
|
||||||
<member><link linkend="beast.ref.http__write_header">write_header</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>
|
<member><link linkend="beast.ref.http__write_some">write_some</link></member>
|
||||||
@ -84,7 +84,6 @@
|
|||||||
<entry valign="top">
|
<entry valign="top">
|
||||||
<bridgehead renderas="sect3">Constants</bridgehead>
|
<bridgehead renderas="sect3">Constants</bridgehead>
|
||||||
<simplelist type="vert" columns="1">
|
<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__error">error</link></member>
|
||||||
<member><link linkend="beast.ref.http__field">field</link></member>
|
<member><link linkend="beast.ref.http__field">field</link></member>
|
||||||
<member><link linkend="beast.ref.http__status">status</link></member>
|
<member><link linkend="beast.ref.http__status">status</link></member>
|
||||||
|
@ -9,10 +9,10 @@
|
|||||||
#define BEAST_HTTP_IMPL_MESSAGE_IPP
|
#define BEAST_HTTP_IMPL_MESSAGE_IPP
|
||||||
|
|
||||||
#include <beast/core/error.hpp>
|
#include <beast/core/error.hpp>
|
||||||
#include <beast/http/rfc7230.hpp>
|
|
||||||
#include <beast/core/detail/ci_char_traits.hpp>
|
#include <beast/core/detail/ci_char_traits.hpp>
|
||||||
#include <beast/core/detail/type_traits.hpp>
|
#include <beast/core/detail/type_traits.hpp>
|
||||||
#include <boost/assert.hpp>
|
#include <boost/assert.hpp>
|
||||||
|
#include <boost/throw_exception.hpp>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
namespace beast {
|
namespace beast {
|
||||||
@ -43,7 +43,7 @@ method(verb v)
|
|||||||
{
|
{
|
||||||
if(v == verb::unknown)
|
if(v == verb::unknown)
|
||||||
BOOST_THROW_EXCEPTION(
|
BOOST_THROW_EXCEPTION(
|
||||||
std::invalid_argument{"unknown verb"});
|
std::invalid_argument{"unknown method"});
|
||||||
method_ = v;
|
method_ = v;
|
||||||
this->set_method_impl({});
|
this->set_method_impl({});
|
||||||
}
|
}
|
||||||
@ -140,7 +140,7 @@ result(unsigned v)
|
|||||||
if(v > 999)
|
if(v > 999)
|
||||||
BOOST_THROW_EXCEPTION(
|
BOOST_THROW_EXCEPTION(
|
||||||
std::invalid_argument{
|
std::invalid_argument{
|
||||||
"invalid result-code"});
|
"invalid status-code"});
|
||||||
result_ = static_cast<status>(v);
|
result_ = static_cast<status>(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -307,8 +307,8 @@ message<isRequest, Body, Fields>::
|
|||||||
prepare(std::true_type)
|
prepare(std::true_type)
|
||||||
{
|
{
|
||||||
auto const n = size();
|
auto const n = size();
|
||||||
if(this->method_ == verb::trace &&
|
if(this->method_ == verb::trace && (
|
||||||
(! n || *n > 0))
|
! n || *n > 0))
|
||||||
BOOST_THROW_EXCEPTION(std::invalid_argument{
|
BOOST_THROW_EXCEPTION(std::invalid_argument{
|
||||||
"invalid request body"});
|
"invalid request body"});
|
||||||
if(n)
|
if(n)
|
||||||
@ -366,34 +366,6 @@ swap(
|
|||||||
swap(m1.body, m2.body);
|
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
|
} // http
|
||||||
} // beast
|
} // beast
|
||||||
|
|
||||||
|
@ -595,24 +595,6 @@ swap(
|
|||||||
message<isRequest, Body, Fields>& m1,
|
message<isRequest, Body, Fields>& m1,
|
||||||
message<isRequest, Body, Fields>& m2);
|
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
|
} // http
|
||||||
} // beast
|
} // beast
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ is_upgrade(http::header<true, Fields> const& req)
|
|||||||
return false;
|
return false;
|
||||||
if(req.method() != http::verb::get)
|
if(req.method() != http::verb::get)
|
||||||
return false;
|
return false;
|
||||||
if(! http::is_upgrade(req))
|
if(! http::token_list{req["Connection"]}.exists("upgrade"))
|
||||||
return false;
|
return false;
|
||||||
if(! http::token_list{req["Upgrade"]}.exists("websocket"))
|
if(! http::token_list{req["Upgrade"]}.exists("websocket"))
|
||||||
return false;
|
return false;
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#ifndef BEAST_WEBSOCKET_IMPL_STREAM_IPP
|
#ifndef BEAST_WEBSOCKET_IMPL_STREAM_IPP
|
||||||
#define BEAST_WEBSOCKET_IMPL_STREAM_IPP
|
#define BEAST_WEBSOCKET_IMPL_STREAM_IPP
|
||||||
|
|
||||||
|
#include <beast/websocket/rfc6455.hpp>
|
||||||
#include <beast/websocket/teardown.hpp>
|
#include <beast/websocket/teardown.hpp>
|
||||||
#include <beast/websocket/detail/hybi13.hpp>
|
#include <beast/websocket/detail/hybi13.hpp>
|
||||||
#include <beast/websocket/detail/pmd_extension.hpp>
|
#include <beast/websocket/detail/pmd_extension.hpp>
|
||||||
@ -285,7 +286,7 @@ do_response(http::header<false> const& res,
|
|||||||
return false;
|
return false;
|
||||||
if(res.result() != http::status::switching_protocols)
|
if(res.result() != http::status::switching_protocols)
|
||||||
return false;
|
return false;
|
||||||
if(! is_upgrade(res))
|
if(! http::token_list{res["Connection"]}.exists("upgrade"))
|
||||||
return false;
|
return false;
|
||||||
if(! http::token_list{res["Upgrade"]}.exists("websocket"))
|
if(! http::token_list{res["Upgrade"]}.exists("websocket"))
|
||||||
return false;
|
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
|
void
|
||||||
testSwap()
|
testSwap()
|
||||||
{
|
{
|
||||||
@ -312,7 +293,6 @@ public:
|
|||||||
{
|
{
|
||||||
testMessage();
|
testMessage();
|
||||||
testHeaders();
|
testHeaders();
|
||||||
testFreeFunctions();
|
|
||||||
testSwap();
|
testSwap();
|
||||||
testSpecialMembers();
|
testSpecialMembers();
|
||||||
testMethod();
|
testMethod();
|
||||||
|
Reference in New Issue
Block a user