]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/beast/websocket/error.hpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / boost / beast / websocket / error.hpp
CommitLineData
b32b8144 1//
92f5a8d4 2// Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
b32b8144
FG
3//
4// Distributed under the Boost Software License, Version 1.0. (See accompanying
5// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6//
7// Official repository: https://github.com/boostorg/beast
8//
9
10#ifndef BOOST_BEAST_WEBSOCKET_ERROR_HPP
11#define BOOST_BEAST_WEBSOCKET_ERROR_HPP
12
13#include <boost/beast/core/detail/config.hpp>
14#include <boost/beast/core/error.hpp>
15
16namespace boost {
17namespace beast {
18namespace websocket {
19
20/// Error codes returned from @ref beast::websocket::stream operations.
21enum class error
22{
11fdf7f2
TL
23 /** The WebSocket stream was gracefully closed at both endpoints
24 */
b32b8144
FG
25 closed = 1,
26
11fdf7f2
TL
27/* The error codes error::failed and error::handshake_failed
28 are no longer in use. Please change your code to compare values
29 of type error_code against condition::handshake_failed
30 and condition::protocol_violation instead.
31
32 Apologies for the inconvenience.
b32b8144 33
11fdf7f2
TL
34 - VFALCO
35*/
36#if ! BOOST_BEAST_DOXYGEN
37 unused1 = 2, // failed
38 unused2 = 3, // handshake_failed
39#endif
b32b8144 40
11fdf7f2
TL
41 /** The WebSocket operation caused a dynamic buffer overflow
42 */
b32b8144
FG
43 buffer_overflow,
44
11fdf7f2
TL
45 /** The WebSocket stream produced an incomplete deflate block
46 */
47 partial_deflate_block,
48
49 /** The WebSocket message exceeded the locally configured limit
50 */
51 message_too_big,
52
53 //
54 // Handshake failure errors
55 //
56 // These will compare equal to condition::handshake_failed
57 //
58
59 /** The WebSocket handshake was not HTTP/1.1
60
61 Error codes with this value will compare equal to @ref condition::handshake_failed
62 */
63 bad_http_version,
64
65 /** The WebSocket handshake method was not GET
66
67 Error codes with this value will compare equal to @ref condition::handshake_failed
68 */
69 bad_method,
70
71 /** The WebSocket handshake Host field is missing
72
73 Error codes with this value will compare equal to @ref condition::handshake_failed
74 */
75 no_host,
76
77 /** The WebSocket handshake Connection field is missing
78
79 Error codes with this value will compare equal to @ref condition::handshake_failed
80 */
81 no_connection,
82
83 /** The WebSocket handshake Connection field is missing the upgrade token
84
85 Error codes with this value will compare equal to @ref condition::handshake_failed
86 */
87 no_connection_upgrade,
88
89 /** The WebSocket handshake Upgrade field is missing
90
91 Error codes with this value will compare equal to @ref condition::handshake_failed
92 */
93 no_upgrade,
94
95 /** The WebSocket handshake Upgrade field is missing the websocket token
96
97 Error codes with this value will compare equal to @ref condition::handshake_failed
98 */
99 no_upgrade_websocket,
100
101 /** The WebSocket handshake Sec-WebSocket-Key field is missing
102
103 Error codes with this value will compare equal to @ref condition::handshake_failed
104 */
105 no_sec_key,
106
107 /** The WebSocket handshake Sec-WebSocket-Key field is invalid
108
109 Error codes with this value will compare equal to @ref condition::handshake_failed
110 */
111 bad_sec_key,
112
113 /** The WebSocket handshake Sec-WebSocket-Version field is missing
114
115 Error codes with this value will compare equal to @ref condition::handshake_failed
116 */
117 no_sec_version,
118
119 /** The WebSocket handshake Sec-WebSocket-Version field is invalid
120
121 Error codes with this value will compare equal to @ref condition::handshake_failed
122 */
123 bad_sec_version,
124
125 /** The WebSocket handshake Sec-WebSocket-Accept field is missing
126
127 Error codes with this value will compare equal to @ref condition::handshake_failed
128 */
129 no_sec_accept,
130
131 /** The WebSocket handshake Sec-WebSocket-Accept field is invalid
132
133 Error codes with this value will compare equal to @ref condition::handshake_failed
134 */
135 bad_sec_accept,
136
137 /** The WebSocket handshake was declined by the remote peer
138
139 Error codes with this value will compare equal to @ref condition::handshake_failed
140 */
141 upgrade_declined,
142
143 //
144 // Protocol errors
145 //
146 // These will compare equal to condition::protocol_violation
147 //
148
149 /** The WebSocket frame contained an illegal opcode
150
151 Error codes with this value will compare equal to @ref condition::protocol_violation
152 */
153 bad_opcode,
154
155 /** The WebSocket data frame was unexpected
156
157 Error codes with this value will compare equal to @ref condition::protocol_violation
158 */
159 bad_data_frame,
160
161 /** The WebSocket continuation frame was unexpected
162
163 Error codes with this value will compare equal to @ref condition::protocol_violation
164 */
165 bad_continuation,
166
167 /** The WebSocket frame contained illegal reserved bits
168
169 Error codes with this value will compare equal to @ref condition::protocol_violation
170 */
171 bad_reserved_bits,
172
173 /** The WebSocket control frame was fragmented
174
175 Error codes with this value will compare equal to @ref condition::protocol_violation
176 */
177 bad_control_fragment,
178
179 /** The WebSocket control frame size was invalid
180
181 Error codes with this value will compare equal to @ref condition::protocol_violation
182 */
183 bad_control_size,
184
185 /** The WebSocket frame was unmasked
186
187 Error codes with this value will compare equal to @ref condition::protocol_violation
188 */
189 bad_unmasked_frame,
190
191 /** The WebSocket frame was masked
192
193 Error codes with this value will compare equal to @ref condition::protocol_violation
194 */
195 bad_masked_frame,
196
197 /** The WebSocket frame size was not canonical
198
199 Error codes with this value will compare equal to @ref condition::protocol_violation
200 */
201 bad_size,
202
203 /** The WebSocket frame payload was not valid utf8
204
205 Error codes with this value will compare equal to @ref condition::protocol_violation
206 */
207 bad_frame_payload,
208
209 /** The WebSocket close frame reason code was invalid
210
211 Error codes with this value will compare equal to @ref condition::protocol_violation
212 */
213 bad_close_code,
214
215 /** The WebSocket close frame payload size was invalid
216
217 Error codes with this value will compare equal to @ref condition::protocol_violation
218 */
219 bad_close_size,
220
221 /** The WebSocket close frame payload was not valid utf8
222
223 Error codes with this value will compare equal to @ref condition::protocol_violation
224 */
225 bad_close_payload
b32b8144
FG
226};
227
11fdf7f2
TL
228/// Error conditions corresponding to sets of error codes.
229enum class condition
230{
231 /** The WebSocket handshake failed
232
233 This condition indicates that the WebSocket handshake failed. If
234 the corresponding HTTP response indicates the keep-alive behavior,
235 then the handshake may be reattempted.
236 */
237 handshake_failed = 1,
238
239 /** A WebSocket protocol violation occurred
240
241 This condition indicates that the remote peer on the WebSocket
242 connection sent data which violated the protocol.
243 */
244 protocol_violation
245 };
246
b32b8144
FG
247} // websocket
248} // beast
249} // boost
250
92f5a8d4
TL
251#include <boost/beast/websocket/impl/error.hpp>
252#ifdef BOOST_BEAST_HEADER_ONLY
b32b8144 253#include <boost/beast/websocket/impl/error.ipp>
92f5a8d4 254#endif
b32b8144
FG
255
256#endif