OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/tools/quic/quic_client.h" | 5 #include "net/tools/quic/quic_client.h" |
6 | 6 |
7 #include <errno.h> | 7 #include <errno.h> |
8 #include <netinet/in.h> | 8 #include <netinet/in.h> |
9 #include <string.h> | 9 #include <string.h> |
10 #include <sys/epoll.h> | 10 #include <sys/epoll.h> |
(...skipping 21 matching lines...) Expand all Loading... |
32 QuicClient::QuicClient(IPEndPoint server_address, | 32 QuicClient::QuicClient(IPEndPoint server_address, |
33 const string& server_hostname) | 33 const string& server_hostname) |
34 : server_address_(server_address), | 34 : server_address_(server_address), |
35 server_hostname_(server_hostname), | 35 server_hostname_(server_hostname), |
36 local_port_(0), | 36 local_port_(0), |
37 fd_(-1), | 37 fd_(-1), |
38 initialized_(false), | 38 initialized_(false), |
39 packets_dropped_(0), | 39 packets_dropped_(0), |
40 overflow_supported_(false) { | 40 overflow_supported_(false) { |
41 epoll_server_.set_timeout_in_us(50 * 1000); | 41 epoll_server_.set_timeout_in_us(50 * 1000); |
| 42 config_.SetDefaults(); |
| 43 crypto_config_.SetDefaults(); |
42 } | 44 } |
43 | 45 |
44 QuicClient::~QuicClient() { | 46 QuicClient::~QuicClient() { |
45 if (connected()) { | 47 if (connected()) { |
46 session()->connection() | 48 session()->connection() |
47 ->SendConnectionClosePacket(QUIC_PEER_GOING_AWAY, std::string()); | 49 ->SendConnectionClosePacket(QUIC_PEER_GOING_AWAY, std::string()); |
48 } | 50 } |
49 } | 51 } |
50 | 52 |
51 bool QuicClient::Initialize() { | 53 bool QuicClient::Initialize() { |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 WaitForEvents(); | 124 WaitForEvents(); |
123 } | 125 } |
124 return session_->connection()->connected(); | 126 return session_->connection()->connected(); |
125 } | 127 } |
126 | 128 |
127 | 129 |
128 bool QuicClient::StartConnect() { | 130 bool QuicClient::StartConnect() { |
129 DCHECK(!connected() && initialized_); | 131 DCHECK(!connected() && initialized_); |
130 | 132 |
131 QuicGuid guid = QuicRandom::GetInstance()->RandUint64(); | 133 QuicGuid guid = QuicRandom::GetInstance()->RandUint64(); |
132 session_.reset(new QuicClientSession(server_hostname_, new QuicConnection( | 134 session_.reset(new QuicClientSession( |
133 guid, server_address_, | 135 server_hostname_, |
134 new QuicEpollConnectionHelper(fd_, &epoll_server_), false))); | 136 config_, |
| 137 new QuicConnection(guid, server_address_, |
| 138 new QuicEpollConnectionHelper(fd_, &epoll_server_), |
| 139 false), |
| 140 &crypto_config_)); |
135 return session_->CryptoConnect(); | 141 return session_->CryptoConnect(); |
136 } | 142 } |
137 | 143 |
138 bool QuicClient::CryptoHandshakeInProgress() { | 144 bool QuicClient::CryptoHandshakeInProgress() { |
139 return !session_->IsCryptoHandshakeComplete() && | 145 return !session_->IsCryptoHandshakeComplete() && |
140 session_->connection()->connected(); | 146 session_->connection()->connected(); |
141 } | 147 } |
142 | 148 |
143 void QuicClient::Disconnect() { | 149 void QuicClient::Disconnect() { |
144 DCHECK(connected()); | 150 DCHECK(connected()); |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 } | 245 } |
240 | 246 |
241 IPEndPoint client_address(client_ip, client_address_.port()); | 247 IPEndPoint client_address(client_ip, client_address_.port()); |
242 session_->connection()->ProcessUdpPacket( | 248 session_->connection()->ProcessUdpPacket( |
243 client_address, server_address, packet); | 249 client_address, server_address, packet); |
244 return true; | 250 return true; |
245 } | 251 } |
246 | 252 |
247 } // namespace tools | 253 } // namespace tools |
248 } // namespace net | 254 } // namespace net |
OLD | NEW |