| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2012 The WebRTC Project Authors. All rights reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 369 server_address_.proto == PROTO_TLS) { | 369 server_address_.proto == PROTO_TLS) { |
| 370 socket_->SignalConnect.connect(this, &TurnPort::OnSocketConnect); | 370 socket_->SignalConnect.connect(this, &TurnPort::OnSocketConnect); |
| 371 socket_->SignalClose.connect(this, &TurnPort::OnSocketClose); | 371 socket_->SignalClose.connect(this, &TurnPort::OnSocketClose); |
| 372 } else { | 372 } else { |
| 373 state_ = STATE_CONNECTED; | 373 state_ = STATE_CONNECTED; |
| 374 } | 374 } |
| 375 return true; | 375 return true; |
| 376 } | 376 } |
| 377 | 377 |
| 378 void TurnPort::OnSocketConnect(rtc::AsyncPacketSocket* socket) { | 378 void TurnPort::OnSocketConnect(rtc::AsyncPacketSocket* socket) { |
| 379 RTC_DCHECK(server_address_.proto == PROTO_TCP); | 379 // This slot should only be invoked if we're using a connection-oriented |
| 380 // protocol. |
| 381 RTC_DCHECK(server_address_.proto == PROTO_TCP || |
| 382 server_address_.proto == PROTO_TLS); |
| 383 |
| 380 // Do not use this port if the socket bound to a different address than | 384 // Do not use this port if the socket bound to a different address than |
| 381 // the one we asked for. This is seen in Chrome, where TCP sockets cannot be | 385 // the one we asked for. This is seen in Chrome, where TCP sockets cannot be |
| 382 // given a binding address, and the platform is expected to pick the | 386 // given a binding address, and the platform is expected to pick the |
| 383 // correct local address. | 387 // correct local address. |
| 384 | 388 |
| 385 // However, there are two situations in which we allow the bound address to | 389 // However, there are two situations in which we allow the bound address to |
| 386 // differ from the requested address: 1. The bound address is the loopback | 390 // differ from the requested address: 1. The bound address is the loopback |
| 387 // address. This happens when a proxy forces TCP to bind to only the | 391 // address. This happens when a proxy forces TCP to bind to only the |
| 388 // localhost address (see issue 3927). 2. The bound address is the "any | 392 // localhost address (see issue 3927). 2. The bound address is the "any |
| 389 // address". This happens when multiple_routes is disabled (see issue 4780). | 393 // address". This happens when multiple_routes is disabled (see issue 4780). |
| (...skipping 1188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1578 } else { | 1582 } else { |
| 1579 state_ = STATE_UNBOUND; | 1583 state_ = STATE_UNBOUND; |
| 1580 port_->FailAndPruneConnection(ext_addr_); | 1584 port_->FailAndPruneConnection(ext_addr_); |
| 1581 } | 1585 } |
| 1582 } | 1586 } |
| 1583 void TurnEntry::OnChannelBindTimeout() { | 1587 void TurnEntry::OnChannelBindTimeout() { |
| 1584 state_ = STATE_UNBOUND; | 1588 state_ = STATE_UNBOUND; |
| 1585 port_->FailAndPruneConnection(ext_addr_); | 1589 port_->FailAndPruneConnection(ext_addr_); |
| 1586 } | 1590 } |
| 1587 } // namespace cricket | 1591 } // namespace cricket |
| OLD | NEW |