| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/websockets/websocket_handshake.h" | 5 #include "net/websockets/websocket_handshake.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/logging.h" |
| 10 #include "base/md5.h" | 11 #include "base/md5.h" |
| 11 #include "base/rand_util.h" | 12 #include "base/rand_util.h" |
| 12 #include "base/ref_counted.h" | 13 #include "base/ref_counted.h" |
| 14 #include "base/string_number_conversions.h" |
| 13 #include "base/string_util.h" | 15 #include "base/string_util.h" |
| 14 #include "net/http/http_response_headers.h" | 16 #include "net/http/http_response_headers.h" |
| 15 #include "net/http/http_util.h" | 17 #include "net/http/http_util.h" |
| 16 | 18 |
| 17 namespace net { | 19 namespace net { |
| 18 | 20 |
| 19 const int WebSocketHandshake::kWebSocketPort = 80; | 21 const int WebSocketHandshake::kWebSocketPort = 80; |
| 20 const int WebSocketHandshake::kSecureWebSocketPort = 443; | 22 const int WebSocketHandshake::kSecureWebSocketPort = 443; |
| 21 | 23 |
| 22 WebSocketHandshake::WebSocketHandshake( | 24 WebSocketHandshake::WebSocketHandshake( |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 // url_.host() is expected to be encoded in punnycode here. | 129 // url_.host() is expected to be encoded in punnycode here. |
| 128 std::string host = StringToLowerASCII(url_.host()); | 130 std::string host = StringToLowerASCII(url_.host()); |
| 129 if (url_.has_port()) { | 131 if (url_.has_port()) { |
| 130 bool secure = is_secure(); | 132 bool secure = is_secure(); |
| 131 int port = url_.EffectiveIntPort(); | 133 int port = url_.EffectiveIntPort(); |
| 132 if ((!secure && | 134 if ((!secure && |
| 133 port != kWebSocketPort && port != url_parse::PORT_UNSPECIFIED) || | 135 port != kWebSocketPort && port != url_parse::PORT_UNSPECIFIED) || |
| 134 (secure && | 136 (secure && |
| 135 port != kSecureWebSocketPort && port != url_parse::PORT_UNSPECIFIED)) { | 137 port != kSecureWebSocketPort && port != url_parse::PORT_UNSPECIFIED)) { |
| 136 host += ":"; | 138 host += ":"; |
| 137 host += IntToString(port); | 139 host += base::IntToString(port); |
| 138 } | 140 } |
| 139 } | 141 } |
| 140 return host; | 142 return host; |
| 141 } | 143 } |
| 142 | 144 |
| 143 std::string WebSocketHandshake::GetOriginFieldValue() const { | 145 std::string WebSocketHandshake::GetOriginFieldValue() const { |
| 144 // It's OK to lowercase the origin as the Origin header does not contain | 146 // It's OK to lowercase the origin as the Origin header does not contain |
| 145 // the path or query portions, as per | 147 // the path or query portions, as per |
| 146 // http://tools.ietf.org/html/draft-abarth-origin-00. | 148 // http://tools.ietf.org/html/draft-abarth-origin-00. |
| 147 // | 149 // |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 294 } | 296 } |
| 295 | 297 |
| 296 void WebSocketHandshake::Parameter::GenerateKey3() { | 298 void WebSocketHandshake::Parameter::GenerateKey3() { |
| 297 key_3_.clear(); | 299 key_3_.clear(); |
| 298 for (int i = 0; i < 8; i++) { | 300 for (int i = 0; i < 8; i++) { |
| 299 key_3_.append(1, rand_(0, 255)); | 301 key_3_.append(1, rand_(0, 255)); |
| 300 } | 302 } |
| 301 } | 303 } |
| 302 | 304 |
| 303 } // namespace net | 305 } // namespace net |
| OLD | NEW |