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