1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef NET_WEBSOCKETS_WEBSOCKET_ERRORS_H_ 6#define NET_WEBSOCKETS_WEBSOCKET_ERRORS_H_ 7 8#include "net/base/net_errors.h" 9 10namespace net { 11 12// Reason codes used with close messages. NoStatusReceived, 13// AbnormalClosure and TlsHandshake are special in that they 14// should never be sent on the wire; they are only used within the 15// implementation. 16enum WebSocketError { 17 // Status codes in the range 0 to 999 are not used. 18 19 // The following are defined by RFC6455. 20 kWebSocketNormalClosure = 1000, 21 kWebSocketErrorGoingAway = 1001, 22 kWebSocketErrorProtocolError = 1002, 23 kWebSocketErrorUnsupportedData = 1003, 24 kWebSocketErrorNoStatusReceived = 1005, 25 kWebSocketErrorAbnormalClosure = 1006, 26 kWebSocketErrorInvalidFramePayloadData = 1007, 27 kWebSocketErrorPolicyViolation = 1008, 28 kWebSocketErrorMessageTooBig = 1009, 29 kWebSocketErrorMandatoryExtension = 1010, 30 kWebSocketErrorInternalServerError = 1011, 31 kWebSocketErrorTlsHandshake = 1015, 32 33 // The range 1000-2999 is reserved by RFC6455 for use by the WebSocket 34 // protocol and public extensions. 35 kWebSocketErrorProtocolReservedMax = 2999, 36 37 // The range 3000-3999 is reserved by RFC6455 for registered use by libraries, 38 // frameworks and applications. 39 kWebSocketErrorRegisteredReservedMin = 3000, 40 kWebSocketErrorRegisteredReservedMax = 3999, 41 42 // The range 4000-4999 is reserved by RFC6455 for private use by prior 43 // agreement of the endpoints. 44 kWebSocketErrorPrivateReservedMin = 4000, 45 kWebSocketErrorPrivateReservedMax = 4999, 46}; 47 48// Convert WebSocketError to net::Error defined in net/base/net_errors.h. 49NET_EXPORT_PRIVATE Error WebSocketErrorToNetError(WebSocketError error); 50 51} // namespace net 52 53#endif // NET_WEBSOCKETS_WEBSOCKET_ERRORS_H_ 54