summaryrefslogtreecommitdiff
path: root/boost/beast/websocket/detail/frame.hpp
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2019-12-05 15:12:59 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2019-12-05 15:12:59 +0900
commitb8cf34c691623e4ec329053cbbf68522a855882d (patch)
tree34da08632a99677f6b79ecb65e5b655a5b69a67f /boost/beast/websocket/detail/frame.hpp
parent3fdc3e5ee96dca5b11d1694975a65200787eab86 (diff)
downloadboost-b8cf34c691623e4ec329053cbbf68522a855882d.tar.gz
boost-b8cf34c691623e4ec329053cbbf68522a855882d.tar.bz2
boost-b8cf34c691623e4ec329053cbbf68522a855882d.zip
Imported Upstream version 1.67.0upstream/1.67.0
Diffstat (limited to 'boost/beast/websocket/detail/frame.hpp')
-rw-r--r--boost/beast/websocket/detail/frame.hpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/boost/beast/websocket/detail/frame.hpp b/boost/beast/websocket/detail/frame.hpp
index 95080aeefc..c3bd1690a9 100644
--- a/boost/beast/websocket/detail/frame.hpp
+++ b/boost/beast/websocket/detail/frame.hpp
@@ -10,6 +10,7 @@
#ifndef BOOST_BEAST_WEBSOCKET_DETAIL_FRAME_HPP
#define BOOST_BEAST_WEBSOCKET_DETAIL_FRAME_HPP
+#include <boost/beast/websocket/error.hpp>
#include <boost/beast/websocket/rfc6455.hpp>
#include <boost/beast/websocket/detail/utf8_checker.hpp>
#include <boost/beast/core/buffers_suffix.hpp>
@@ -75,7 +76,7 @@ native_to_little_uint32(std::uint32_t v, void* buf)
p[3] = (v >> 24) & 0xff;
}
-/** WebSocket frame header opcodes. */
+// frame header opcodes
enum class opcode : std::uint8_t
{
cont = 0,
@@ -110,8 +111,7 @@ struct frame_header
};
// holds the largest possible frame header
-using fh_buffer =
- flat_static_buffer<14>;
+using fh_buffer = flat_static_buffer<14>;
// holds the largest possible control frame
using frame_buffer =
@@ -245,8 +245,10 @@ read_ping(ping_data& data, Buffers const& bs)
//
template<class Buffers>
void
-read_close(close_reason& cr,
- Buffers const& bs, close_code& code)
+read_close(
+ close_reason& cr,
+ Buffers const& bs,
+ error_code& ec)
{
using boost::asio::buffer;
using boost::asio::buffer_copy;
@@ -257,12 +259,13 @@ read_close(close_reason& cr,
if(n == 0)
{
cr = close_reason{};
- code = close_code::none;
+ ec.assign(0, ec.category());
return;
}
if(n == 1)
{
- code = close_code::protocol_error;
+ // invalid payload size == 1
+ ec = error::bad_close_size;
return;
}
buffers_suffix<Buffers> cb(bs);
@@ -274,7 +277,8 @@ read_close(close_reason& cr,
n -= 2;
if(! is_valid_close_code(cr.code))
{
- code = close_code::protocol_error;
+ // invalid close code
+ ec = error::bad_close_code;
return;
}
}
@@ -285,7 +289,8 @@ read_close(close_reason& cr,
if(! check_utf8(
cr.reason.data(), cr.reason.size()))
{
- code = close_code::protocol_error;
+ // not valid utf-8
+ ec = error::bad_close_payload;
return;
}
}
@@ -293,7 +298,7 @@ read_close(close_reason& cr,
{
cr.reason = "";
}
- code = close_code::none;
+ ec.assign(0, ec.category());
}
} // detail