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 |