Index: net/tools/quic/quic_client.cc |
diff --git a/net/tools/quic/quic_client.cc b/net/tools/quic/quic_client.cc |
index b8cf6e91b727229380ba7c340ea7b73c30f6eb3d..b1fa9358142070a1ff379e26b099077e3f8f3474 100644 |
--- a/net/tools/quic/quic_client.cc |
+++ b/net/tools/quic/quic_client.cc |
@@ -32,7 +32,7 @@ const int kEpollFlags = EPOLLIN | EPOLLOUT | EPOLLET; |
QuicClient::QuicClient(IPEndPoint server_address, |
const string& server_hostname, |
- const QuicVersion version, |
+ const QuicVersionVector& supported_versions, |
bool print_response) |
: server_address_(server_address), |
server_hostname_(server_hostname), |
@@ -42,7 +42,7 @@ QuicClient::QuicClient(IPEndPoint server_address, |
initialized_(false), |
packets_dropped_(0), |
overflow_supported_(false), |
- version_(version), |
+ supported_versions_(supported_versions), |
print_response_(print_response) { |
config_.SetDefaults(); |
} |
@@ -50,7 +50,7 @@ QuicClient::QuicClient(IPEndPoint server_address, |
QuicClient::QuicClient(IPEndPoint server_address, |
const string& server_hostname, |
const QuicConfig& config, |
- const QuicVersion version) |
+ const QuicVersionVector& supported_versions) |
: server_address_(server_address), |
server_hostname_(server_hostname), |
config_(config), |
@@ -60,7 +60,7 @@ QuicClient::QuicClient(IPEndPoint server_address, |
initialized_(false), |
packets_dropped_(0), |
overflow_supported_(false), |
- version_(version), |
+ supported_versions_(supported_versions), |
print_response_(false) { |
} |
@@ -155,14 +155,16 @@ bool QuicClient::Connect() { |
bool QuicClient::StartConnect() { |
DCHECK(!connected() && initialized_); |
- if (!writer_.get()) { |
- writer_.reset(CreateQuicPacketWriter()); |
+ QuicPacketWriter* writer = CreateQuicPacketWriter(); |
+ if (writer_.get() != writer) { |
+ writer_.reset(writer); |
} |
+ |
session_.reset(new QuicClientSession( |
server_hostname_, |
config_, |
new QuicConnection(GenerateGuid(), server_address_, helper_.get(), |
- writer_.get(), false, version_), |
+ writer_.get(), false, supported_versions_), |
&crypto_config_)); |
return session_->CryptoConnect(); |
} |