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 |