Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(116)

Side by Side Diff: net/tools/quic/quic_client.cc

Issue 2229393003: net: Use stl utilities from the base namespace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/tools/epoll_server/epoll_server.cc ('k') | net/tools/quic/quic_dispatcher.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 latest_response_code_(-1), 82 latest_response_code_(-1),
83 packet_reader_(new QuicPacketReader()) {} 83 packet_reader_(new QuicPacketReader()) {}
84 84
85 QuicClient::~QuicClient() { 85 QuicClient::~QuicClient() {
86 if (connected()) { 86 if (connected()) {
87 session()->connection()->CloseConnection( 87 session()->connection()->CloseConnection(
88 QUIC_PEER_GOING_AWAY, "Client being torn down", 88 QUIC_PEER_GOING_AWAY, "Client being torn down",
89 ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET); 89 ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
90 } 90 }
91 91
92 STLDeleteElements(&data_to_resend_on_connect_); 92 base::STLDeleteElements(&data_to_resend_on_connect_);
93 STLDeleteElements(&data_sent_before_handshake_); 93 base::STLDeleteElements(&data_sent_before_handshake_);
94 94
95 CleanUpAllUDPSockets(); 95 CleanUpAllUDPSockets();
96 } 96 }
97 97
98 bool QuicClient::Initialize() { 98 bool QuicClient::Initialize() {
99 QuicClientBase::Initialize(); 99 QuicClientBase::Initialize();
100 100
101 set_num_sent_client_hellos(0); 101 set_num_sent_client_hellos(0);
102 set_num_stateless_rejects_received(0); 102 set_num_stateless_rejects_received(0);
103 set_connection_error(QUIC_NO_ERROR); 103 set_connection_error(QUIC_NO_ERROR);
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 while (EncryptionBeingEstablished()) { 186 while (EncryptionBeingEstablished()) {
187 WaitForEvents(); 187 WaitForEvents();
188 } 188 }
189 if (FLAGS_enable_quic_stateless_reject_support && connected() && 189 if (FLAGS_enable_quic_stateless_reject_support && connected() &&
190 !data_to_resend_on_connect_.empty()) { 190 !data_to_resend_on_connect_.empty()) {
191 // A connection has been established and there was previously queued data 191 // A connection has been established and there was previously queued data
192 // to resend. Resend it and empty the queue. 192 // to resend. Resend it and empty the queue.
193 for (QuicDataToResend* data : data_to_resend_on_connect_) { 193 for (QuicDataToResend* data : data_to_resend_on_connect_) {
194 data->Resend(); 194 data->Resend();
195 } 195 }
196 STLDeleteElements(&data_to_resend_on_connect_); 196 base::STLDeleteElements(&data_to_resend_on_connect_);
197 } 197 }
198 if (session() != nullptr && 198 if (session() != nullptr &&
199 session()->error() != QUIC_CRYPTO_HANDSHAKE_STATELESS_REJECT) { 199 session()->error() != QUIC_CRYPTO_HANDSHAKE_STATELESS_REJECT) {
200 // We've successfully created a session but we're not connected, and there 200 // We've successfully created a session but we're not connected, and there
201 // is no stateless reject to recover from. Give up trying. 201 // is no stateless reject to recover from. Give up trying.
202 break; 202 break;
203 } 203 }
204 } 204 }
205 if (!connected() && 205 if (!connected() &&
206 GetNumSentClientHellos() > QuicCryptoClientStream::kMaxClientHellos && 206 GetNumSentClientHellos() > QuicCryptoClientStream::kMaxClientHellos &&
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 } 245 }
246 246
247 void QuicClient::Disconnect() { 247 void QuicClient::Disconnect() {
248 DCHECK(initialized_); 248 DCHECK(initialized_);
249 249
250 if (connected()) { 250 if (connected()) {
251 session()->connection()->CloseConnection( 251 session()->connection()->CloseConnection(
252 QUIC_PEER_GOING_AWAY, "Client disconnecting", 252 QUIC_PEER_GOING_AWAY, "Client disconnecting",
253 ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET); 253 ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
254 } 254 }
255 STLDeleteElements(&data_to_resend_on_connect_); 255 base::STLDeleteElements(&data_to_resend_on_connect_);
256 STLDeleteElements(&data_sent_before_handshake_); 256 base::STLDeleteElements(&data_sent_before_handshake_);
257 257
258 CleanUpAllUDPSockets(); 258 CleanUpAllUDPSockets();
259 259
260 initialized_ = false; 260 initialized_ = false;
261 } 261 }
262 262
263 void QuicClient::CleanUpUDPSocket(int fd) { 263 void QuicClient::CleanUpUDPSocket(int fd) {
264 CleanUpUDPSocketImpl(fd); 264 CleanUpUDPSocketImpl(fd);
265 fd_address_map_.erase(fd); 265 fd_address_map_.erase(fd);
266 } 266 }
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 new ClientQuicDataToResend(new_headers, body, fin, this); 313 new ClientQuicDataToResend(new_headers, body, fin, this);
314 MaybeAddQuicDataToResend(data_to_resend); 314 MaybeAddQuicDataToResend(data_to_resend);
315 } 315 }
316 } 316 }
317 317
318 void QuicClient::MaybeAddQuicDataToResend(QuicDataToResend* data_to_resend) { 318 void QuicClient::MaybeAddQuicDataToResend(QuicDataToResend* data_to_resend) {
319 DCHECK(FLAGS_enable_quic_stateless_reject_support); 319 DCHECK(FLAGS_enable_quic_stateless_reject_support);
320 if (session()->IsCryptoHandshakeConfirmed()) { 320 if (session()->IsCryptoHandshakeConfirmed()) {
321 // The handshake is confirmed. No need to continue saving requests to 321 // The handshake is confirmed. No need to continue saving requests to
322 // resend. 322 // resend.
323 STLDeleteElements(&data_sent_before_handshake_); 323 base::STLDeleteElements(&data_sent_before_handshake_);
324 delete data_to_resend; 324 delete data_to_resend;
325 return; 325 return;
326 } 326 }
327 327
328 // The handshake is not confirmed. Push the data onto the queue of data to 328 // The handshake is not confirmed. Push the data onto the queue of data to
329 // resend if statelessly rejected. 329 // resend if statelessly rejected.
330 data_sent_before_handshake_.push_back(data_to_resend); 330 data_sent_before_handshake_.push_back(data_to_resend);
331 } 331 }
332 332
333 void QuicClient::SendRequestAndWaitForResponse(const BalsaHeaders& headers, 333 void QuicClient::SendRequestAndWaitForResponse(const BalsaHeaders& headers,
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 return fd_address_map_.back().first; 498 return fd_address_map_.back().first;
499 } 499 }
500 500
501 void QuicClient::ProcessPacket(const IPEndPoint& self_address, 501 void QuicClient::ProcessPacket(const IPEndPoint& self_address,
502 const IPEndPoint& peer_address, 502 const IPEndPoint& peer_address,
503 const QuicReceivedPacket& packet) { 503 const QuicReceivedPacket& packet) {
504 session()->connection()->ProcessUdpPacket(self_address, peer_address, packet); 504 session()->connection()->ProcessUdpPacket(self_address, peer_address, packet);
505 } 505 }
506 506
507 } // namespace net 507 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/epoll_server/epoll_server.cc ('k') | net/tools/quic/quic_dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698