summaryrefslogtreecommitdiffstats
path: root/net/quic
diff options
context:
space:
mode:
authorrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-21 19:51:19 +0000
committerrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-21 19:51:19 +0000
commit67efa08db0551807f19db3c432fda3940fb3886a (patch)
treec351106269c74585d7d313c2e20bed20f8230145 /net/quic
parent2dcc60d03351e86838bde4b460e1617aba3d0629 (diff)
downloadchromium_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.cc1
-rw-r--r--net/quic/quic_client_session_test.cc3
-rw-r--r--net/quic/test_tools/mock_crypto_client_stream.cc23
-rw-r--r--net/quic/test_tools/mock_crypto_client_stream.h3
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