diff options
Diffstat (limited to 'chromium/net/websockets/websocket_handshake_constants.h')
-rw-r--r-- | chromium/net/websockets/websocket_handshake_constants.h | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/chromium/net/websockets/websocket_handshake_constants.h b/chromium/net/websockets/websocket_handshake_constants.h new file mode 100644 index 00000000000..0cf67a8ac7f --- /dev/null +++ b/chromium/net/websockets/websocket_handshake_constants.h @@ -0,0 +1,84 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// A set of common constants that are needed for the WebSocket handshake. +// In general, you should prefer using these constants to literal strings, +// except in tests. +// +// These constants cannot be used in files that are compiled on iOS, because +// this file is not compiled on iOS. + +#ifndef NET_WEBSOCKETS_WEBSOCKET_HANDSHAKE_CONSTANTS_H_ +#define NET_WEBSOCKETS_WEBSOCKET_HANDSHAKE_CONSTANTS_H_ + +#include "base/basictypes.h" + +// This file plases constants inside the ::net::websockets namespace to avoid +// risk of collisions with other symbols in libnet. +namespace net { +namespace websockets { + +// "HTTP/1.1" +// RFC6455 only requires HTTP/1.1 "or better" but in practice an HTTP version +// other than 1.1 should not occur in a WebSocket handshake. +extern const char* const kHttpProtocolVersion; + +// The Sec-WebSockey-Key challenge is 16 random bytes, base64 encoded. +extern const size_t kRawChallengeLength; + +// "Sec-WebSocket-Protocol" +extern const char* const kSecWebSocketProtocol; + +// "Sec-WebSocket-Extensions" +extern const char* const kSecWebSocketExtensions; + +// "Sec-WebSocket-Key" +extern const char* const kSecWebSocketKey; + +// "Sec-WebSocket-Accept" +extern const char* const kSecWebSocketAccept; + +// "Sec-WebSocket-Version" +extern const char* const kSecWebSocketVersion; + +// "Upgrade" +extern const char* const kUpgrade; + +// "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" as defined in section 4.1 of +// RFC6455. +extern const char* const kWebSocketGuid; + +// Colon-prefixed lowercase headers for SPDY3. + +// ":sec-websocket-protocol" +extern const char* const kSecWebSocketProtocolSpdy3; + +// ":sec-websocket-extensions" +extern const char* const kSecWebSocketExtensionsSpdy3; + +// Some parts of the code require lowercase versions of the header names in +// order to do case-insensitive comparisons, or because of SPDY. +// "sec-websocket-protocol" +extern const char* const kSecWebSocketProtocolLowercase; + +// "sec-websocket-extensions" +extern const char* const kSecWebSocketExtensionsLowercase; + +// "sec-webSocket-key" +extern const char* const kSecWebSocketKeyLowercase; + +// "sec-websocket-version" +extern const char* const kSecWebSocketVersionLowercase; + +// "upgrade" +extern const char* const kUpgradeLowercase; + +// "websocket", as used in the "Upgrade:" header. This is always lowercase +// (except in obsolete versions of the protocol). +extern const char* const kWebSocketLowercase; + +} // namespace websockets +} // namespace net + +#endif // NET_WEBSOCKETS_WEBSOCKET_HANDSHAKE_CONSTANTS_H_ |