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

Side by Side Diff: net/quic/quic_connection.cc

Issue 399153003: Land Recent QUIC Changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added NET_EXPORT_PRIVATE Created 6 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « net/quic/congestion_control/tcp_cubic_sender.cc ('k') | net/quic/quic_connection_logger.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/quic/quic_connection.h" 5 #include "net/quic/quic_connection.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 #include <sys/types.h> 8 #include <sys/types.h>
9 #include <algorithm> 9 #include <algorithm>
10 #include <iterator> 10 #include <iterator>
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 ping_alarm_(helper->CreateAlarm(new PingAlarm(this))), 220 ping_alarm_(helper->CreateAlarm(new PingAlarm(this))),
221 debug_visitor_(NULL), 221 debug_visitor_(NULL),
222 packet_generator_(connection_id_, &framer_, random_generator_, this), 222 packet_generator_(connection_id_, &framer_, random_generator_, this),
223 idle_network_timeout_( 223 idle_network_timeout_(
224 QuicTime::Delta::FromSeconds(kDefaultInitialTimeoutSecs)), 224 QuicTime::Delta::FromSeconds(kDefaultInitialTimeoutSecs)),
225 overall_connection_timeout_(QuicTime::Delta::Infinite()), 225 overall_connection_timeout_(QuicTime::Delta::Infinite()),
226 time_of_last_received_packet_(clock_->ApproximateNow()), 226 time_of_last_received_packet_(clock_->ApproximateNow()),
227 time_of_last_sent_new_packet_(clock_->ApproximateNow()), 227 time_of_last_sent_new_packet_(clock_->ApproximateNow()),
228 sequence_number_of_last_sent_packet_(0), 228 sequence_number_of_last_sent_packet_(0),
229 sent_packet_manager_( 229 sent_packet_manager_(
230 is_server, clock_, &stats_, kTCP, 230 is_server, clock_, &stats_, kCubic,
231 FLAGS_quic_use_time_loss_detection ? kTime : kNack), 231 FLAGS_quic_use_time_loss_detection ? kTime : kNack),
232 version_negotiation_state_(START_NEGOTIATION), 232 version_negotiation_state_(START_NEGOTIATION),
233 is_server_(is_server), 233 is_server_(is_server),
234 connected_(true), 234 connected_(true),
235 peer_ip_changed_(false), 235 peer_ip_changed_(false),
236 peer_port_changed_(false), 236 peer_port_changed_(false),
237 self_ip_changed_(false), 237 self_ip_changed_(false),
238 self_port_changed_(false) { 238 self_port_changed_(false) {
239 if (!is_server_) { 239 if (!is_server_) {
240 // Pacing will be enabled if the client negotiates it. 240 // Pacing will be enabled if the client negotiates it.
241 sent_packet_manager_.MaybeEnablePacing(); 241 sent_packet_manager_.MaybeEnablePacing();
242 } 242 }
243 DVLOG(1) << ENDPOINT << "Created connection with connection_id: " 243 DVLOG(1) << ENDPOINT << "Created connection with connection_id: "
244 << connection_id; 244 << connection_id;
245 timeout_alarm_->Set(clock_->ApproximateNow().Add(idle_network_timeout_)); 245 timeout_alarm_->Set(clock_->ApproximateNow().Add(idle_network_timeout_));
246 framer_.set_visitor(this); 246 framer_.set_visitor(this);
247 framer_.set_received_entropy_calculator(&received_packet_manager_); 247 framer_.set_received_entropy_calculator(&received_packet_manager_);
248 stats_.connection_creation_time = clock_->ApproximateNow(); 248 stats_.connection_creation_time = clock_->ApproximateNow();
249 sent_packet_manager_.set_network_change_visitor(&packet_generator_);
249 } 250 }
250 251
251 QuicConnection::~QuicConnection() { 252 QuicConnection::~QuicConnection() {
252 STLDeleteElements(&undecryptable_packets_); 253 STLDeleteElements(&undecryptable_packets_);
253 STLDeleteValues(&group_map_); 254 STLDeleteValues(&group_map_);
254 for (QueuedPacketList::iterator it = queued_packets_.begin(); 255 for (QueuedPacketList::iterator it = queued_packets_.begin();
255 it != queued_packets_.end(); ++it) { 256 it != queued_packets_.end(); ++it) {
256 delete it->packet; 257 delete it->packet;
257 } 258 }
258 } 259 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 last_congestion_frames_.empty() && 301 last_congestion_frames_.empty() &&
301 last_stop_waiting_frames_.empty()); 302 last_stop_waiting_frames_.empty());
302 } 303 }
303 304
304 void QuicConnection::OnPublicResetPacket( 305 void QuicConnection::OnPublicResetPacket(
305 const QuicPublicResetPacket& packet) { 306 const QuicPublicResetPacket& packet) {
306 if (debug_visitor_) { 307 if (debug_visitor_) {
307 debug_visitor_->OnPublicResetPacket(packet); 308 debug_visitor_->OnPublicResetPacket(packet);
308 } 309 }
309 CloseConnection(QUIC_PUBLIC_RESET, true); 310 CloseConnection(QUIC_PUBLIC_RESET, true);
311
312 DVLOG(1) << ENDPOINT << "Connection " << connection_id()
313 << " closed via QUIC_PUBLIC_RESET from peer.";
310 } 314 }
311 315
312 bool QuicConnection::OnProtocolVersionMismatch(QuicVersion received_version) { 316 bool QuicConnection::OnProtocolVersionMismatch(QuicVersion received_version) {
313 DVLOG(1) << ENDPOINT << "Received packet with mismatched version " 317 DVLOG(1) << ENDPOINT << "Received packet with mismatched version "
314 << received_version; 318 << received_version;
315 // TODO(satyamshekhar): Implement no server state in this mode. 319 // TODO(satyamshekhar): Implement no server state in this mode.
316 if (!is_server_) { 320 if (!is_server_) {
317 LOG(DFATAL) << ENDPOINT << "Framer called OnProtocolVersionMismatch. " 321 LOG(DFATAL) << ENDPOINT << "Framer called OnProtocolVersionMismatch. "
318 << "Closing connection."; 322 << "Closing connection.";
319 CloseConnection(QUIC_INTERNAL_ERROR, false); 323 CloseConnection(QUIC_INTERNAL_ERROR, false);
(...skipping 1658 matching lines...) Expand 10 before | Expand all | Expand 10 after
1978 // If we changed the generator's batch state, restore original batch state. 1982 // If we changed the generator's batch state, restore original batch state.
1979 if (!already_in_batch_mode_) { 1983 if (!already_in_batch_mode_) {
1980 DVLOG(1) << "Leaving Batch Mode."; 1984 DVLOG(1) << "Leaving Batch Mode.";
1981 connection_->packet_generator_.FinishBatchOperations(); 1985 connection_->packet_generator_.FinishBatchOperations();
1982 } 1986 }
1983 DCHECK_EQ(already_in_batch_mode_, 1987 DCHECK_EQ(already_in_batch_mode_,
1984 connection_->packet_generator_.InBatchMode()); 1988 connection_->packet_generator_.InBatchMode());
1985 } 1989 }
1986 1990
1987 } // namespace net 1991 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/congestion_control/tcp_cubic_sender.cc ('k') | net/quic/quic_connection_logger.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698