]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/beast/websocket/error.hpp
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / boost / boost / beast / websocket / error.hpp
index 139a20879d792c3081f723004c1453be00b235a6..d4e51971006a00ea1582de10361c313112e2dbdf 100644 (file)
@@ -10,6 +10,7 @@
 #ifndef BOOST_BEAST_WEBSOCKET_ERROR_HPP
 #define BOOST_BEAST_WEBSOCKET_ERROR_HPP
 
+#include <boost/beast/websocket/detail/error.hpp>
 #include <boost/beast/core/detail/config.hpp>
 #include <boost/beast/core/error.hpp>
 
@@ -20,22 +21,230 @@ namespace websocket {
 /// Error codes returned from @ref beast::websocket::stream operations.
 enum class error
 {
-    /// Both sides performed a WebSocket close
+    /** The WebSocket stream was gracefully closed at both endpoints
+    */
     closed = 1,
 
-    /// WebSocket connection failed, protocol violation
-    failed,
+/*  The error codes error::failed and error::handshake_failed
+    are no longer in use. Please change your code to compare values
+    of type error_code against condition::handshake_failed
+    and condition::protocol_violation instead.
+            
+    Apologies for the inconvenience.
 
-    /// Upgrade handshake failed
-    handshake_failed,
+    - VFALCO
+*/
+#if ! BOOST_BEAST_DOXYGEN
+    unused1 = 2, // failed
+    unused2 = 3, // handshake_failed
+#endif
 
-    /// buffer overflow
+    /** The WebSocket operation caused a dynamic buffer overflow
+    */
     buffer_overflow,
 
-    /// partial deflate block
-    partial_deflate_block
+    /** The WebSocket stream produced an incomplete deflate block
+    */
+    partial_deflate_block,
+
+    /** The WebSocket message  exceeded the locally configured limit
+    */
+    message_too_big,
+
+    //
+    // Handshake failure errors
+    //
+    // These will compare equal to condition::handshake_failed
+    //
+
+    /** The WebSocket handshake was not HTTP/1.1
+
+        Error codes with this value will compare equal to @ref condition::handshake_failed
+    */
+    bad_http_version,
+
+    /** The WebSocket handshake method was not GET
+
+        Error codes with this value will compare equal to @ref condition::handshake_failed
+    */
+    bad_method,
+
+    /** The WebSocket handshake Host field is missing
+
+        Error codes with this value will compare equal to @ref condition::handshake_failed
+    */
+    no_host,
+
+    /** The WebSocket handshake Connection field is missing
+
+        Error codes with this value will compare equal to @ref condition::handshake_failed
+    */
+    no_connection,
+
+    /** The WebSocket handshake Connection field is missing the upgrade token
+
+        Error codes with this value will compare equal to @ref condition::handshake_failed
+    */
+    no_connection_upgrade,
+
+    /** The WebSocket handshake Upgrade field is missing
+
+        Error codes with this value will compare equal to @ref condition::handshake_failed
+    */
+    no_upgrade,
+
+    /** The WebSocket handshake Upgrade field is missing the websocket token
+
+        Error codes with this value will compare equal to @ref condition::handshake_failed
+    */
+    no_upgrade_websocket,
+
+    /** The WebSocket handshake Sec-WebSocket-Key field is missing
+
+        Error codes with this value will compare equal to @ref condition::handshake_failed
+    */
+    no_sec_key,
+
+    /** The WebSocket handshake Sec-WebSocket-Key field is invalid
+
+        Error codes with this value will compare equal to @ref condition::handshake_failed
+    */
+    bad_sec_key,
+
+    /** The WebSocket handshake Sec-WebSocket-Version field is missing
+
+        Error codes with this value will compare equal to @ref condition::handshake_failed
+    */
+    no_sec_version,
+
+    /** The WebSocket handshake Sec-WebSocket-Version field is invalid
+
+        Error codes with this value will compare equal to @ref condition::handshake_failed
+    */
+    bad_sec_version,
+
+    /** The WebSocket handshake Sec-WebSocket-Accept field is missing
+
+        Error codes with this value will compare equal to @ref condition::handshake_failed
+    */
+    no_sec_accept,
+
+    /** The WebSocket handshake Sec-WebSocket-Accept field is invalid
+
+        Error codes with this value will compare equal to @ref condition::handshake_failed
+    */
+    bad_sec_accept,
+
+    /** The WebSocket handshake was declined by the remote peer
+
+        Error codes with this value will compare equal to @ref condition::handshake_failed
+    */
+    upgrade_declined,
+
+    //
+    // Protocol errors
+    //
+    // These will compare equal to condition::protocol_violation
+    //
+
+    /** The WebSocket frame contained an illegal opcode
+
+        Error codes with this value will compare equal to @ref condition::protocol_violation
+    */
+    bad_opcode,
+
+    /** The WebSocket data frame was unexpected
+
+        Error codes with this value will compare equal to @ref condition::protocol_violation
+    */
+    bad_data_frame,
+
+    /** The WebSocket continuation frame was unexpected
+
+        Error codes with this value will compare equal to @ref condition::protocol_violation
+    */
+    bad_continuation,
+
+    /** The WebSocket frame contained illegal reserved bits
+
+        Error codes with this value will compare equal to @ref condition::protocol_violation
+    */
+    bad_reserved_bits,
+
+    /** The WebSocket control frame was fragmented
+
+        Error codes with this value will compare equal to @ref condition::protocol_violation
+    */
+    bad_control_fragment,
+
+    /** The WebSocket control frame size was invalid
+
+        Error codes with this value will compare equal to @ref condition::protocol_violation
+    */
+    bad_control_size,
+
+    /** The WebSocket frame was unmasked
+
+        Error codes with this value will compare equal to @ref condition::protocol_violation
+    */
+    bad_unmasked_frame,
+
+    /** The WebSocket frame was masked
+
+        Error codes with this value will compare equal to @ref condition::protocol_violation
+    */
+    bad_masked_frame,
+
+    /** The WebSocket frame size was not canonical
+
+        Error codes with this value will compare equal to @ref condition::protocol_violation
+    */
+    bad_size,
+
+    /** The WebSocket frame payload was not valid utf8
+
+        Error codes with this value will compare equal to @ref condition::protocol_violation
+    */
+    bad_frame_payload,
+
+    /** The WebSocket close frame reason code was invalid
+
+        Error codes with this value will compare equal to @ref condition::protocol_violation
+    */
+    bad_close_code,
+
+    /** The WebSocket close frame payload size was invalid
+
+        Error codes with this value will compare equal to @ref condition::protocol_violation
+    */
+    bad_close_size,
+
+    /** The WebSocket close frame payload was not valid utf8
+
+        Error codes with this value will compare equal to @ref condition::protocol_violation
+    */
+    bad_close_payload
 };
 
+/// Error conditions corresponding to sets of error codes.
+enum class condition
+{
+    /** The WebSocket handshake failed
+
+        This condition indicates that the WebSocket handshake failed. If
+        the corresponding HTTP response indicates the keep-alive behavior,
+        then the handshake may be reattempted.
+    */
+    handshake_failed = 1,
+
+    /** A WebSocket protocol violation occurred
+
+        This condition indicates that the remote peer on the WebSocket
+        connection sent data which violated the protocol.
+    */
+    protocol_violation
+ };
+
 } // websocket
 } // beast
 } // boost