| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 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 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 | 91 |
| 92 } // namespace | 92 } // namespace |
| 93 | 93 |
| 94 namespace cricket { | 94 namespace cricket { |
| 95 const uint32_t DISABLE_ALL_PHASES = | 95 const uint32_t DISABLE_ALL_PHASES = |
| 96 PORTALLOCATOR_DISABLE_UDP | PORTALLOCATOR_DISABLE_TCP | | 96 PORTALLOCATOR_DISABLE_UDP | PORTALLOCATOR_DISABLE_TCP | |
| 97 PORTALLOCATOR_DISABLE_STUN | PORTALLOCATOR_DISABLE_RELAY; | 97 PORTALLOCATOR_DISABLE_STUN | PORTALLOCATOR_DISABLE_RELAY; |
| 98 | 98 |
| 99 // BasicPortAllocator | 99 // BasicPortAllocator |
| 100 BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager, | 100 BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager, |
| 101 rtc::PacketSocketFactory* socket_factory) | 101 rtc::PacketSocketFactory* socket_factory, |
| 102 : network_manager_(network_manager), socket_factory_(socket_factory) { | 102 webrtc::RtcEventLog* event_log) |
| 103 : network_manager_(network_manager), |
| 104 socket_factory_(socket_factory), |
| 105 event_log_(event_log) { |
| 103 RTC_DCHECK(network_manager_ != nullptr); | 106 RTC_DCHECK(network_manager_ != nullptr); |
| 104 RTC_DCHECK(socket_factory_ != nullptr); | 107 RTC_DCHECK(socket_factory_ != nullptr); |
| 105 Construct(); | 108 Construct(); |
| 106 } | 109 } |
| 107 | 110 |
| 108 BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager) | 111 BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager) |
| 109 : network_manager_(network_manager), socket_factory_(nullptr) { | 112 : network_manager_(network_manager), socket_factory_(nullptr), |
| 113 event_log_(nullptr) { |
| 110 RTC_DCHECK(network_manager_ != nullptr); | 114 RTC_DCHECK(network_manager_ != nullptr); |
| 111 Construct(); | 115 Construct(); |
| 112 } | 116 } |
| 113 | 117 |
| 114 BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager, | 118 BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager, |
| 115 rtc::PacketSocketFactory* socket_factory, | 119 rtc::PacketSocketFactory* socket_factory, |
| 116 const ServerAddresses& stun_servers) | 120 const ServerAddresses& stun_servers) |
| 117 : network_manager_(network_manager), socket_factory_(socket_factory) { | 121 : network_manager_(network_manager), socket_factory_(socket_factory), |
| 122 event_log_(nullptr) { |
| 118 RTC_DCHECK(socket_factory_ != NULL); | 123 RTC_DCHECK(socket_factory_ != NULL); |
| 119 SetConfiguration(stun_servers, std::vector<RelayServerConfig>(), 0, false); | 124 SetConfiguration(stun_servers, std::vector<RelayServerConfig>(), 0, false); |
| 120 Construct(); | 125 Construct(); |
| 121 } | 126 } |
| 122 | 127 |
| 123 BasicPortAllocator::BasicPortAllocator( | 128 BasicPortAllocator::BasicPortAllocator( |
| 124 rtc::NetworkManager* network_manager, | 129 rtc::NetworkManager* network_manager, |
| 125 const ServerAddresses& stun_servers, | 130 const ServerAddresses& stun_servers, |
| 126 const rtc::SocketAddress& relay_address_udp, | 131 const rtc::SocketAddress& relay_address_udp, |
| 127 const rtc::SocketAddress& relay_address_tcp, | 132 const rtc::SocketAddress& relay_address_tcp, |
| 128 const rtc::SocketAddress& relay_address_ssl) | 133 const rtc::SocketAddress& relay_address_ssl) |
| 129 : network_manager_(network_manager), socket_factory_(NULL) { | 134 : network_manager_(network_manager), socket_factory_(NULL), |
| 135 event_log_(nullptr) { |
| 130 std::vector<RelayServerConfig> turn_servers; | 136 std::vector<RelayServerConfig> turn_servers; |
| 131 RelayServerConfig config(RELAY_GTURN); | 137 RelayServerConfig config(RELAY_GTURN); |
| 132 if (!relay_address_udp.IsNil()) { | 138 if (!relay_address_udp.IsNil()) { |
| 133 config.ports.push_back(ProtocolAddress(relay_address_udp, PROTO_UDP)); | 139 config.ports.push_back(ProtocolAddress(relay_address_udp, PROTO_UDP)); |
| 134 } | 140 } |
| 135 if (!relay_address_tcp.IsNil()) { | 141 if (!relay_address_tcp.IsNil()) { |
| 136 config.ports.push_back(ProtocolAddress(relay_address_tcp, PROTO_TCP)); | 142 config.ports.push_back(ProtocolAddress(relay_address_tcp, PROTO_TCP)); |
| 137 } | 143 } |
| 138 if (!relay_address_ssl.IsNil()) { | 144 if (!relay_address_ssl.IsNil()) { |
| 139 config.ports.push_back(ProtocolAddress(relay_address_ssl, PROTO_SSLTCP)); | 145 config.ports.push_back(ProtocolAddress(relay_address_ssl, PROTO_SSLTCP)); |
| (...skipping 1282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1422 continue; | 1428 continue; |
| 1423 } | 1429 } |
| 1424 | 1430 |
| 1425 | 1431 |
| 1426 // Shared socket mode must be enabled only for UDP based ports. Hence | 1432 // Shared socket mode must be enabled only for UDP based ports. Hence |
| 1427 // don't pass shared socket for ports which will create TCP sockets. | 1433 // don't pass shared socket for ports which will create TCP sockets. |
| 1428 // TODO(mallinath) - Enable shared socket mode for TURN ports. Disabled | 1434 // TODO(mallinath) - Enable shared socket mode for TURN ports. Disabled |
| 1429 // due to webrtc bug https://code.google.com/p/webrtc/issues/detail?id=3537 | 1435 // due to webrtc bug https://code.google.com/p/webrtc/issues/detail?id=3537 |
| 1430 if (IsFlagSet(PORTALLOCATOR_ENABLE_SHARED_SOCKET) && | 1436 if (IsFlagSet(PORTALLOCATOR_ENABLE_SHARED_SOCKET) && |
| 1431 relay_port->proto == PROTO_UDP && udp_socket_) { | 1437 relay_port->proto == PROTO_UDP && udp_socket_) { |
| 1432 port = TurnPort::Create(session_->network_thread(), | 1438 port = TurnPort::Create( |
| 1433 session_->socket_factory(), | 1439 session_->network_thread(), session_->socket_factory(), network_, |
| 1434 network_, udp_socket_.get(), | 1440 udp_socket_.get(), session_->username(), session_->password(), |
| 1435 session_->username(), session_->password(), | 1441 *relay_port, config.credentials, config.priority, |
| 1436 *relay_port, config.credentials, config.priority, | 1442 session_->allocator()->origin(), session_->event_log()); |
| 1437 session_->allocator()->origin()); | |
| 1438 turn_ports_.push_back(port); | 1443 turn_ports_.push_back(port); |
| 1439 // Listen to the port destroyed signal, to allow AllocationSequence to | 1444 // Listen to the port destroyed signal, to allow AllocationSequence to |
| 1440 // remove entrt from it's map. | 1445 // remove entrt from it's map. |
| 1441 port->SignalDestroyed.connect(this, &AllocationSequence::OnPortDestroyed); | 1446 port->SignalDestroyed.connect(this, &AllocationSequence::OnPortDestroyed); |
| 1442 } else { | 1447 } else { |
| 1443 port = TurnPort::Create( | 1448 port = TurnPort::Create( |
| 1444 session_->network_thread(), session_->socket_factory(), network_, | 1449 session_->network_thread(), session_->socket_factory(), network_, |
| 1445 session_->allocator()->min_port(), session_->allocator()->max_port(), | 1450 session_->allocator()->min_port(), session_->allocator()->max_port(), |
| 1446 session_->username(), session_->password(), *relay_port, | 1451 session_->username(), session_->password(), *relay_port, |
| 1447 config.credentials, config.priority, session_->allocator()->origin()); | 1452 config.credentials, config.priority, session_->allocator()->origin(), |
| 1453 session_->event_log()); |
| 1448 } | 1454 } |
| 1449 RTC_DCHECK(port != NULL); | 1455 RTC_DCHECK(port != NULL); |
| 1450 port->SetTlsCertPolicy(config.tls_cert_policy); | 1456 port->SetTlsCertPolicy(config.tls_cert_policy); |
| 1451 session_->AddAllocatedPort(port, this, true); | 1457 session_->AddAllocatedPort(port, this, true); |
| 1452 } | 1458 } |
| 1453 } | 1459 } |
| 1454 | 1460 |
| 1455 void AllocationSequence::OnReadPacket( | 1461 void AllocationSequence::OnReadPacket( |
| 1456 rtc::AsyncPacketSocket* socket, const char* data, size_t size, | 1462 rtc::AsyncPacketSocket* socket, const char* data, size_t size, |
| 1457 const rtc::SocketAddress& remote_addr, | 1463 const rtc::SocketAddress& remote_addr, |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1571 ServerAddresses servers; | 1577 ServerAddresses servers; |
| 1572 for (size_t i = 0; i < relays.size(); ++i) { | 1578 for (size_t i = 0; i < relays.size(); ++i) { |
| 1573 if (relays[i].type == turn_type && SupportsProtocol(relays[i], type)) { | 1579 if (relays[i].type == turn_type && SupportsProtocol(relays[i], type)) { |
| 1574 servers.insert(relays[i].ports.front().address); | 1580 servers.insert(relays[i].ports.front().address); |
| 1575 } | 1581 } |
| 1576 } | 1582 } |
| 1577 return servers; | 1583 return servers; |
| 1578 } | 1584 } |
| 1579 | 1585 |
| 1580 } // namespace cricket | 1586 } // namespace cricket |
| OLD | NEW |