mirror of
https://github.com/boostorg/beast.git
synced 2025-07-31 21:34:46 +02:00
@@ -4,6 +4,7 @@ WebSocket
|
||||
|
||||
* Fix done state for WebSocket reads
|
||||
* Fix utf8 check for compressed frames
|
||||
* Rename frame and header buffer types
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
@@ -110,11 +110,11 @@ struct frame_header
|
||||
};
|
||||
|
||||
// holds the largest possible frame header
|
||||
using fh_streambuf =
|
||||
using fh_buffer =
|
||||
flat_static_buffer<14>;
|
||||
|
||||
// holds the largest possible control frame
|
||||
using frame_streambuf =
|
||||
using frame_buffer =
|
||||
flat_static_buffer< 2 + 8 + 4 + 125 >;
|
||||
|
||||
inline
|
||||
|
@@ -44,7 +44,7 @@ class stream<NextLayer>::close_op
|
||||
{
|
||||
stream<NextLayer>& ws;
|
||||
token tok;
|
||||
detail::frame_streambuf fb;
|
||||
detail::frame_buffer fb;
|
||||
|
||||
state(
|
||||
Handler&,
|
||||
@@ -356,7 +356,7 @@ close(close_reason const& cr, error_code& ec)
|
||||
BOOST_ASSERT(! wr_close_);
|
||||
wr_close_ = true;
|
||||
{
|
||||
detail::frame_streambuf fb;
|
||||
detail::frame_buffer fb;
|
||||
write_close<flat_static_buffer_base>(fb, cr);
|
||||
boost::asio::write(stream_, fb.data(), ec);
|
||||
}
|
||||
|
@@ -42,7 +42,7 @@ class stream<NextLayer>::fail_op
|
||||
struct state
|
||||
{
|
||||
stream<NextLayer>& ws;
|
||||
detail::frame_streambuf fb;
|
||||
detail::frame_buffer fb;
|
||||
std::uint16_t code;
|
||||
error_code ev;
|
||||
token tok;
|
||||
@@ -222,8 +222,9 @@ do_fail(
|
||||
if(code != close_code::none && ! wr_close_)
|
||||
{
|
||||
wr_close_ = true;
|
||||
detail::frame_streambuf fb;
|
||||
write_close<flat_static_buffer_base>(fb, code);
|
||||
detail::frame_buffer fb;
|
||||
write_close<
|
||||
flat_static_buffer_base>(fb, code);
|
||||
boost::asio::write(stream_, fb.data(), ec);
|
||||
failed_ = !!ec;
|
||||
if(failed_)
|
||||
|
@@ -39,7 +39,7 @@ class stream<NextLayer>::ping_op
|
||||
struct state
|
||||
{
|
||||
stream<NextLayer>& ws;
|
||||
detail::frame_streambuf fb;
|
||||
detail::frame_buffer fb;
|
||||
token tok;
|
||||
|
||||
state(
|
||||
@@ -205,7 +205,7 @@ ping(ping_data const& payload, error_code& ec)
|
||||
ec = boost::asio::error::operation_aborted;
|
||||
return;
|
||||
}
|
||||
detail::frame_streambuf fb;
|
||||
detail::frame_buffer fb;
|
||||
write_ping<flat_static_buffer_base>(
|
||||
fb, detail::opcode::ping, payload);
|
||||
boost::asio::write(stream_, fb.data(), ec);
|
||||
@@ -233,7 +233,7 @@ pong(ping_data const& payload, error_code& ec)
|
||||
ec = boost::asio::error::operation_aborted;
|
||||
return;
|
||||
}
|
||||
detail::frame_streambuf fb;
|
||||
detail::frame_buffer fb;
|
||||
write_ping<flat_static_buffer_base>(
|
||||
fb, detail::opcode::pong, payload);
|
||||
boost::asio::write(stream_, fb.data(), ec);
|
||||
|
@@ -978,7 +978,7 @@ loop:
|
||||
}
|
||||
if(ctrl_cb_)
|
||||
ctrl_cb_(frame_type::ping, payload);
|
||||
detail::frame_streambuf fb;
|
||||
detail::frame_buffer fb;
|
||||
write_ping<flat_static_buffer_base>(fb,
|
||||
detail::opcode::pong, payload);
|
||||
boost::asio::write(stream_, fb.data(), ec);
|
||||
|
@@ -621,8 +621,9 @@ write_some(bool fin,
|
||||
}
|
||||
fh.fin = ! more;
|
||||
fh.len = n;
|
||||
detail::fh_streambuf fh_buf;
|
||||
detail::write<flat_static_buffer_base>(fh_buf, fh);
|
||||
detail::fh_buffer fh_buf;
|
||||
detail::write<
|
||||
flat_static_buffer_base>(fh_buf, fh);
|
||||
wr_.cont = ! fin;
|
||||
boost::asio::write(stream_,
|
||||
buffer_cat(fh_buf.data(), b), ec);
|
||||
@@ -649,8 +650,9 @@ write_some(bool fin,
|
||||
// no mask, no autofrag
|
||||
fh.fin = fin;
|
||||
fh.len = remain;
|
||||
detail::fh_streambuf fh_buf;
|
||||
detail::write<flat_static_buffer_base>(fh_buf, fh);
|
||||
detail::fh_buffer fh_buf;
|
||||
detail::write<
|
||||
flat_static_buffer_base>(fh_buf, fh);
|
||||
wr_.cont = ! fin;
|
||||
boost::asio::write(stream_,
|
||||
buffer_cat(fh_buf.data(), buffers), ec);
|
||||
@@ -670,8 +672,9 @@ write_some(bool fin,
|
||||
remain -= n;
|
||||
fh.len = n;
|
||||
fh.fin = fin ? remain == 0 : false;
|
||||
detail::fh_streambuf fh_buf;
|
||||
detail::write<flat_static_buffer_base>(fh_buf, fh);
|
||||
detail::fh_buffer fh_buf;
|
||||
detail::write<
|
||||
flat_static_buffer_base>(fh_buf, fh);
|
||||
wr_.cont = ! fin;
|
||||
boost::asio::write(stream_,
|
||||
buffer_cat(fh_buf.data(),
|
||||
@@ -695,8 +698,9 @@ write_some(bool fin,
|
||||
fh.key = maskgen_();
|
||||
detail::prepared_key key;
|
||||
detail::prepare_key(key, fh.key);
|
||||
detail::fh_streambuf fh_buf;
|
||||
detail::write<flat_static_buffer_base>(fh_buf, fh);
|
||||
detail::fh_buffer fh_buf;
|
||||
detail::write<
|
||||
flat_static_buffer_base>(fh_buf, fh);
|
||||
consuming_buffers<
|
||||
ConstBufferSequence> cb{buffers};
|
||||
{
|
||||
@@ -746,8 +750,9 @@ write_some(bool fin,
|
||||
remain -= n;
|
||||
fh.fin = fin ? remain == 0 : false;
|
||||
wr_.cont = ! fh.fin;
|
||||
detail::fh_streambuf fh_buf;
|
||||
detail::write<flat_static_buffer_base>(fh_buf, fh);
|
||||
detail::fh_buffer fh_buf;
|
||||
detail::write<
|
||||
flat_static_buffer_base>(fh_buf, fh);
|
||||
boost::asio::write(stream_,
|
||||
buffer_cat(fh_buf.data(), b), ec);
|
||||
failed_ = !!ec;
|
||||
|
@@ -154,7 +154,7 @@ class stream
|
||||
detail::prepared_key key; // current stateful mask key
|
||||
std::uint64_t size; // total size of current message so far
|
||||
std::uint64_t remain; // message frame bytes left in current frame
|
||||
detail::frame_streambuf fb; // to write control frames (during reads)
|
||||
detail::frame_buffer fb; // to write control frames (during reads)
|
||||
detail::utf8_checker utf8; // to validate utf8
|
||||
|
||||
// A small, circular buffer to read frame headers.
|
||||
@@ -201,7 +201,7 @@ class stream
|
||||
// sending a message.
|
||||
std::unique_ptr<std::uint8_t[]> buf;
|
||||
|
||||
detail::fh_streambuf fb;
|
||||
detail::fh_buffer fb;
|
||||
};
|
||||
|
||||
// State information for the permessage-deflate extension
|
||||
|
Reference in New Issue
Block a user