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 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 TurnPort::TurnPort(rtc::Thread* thread, | 214 TurnPort::TurnPort(rtc::Thread* thread, |
215 rtc::PacketSocketFactory* factory, | 215 rtc::PacketSocketFactory* factory, |
216 rtc::Network* network, | 216 rtc::Network* network, |
217 uint16_t min_port, | 217 uint16_t min_port, |
218 uint16_t max_port, | 218 uint16_t max_port, |
219 const std::string& username, | 219 const std::string& username, |
220 const std::string& password, | 220 const std::string& password, |
221 const ProtocolAddress& server_address, | 221 const ProtocolAddress& server_address, |
222 const RelayCredentials& credentials, | 222 const RelayCredentials& credentials, |
223 int server_priority, | 223 int server_priority, |
224 const std::string& origin) | 224 const std::string& origin, |
| 225 const std::vector<std::string>& tls_alpn_protocols) |
225 : Port(thread, | 226 : Port(thread, |
226 RELAY_PORT_TYPE, | 227 RELAY_PORT_TYPE, |
227 factory, | 228 factory, |
228 network, | 229 network, |
229 min_port, | 230 min_port, |
230 max_port, | 231 max_port, |
231 username, | 232 username, |
232 password), | 233 password), |
233 server_address_(server_address), | 234 server_address_(server_address), |
| 235 tls_alpn_protocols_(tls_alpn_protocols), |
234 credentials_(credentials), | 236 credentials_(credentials), |
235 socket_(NULL), | 237 socket_(NULL), |
236 resolver_(NULL), | 238 resolver_(NULL), |
237 error_(0), | 239 error_(0), |
238 request_manager_(thread), | 240 request_manager_(thread), |
239 next_channel_number_(TURN_CHANNEL_NUMBER_START), | 241 next_channel_number_(TURN_CHANNEL_NUMBER_START), |
240 state_(STATE_CONNECTING), | 242 state_(STATE_CONNECTING), |
241 server_priority_(server_priority), | 243 server_priority_(server_priority), |
242 allocate_mismatch_retries_(0) { | 244 allocate_mismatch_retries_(0) { |
243 request_manager_.SignalSendPacket.connect(this, &TurnPort::OnSendStunPacket); | 245 request_manager_.SignalSendPacket.connect(this, &TurnPort::OnSendStunPacket); |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 // Apply server address TLS and insecure bits to options. | 331 // Apply server address TLS and insecure bits to options. |
330 if (server_address_.proto == PROTO_TLS) { | 332 if (server_address_.proto == PROTO_TLS) { |
331 if (tls_cert_policy_ == | 333 if (tls_cert_policy_ == |
332 TlsCertPolicy::TLS_CERT_POLICY_INSECURE_NO_CHECK) { | 334 TlsCertPolicy::TLS_CERT_POLICY_INSECURE_NO_CHECK) { |
333 opts |= rtc::PacketSocketFactory::OPT_TLS_INSECURE; | 335 opts |= rtc::PacketSocketFactory::OPT_TLS_INSECURE; |
334 } else { | 336 } else { |
335 opts |= rtc::PacketSocketFactory::OPT_TLS; | 337 opts |= rtc::PacketSocketFactory::OPT_TLS; |
336 } | 338 } |
337 } | 339 } |
338 | 340 |
| 341 rtc::PacketSocketTcpOptions tcp_options; |
| 342 tcp_options.opts = opts; |
| 343 tcp_options.tls_alpn_protocols = tls_alpn_protocols_; |
| 344 // rtc::PacketSocketTcpOptions tcp_options = { |
| 345 // .opts = opts, |
| 346 // .tls_alpn_protocols = tls_alpn_protocols_ |
| 347 // }; |
339 socket_ = socket_factory()->CreateClientTcpSocket( | 348 socket_ = socket_factory()->CreateClientTcpSocket( |
340 rtc::SocketAddress(Network()->GetBestIP(), 0), server_address_.address, | 349 rtc::SocketAddress(Network()->GetBestIP(), 0), server_address_.address, |
341 proxy(), user_agent(), opts); | 350 proxy(), user_agent(), tcp_options); |
342 } | 351 } |
343 | 352 |
344 if (!socket_) { | 353 if (!socket_) { |
345 error_ = SOCKET_ERROR; | 354 error_ = SOCKET_ERROR; |
346 return false; | 355 return false; |
347 } | 356 } |
348 | 357 |
349 // Apply options if any. | 358 // Apply options if any. |
350 for (SocketOptionsMap::iterator iter = socket_options_.begin(); | 359 for (SocketOptionsMap::iterator iter = socket_options_.begin(); |
351 iter != socket_options_.end(); ++iter) { | 360 iter != socket_options_.end(); ++iter) { |
(...skipping 1241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1593 } else { | 1602 } else { |
1594 state_ = STATE_UNBOUND; | 1603 state_ = STATE_UNBOUND; |
1595 port_->FailAndPruneConnection(ext_addr_); | 1604 port_->FailAndPruneConnection(ext_addr_); |
1596 } | 1605 } |
1597 } | 1606 } |
1598 void TurnEntry::OnChannelBindTimeout() { | 1607 void TurnEntry::OnChannelBindTimeout() { |
1599 state_ = STATE_UNBOUND; | 1608 state_ = STATE_UNBOUND; |
1600 port_->FailAndPruneConnection(ext_addr_); | 1609 port_->FailAndPruneConnection(ext_addr_); |
1601 } | 1610 } |
1602 } // namespace cricket | 1611 } // namespace cricket |
OLD | NEW |