diff options
author | rtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-21 19:51:19 +0000 |
---|---|---|
committer | rtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-21 19:51:19 +0000 |
commit | 67efa08db0551807f19db3c432fda3940fb3886a (patch) | |
tree | c351106269c74585d7d313c2e20bed20f8230145 /net/quic | |
parent | 2dcc60d03351e86838bde4b460e1617aba3d0629 (diff) | |
download | chromium_src-67efa08db0551807f19db3c432fda3940fb3886a.zip chromium_src-67efa08db0551807f19db3c432fda3940fb3886a.tar.gz chromium_src-67efa08db0551807f19db3c432fda3940fb3886a.tar.bz2 |
QUIC - reset QuicConnection's OverallConnectionTimeout when crypto handshake
is confirmed.
QuicClientSession::OnCryptoHandshakeEvent calls base class's
QuicSession::OnCryptoHandshakeEvent whenever it is called.
R=agl@chromium.org, jar@chromium.org, rch@chromium.org
BUG=260992
Review URL: https://codereview.chromium.org/19528002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212825 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/quic')
-rw-r--r-- | net/quic/quic_client_session.cc | 1 | ||||
-rw-r--r-- | net/quic/quic_client_session_test.cc | 3 | ||||
-rw-r--r-- | net/quic/test_tools/mock_crypto_client_stream.cc | 23 | ||||
-rw-r--r-- | net/quic/test_tools/mock_crypto_client_stream.h | 3 |
4 files changed, 28 insertions, 2 deletions
diff --git a/net/quic/quic_client_session.cc b/net/quic/quic_client_session.cc index 063e3ef..c0e2eef 100644 --- a/net/quic/quic_client_session.cc +++ b/net/quic/quic_client_session.cc @@ -161,6 +161,7 @@ void QuicClientSession::OnCryptoHandshakeEvent(CryptoHandshakeEvent event) { // following code needs to changed. base::ResetAndReturn(&callback_).Run(OK); } + QuicSession::OnCryptoHandshakeEvent(event); } void QuicClientSession::ConnectionClose(QuicErrorCode error, bool from_peer) { diff --git a/net/quic/quic_client_session_test.cc b/net/quic/quic_client_session_test.cc index afd8eab..7f277dc 100644 --- a/net/quic/quic_client_session_test.cc +++ b/net/quic/quic_client_session_test.cc @@ -33,7 +33,6 @@ class QuicClientSessionTest : public ::testing::Test { DefaultQuicConfig(), &crypto_config_, &net_log_) { session_.config()->SetDefaults(); crypto_config_.SetDefaults(); - QuicClientSessionPeer::SetMaxOpenStreams(&session_, 1, 1); } void CompleteCryptoHandshake() { @@ -64,7 +63,7 @@ TEST_F(QuicClientSessionTest, CryptoConnect) { CompleteCryptoHandshake(); } -TEST_F(QuicClientSessionTest, MaxNumConnections) { +TEST_F(QuicClientSessionTest, MaxNumStreams) { if (!Aes128Gcm12Encrypter::IsSupported()) { LOG(INFO) << "AES GCM not supported. Test skipped."; return; diff --git a/net/quic/test_tools/mock_crypto_client_stream.cc b/net/quic/test_tools/mock_crypto_client_stream.cc index dda5965..79c3353 100644 --- a/net/quic/test_tools/mock_crypto_client_stream.cc +++ b/net/quic/test_tools/mock_crypto_client_stream.cc @@ -3,6 +3,7 @@ // found in the LICENSE file. #include "net/quic/test_tools/mock_crypto_client_stream.h" +#include "testing/gtest/include/gtest/gtest.h" namespace net { @@ -36,6 +37,7 @@ bool MockCryptoClientStream::CryptoConnect() { case CONFIRM_HANDSHAKE: { encryption_established_ = true; handshake_confirmed_ = true; + SetConfigNegotiated(); session()->OnCryptoHandshakeEvent(QuicSession::HANDSHAKE_CONFIRMED); break; } @@ -49,4 +51,25 @@ bool MockCryptoClientStream::CryptoConnect() { return true; } +void MockCryptoClientStream::SetConfigNegotiated() { + ASSERT_FALSE(session()->config()->negotiated()); + QuicTagVector cgst; + cgst.push_back(kINAR); + cgst.push_back(kQBIC); + session()->config()->set_congestion_control(cgst, kQBIC); + session()->config()->set_idle_connection_state_lifetime( + QuicTime::Delta::FromSeconds(2 * kDefaultTimeoutSecs), + QuicTime::Delta::FromSeconds(kDefaultTimeoutSecs)); + session()->config()->set_max_streams_per_connection( + 2 * kDefaultMaxStreamsPerConnection, kDefaultMaxStreamsPerConnection); + + CryptoHandshakeMessage msg; + session()->config()->ToHandshakeMessage(&msg); + string error_details; + const QuicErrorCode error = + session()->config()->ProcessClientHello(msg, &error_details); + ASSERT_EQ(QUIC_NO_ERROR, error); + ASSERT_TRUE(session()->config()->negotiated()); +} + } // namespace net diff --git a/net/quic/test_tools/mock_crypto_client_stream.h b/net/quic/test_tools/mock_crypto_client_stream.h index 3351dec..2b73b8f 100644 --- a/net/quic/test_tools/mock_crypto_client_stream.h +++ b/net/quic/test_tools/mock_crypto_client_stream.h @@ -47,6 +47,9 @@ class MockCryptoClientStream : public QuicCryptoClientStream { virtual bool CryptoConnect() OVERRIDE; HandshakeMode handshake_mode_; + + private: + void SetConfigNegotiated(); }; } // namespace net |