| Index: net/websockets/websocket_handshake_draft75.h
|
| diff --git a/net/websockets/websocket_handshake_draft75.h b/net/websockets/websocket_handshake_draft75.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6cc0506aa7a7ab26ddb56b81b42851cdf3c655b7
|
| --- /dev/null
|
| +++ b/net/websockets/websocket_handshake_draft75.h
|
| @@ -0,0 +1,63 @@
|
| +// Copyright (c) 2010 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.
|
| +
|
| +#ifndef NET_WEBSOCKETS_WEBSOCKET_HANDSHAKE_DRAFT75_H_
|
| +#define NET_WEBSOCKETS_WEBSOCKET_HANDSHAKE_DRAFT75_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/basictypes.h"
|
| +#include "googleurl/src/gurl.h"
|
| +#include "net/websockets/websocket_handshake.h"
|
| +
|
| +namespace net {
|
| +
|
| +class HttpResponseHeaders;
|
| +
|
| +class WebSocketHandshakeDraft75 : public WebSocketHandshake {
|
| + public:
|
| + static const int kWebSocketPort;
|
| + static const int kSecureWebSocketPort;
|
| + static const char kServerHandshakeHeader[];
|
| + static const size_t kServerHandshakeHeaderLength;
|
| + static const char kUpgradeHeader[];
|
| + static const size_t kUpgradeHeaderLength;
|
| + static const char kConnectionHeader[];
|
| + static const size_t kConnectionHeaderLength;
|
| +
|
| + WebSocketHandshakeDraft75(const GURL& url,
|
| + const std::string& origin,
|
| + const std::string& location,
|
| + const std::string& protocol);
|
| + virtual ~WebSocketHandshakeDraft75();
|
| +
|
| + // Creates the client handshake message from |this|.
|
| + virtual std::string CreateClientHandshakeMessage();
|
| +
|
| + // Reads server handshake message in |len| of |data|, updates |mode_| and
|
| + // returns number of bytes of the server handshake message.
|
| + // Once connection is established, |mode_| will be MODE_CONNECTED.
|
| + // If connection establishment failed, |mode_| will be MODE_FAILED.
|
| + // Returns negative if the server handshake message is incomplete.
|
| + virtual int ReadServerHandshake(const char* data, size_t len);
|
| +
|
| + private:
|
| + // Processes server handshake message, parsed as |headers|, and updates
|
| + // |ws_origin_|, |ws_location_| and |ws_protocol_|.
|
| + // Returns true if it's ok.
|
| + // Returns false otherwise (e.g. duplicate WebSocket-Origin: header, etc.)
|
| + virtual bool ProcessHeaders(const HttpResponseHeaders& headers);
|
| +
|
| + // Checks |ws_origin_|, |ws_location_| and |ws_protocol_| are valid
|
| + // against |origin_|, |location_| and |protocol_|.
|
| + // Returns true if it's ok.
|
| + // Returns false otherwise (e.g. origin mismatch, etc.)
|
| + virtual bool CheckResponseHeaders() const;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(WebSocketHandshakeDraft75);
|
| +};
|
| +
|
| +} // namespace net
|
| +
|
| +#endif // NET_WEBSOCKETS_WEBSOCKET_HANDSHAKE_DRAFT75_H_
|
|
|