| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2016 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2016 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 425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 436 : net::Perspective::IS_SERVER; | 436 : net::Perspective::IS_SERVER; |
| 437 bool owns_writer = false; | 437 bool owns_writer = false; |
| 438 rtc::scoped_ptr<net::QuicConnection> connection(new net::QuicConnection( | 438 rtc::scoped_ptr<net::QuicConnection> connection(new net::QuicConnection( |
| 439 kConnectionId, kConnectionIpEndpoint, &helper_, this, owns_writer, | 439 kConnectionId, kConnectionIpEndpoint, &helper_, this, owns_writer, |
| 440 perspective, net::QuicSupportedVersions())); | 440 perspective, net::QuicSupportedVersions())); |
| 441 quic_.reset(new QuicSession(std::move(connection), config_)); | 441 quic_.reset(new QuicSession(std::move(connection), config_)); |
| 442 quic_->SignalHandshakeComplete.connect( | 442 quic_->SignalHandshakeComplete.connect( |
| 443 this, &QuicTransportChannel::OnHandshakeComplete); | 443 this, &QuicTransportChannel::OnHandshakeComplete); |
| 444 quic_->SignalConnectionClosed.connect( | 444 quic_->SignalConnectionClosed.connect( |
| 445 this, &QuicTransportChannel::OnConnectionClosed); | 445 this, &QuicTransportChannel::OnConnectionClosed); |
| 446 quic_->SignalIncomingStream.connect(this, |
| 447 &QuicTransportChannel::OnIncomingStream); |
| 446 return true; | 448 return true; |
| 447 } | 449 } |
| 448 | 450 |
| 449 bool QuicTransportChannel::StartQuicHandshake() { | 451 bool QuicTransportChannel::StartQuicHandshake() { |
| 450 if (*ssl_role_ == rtc::SSL_CLIENT) { | 452 if (*ssl_role_ == rtc::SSL_CLIENT) { |
| 451 // Unique identifier for remote peer. | 453 // Unique identifier for remote peer. |
| 452 net::QuicServerId server_id(remote_fingerprint_->value, kQuicServerPort); | 454 net::QuicServerId server_id(remote_fingerprint_->value, kQuicServerPort); |
| 453 // Perform authentication of remote peer; owned by QuicCryptoClientConfig. | 455 // Perform authentication of remote peer; owned by QuicCryptoClientConfig. |
| 454 // TODO(mikescarlett): Actually verify proof. | 456 // TODO(mikescarlett): Actually verify proof. |
| 455 net::ProofVerifier* proof_verifier = new InsecureProofVerifier(); | 457 net::ProofVerifier* proof_verifier = new InsecureProofVerifier(); |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 534 | 536 |
| 535 void QuicTransportChannel::OnConnectionClosed(net::QuicErrorCode error, | 537 void QuicTransportChannel::OnConnectionClosed(net::QuicErrorCode error, |
| 536 bool from_peer) { | 538 bool from_peer) { |
| 537 LOG_J(LS_INFO, this) << "Connection closed by " | 539 LOG_J(LS_INFO, this) << "Connection closed by " |
| 538 << (from_peer ? "other" : "this") << " peer " | 540 << (from_peer ? "other" : "this") << " peer " |
| 539 << "with QUIC error " << error; | 541 << "with QUIC error " << error; |
| 540 // TODO(mikescarlett): Allow the QUIC session to be reset when the connection | 542 // TODO(mikescarlett): Allow the QUIC session to be reset when the connection |
| 541 // does not close due to failure. | 543 // does not close due to failure. |
| 542 set_quic_state(QUIC_TRANSPORT_CLOSED); | 544 set_quic_state(QUIC_TRANSPORT_CLOSED); |
| 543 set_writable(false); | 545 set_writable(false); |
| 546 SignalClosed(); |
| 544 } | 547 } |
| 545 | 548 |
| 546 void QuicTransportChannel::OnProofValid( | 549 void QuicTransportChannel::OnProofValid( |
| 547 const net::QuicCryptoClientConfig::CachedState& cached) { | 550 const net::QuicCryptoClientConfig::CachedState& cached) { |
| 548 LOG_J(LS_INFO, this) << "Cached proof marked valid"; | 551 LOG_J(LS_INFO, this) << "Cached proof marked valid"; |
| 549 } | 552 } |
| 550 | 553 |
| 551 void QuicTransportChannel::OnProofVerifyDetailsAvailable( | 554 void QuicTransportChannel::OnProofVerifyDetailsAvailable( |
| 552 const net::ProofVerifyDetails& verify_details) { | 555 const net::ProofVerifyDetails& verify_details) { |
| 553 LOG_J(LS_INFO, this) << "Proof verify details available from" | 556 LOG_J(LS_INFO, this) << "Proof verify details available from" |
| 554 << " QuicCryptoClientStream"; | 557 << " QuicCryptoClientStream"; |
| 555 } | 558 } |
| 556 | 559 |
| 557 bool QuicTransportChannel::HasDataToWrite() const { | 560 bool QuicTransportChannel::HasDataToWrite() const { |
| 558 return quic_ && quic_->HasDataToWrite(); | 561 return quic_ && quic_->HasDataToWrite(); |
| 559 } | 562 } |
| 560 | 563 |
| 561 void QuicTransportChannel::OnCanWrite() { | 564 void QuicTransportChannel::OnCanWrite() { |
| 562 RTC_DCHECK(quic_ != nullptr); | 565 RTC_DCHECK(quic_ != nullptr); |
| 563 quic_->connection()->OnCanWrite(); | 566 quic_->connection()->OnCanWrite(); |
| 564 } | 567 } |
| 565 | 568 |
| 566 void QuicTransportChannel::set_quic_state(QuicTransportState state) { | 569 void QuicTransportChannel::set_quic_state(QuicTransportState state) { |
| 567 LOG_J(LS_VERBOSE, this) << "set_quic_state from:" << quic_state_ << " to " | 570 LOG_J(LS_VERBOSE, this) << "set_quic_state from:" << quic_state_ << " to " |
| 568 << state; | 571 << state; |
| 569 quic_state_ = state; | 572 quic_state_ = state; |
| 570 } | 573 } |
| 571 | 574 |
| 575 ReliableQuicStream* QuicTransportChannel::CreateQuicStream() { |
| 576 if (quic_) { |
| 577 net::SpdyPriority priority = 0; // Priority of the QUIC stream (not used) |
| 578 return quic_->CreateOutgoingDynamicStream(priority); |
| 579 } |
| 580 return nullptr; |
| 581 } |
| 582 |
| 583 void QuicTransportChannel::OnIncomingStream(ReliableQuicStream* stream) { |
| 584 SignalIncomingStream(stream); |
| 585 } |
| 586 |
| 572 } // namespace cricket | 587 } // namespace cricket |
| OLD | NEW |