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

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

Issue 2100863003: Disable QUIC v29 and earlier. Protected by FLAGS_quic_disable_pre_30. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@home
Patch Set: Fixing compile error on android. Created 4 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
« no previous file with comments | « net/tools/quic/quic_dispatcher.h ('k') | net/tools/quic/test_tools/quic_test_server.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_dispatcher.h" 5 #include "net/tools/quic/quic_dispatcher.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/debug/stack_trace.h" 9 #include "base/debug/stack_trace.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 : config_(config), 194 : config_(config),
195 crypto_config_(crypto_config), 195 crypto_config_(crypto_config),
196 compressed_certs_cache_( 196 compressed_certs_cache_(
197 QuicCompressedCertsCache::kQuicCompressedCertsCacheSize), 197 QuicCompressedCertsCache::kQuicCompressedCertsCacheSize),
198 helper_(std::move(helper)), 198 helper_(std::move(helper)),
199 session_helper_(std::move(session_helper)), 199 session_helper_(std::move(session_helper)),
200 alarm_factory_(std::move(alarm_factory)), 200 alarm_factory_(std::move(alarm_factory)),
201 delete_sessions_alarm_( 201 delete_sessions_alarm_(
202 alarm_factory_->CreateAlarm(new DeleteSessionsAlarm(this))), 202 alarm_factory_->CreateAlarm(new DeleteSessionsAlarm(this))),
203 supported_versions_(supported_versions), 203 supported_versions_(supported_versions),
204 disable_quic_pre_30_(FLAGS_quic_disable_pre_30),
205 allowed_supported_versions_(supported_versions),
204 current_packet_(nullptr), 206 current_packet_(nullptr),
205 framer_(supported_versions, 207 framer_(supported_versions,
206 /*unused*/ QuicTime::Zero(), 208 /*unused*/ QuicTime::Zero(),
207 Perspective::IS_SERVER), 209 Perspective::IS_SERVER),
208 last_error_(QUIC_NO_ERROR) { 210 last_error_(QUIC_NO_ERROR) {
209 framer_.set_visitor(this); 211 framer_.set_visitor(this);
210 } 212 }
211 213
212 QuicDispatcher::~QuicDispatcher() { 214 QuicDispatcher::~QuicDispatcher() {
213 STLDeleteValues(&session_map_); 215 STLDeleteValues(&session_map_);
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 if (time_wait_list_manager_->IsConnectionIdInTimeWait(connection_id)) { 278 if (time_wait_list_manager_->IsConnectionIdInTimeWait(connection_id)) {
277 // Set the framer's version based on the recorded version for this 279 // Set the framer's version based on the recorded version for this
278 // connection and continue processing for non-public-reset packets. 280 // connection and continue processing for non-public-reset packets.
279 return HandlePacketForTimeWait(header); 281 return HandlePacketForTimeWait(header);
280 } 282 }
281 283
282 // The packet has an unknown connection ID. 284 // The packet has an unknown connection ID.
283 285
284 // Unless the packet provides a version, assume that we can continue 286 // Unless the packet provides a version, assume that we can continue
285 // processing using our preferred version. 287 // processing using our preferred version.
286 QuicVersion version = supported_versions_.front(); 288 QuicVersion version = GetSupportedVersions().front();
287 if (header.version_flag) { 289 if (header.version_flag) {
288 QuicVersion packet_version = header.versions.front(); 290 QuicVersion packet_version = header.versions.front();
289 if (!framer_.IsSupportedVersion(packet_version)) { 291 if (!framer_.IsSupportedVersion(packet_version)) {
290 if (ShouldCreateSessionForUnknownVersion(framer_.last_version_tag())) { 292 if (ShouldCreateSessionForUnknownVersion(framer_.last_version_tag())) {
291 return true; 293 return true;
292 } 294 }
293 // Since the version is not supported, send a version negotiation 295 // Since the version is not supported, send a version negotiation
294 // packet and stop processing the current packet. 296 // packet and stop processing the current packet.
295 time_wait_list_manager()->SendVersionNegotiationPacket( 297 time_wait_list_manager()->SendVersionNegotiationPacket(
296 connection_id, supported_versions_, current_server_address_, 298 connection_id, GetSupportedVersions(), current_server_address_,
297 current_client_address_); 299 current_client_address_);
298 return false; 300 return false;
299 } 301 }
300 version = packet_version; 302 version = packet_version;
301 } 303 }
302 // Set the framer's version and continue processing. 304 // Set the framer's version and continue processing.
303 framer_.set_version(version); 305 framer_.set_version(version);
304 return true; 306 return true;
305 } 307 }
306 308
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 DCHECK(false); 594 DCHECK(false);
593 } 595 }
594 596
595 QuicServerSessionBase* QuicDispatcher::CreateQuicSession( 597 QuicServerSessionBase* QuicDispatcher::CreateQuicSession(
596 QuicConnectionId connection_id, 598 QuicConnectionId connection_id,
597 const IPEndPoint& client_address) { 599 const IPEndPoint& client_address) {
598 // The QuicServerSessionBase takes ownership of |connection| below. 600 // The QuicServerSessionBase takes ownership of |connection| below.
599 QuicConnection* connection = new QuicConnection( 601 QuicConnection* connection = new QuicConnection(
600 connection_id, client_address, helper_.get(), alarm_factory_.get(), 602 connection_id, client_address, helper_.get(), alarm_factory_.get(),
601 CreatePerConnectionWriter(), 603 CreatePerConnectionWriter(),
602 /* owns_writer= */ true, Perspective::IS_SERVER, supported_versions_); 604 /* owns_writer= */ true, Perspective::IS_SERVER, GetSupportedVersions());
603 605
604 QuicServerSessionBase* session = new QuicSimpleServerSession( 606 QuicServerSessionBase* session = new QuicSimpleServerSession(
605 config_, connection, this, session_helper_.get(), crypto_config_, 607 config_, connection, this, session_helper_.get(), crypto_config_,
606 &compressed_certs_cache_); 608 &compressed_certs_cache_);
607 session->Initialize(); 609 session->Initialize();
608 return session; 610 return session;
609 } 611 }
610 612
611 void QuicDispatcher::OnConnectionRejectedStatelessly() {} 613 void QuicDispatcher::OnConnectionRejectedStatelessly() {}
612 614
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 rejector.reply().GetSerialized().AsStringPiece()); 715 rejector.reply().GetSerialized().AsStringPiece());
714 OnConnectionRejectedStatelessly(); 716 OnConnectionRejectedStatelessly();
715 return kFateTimeWait; 717 return kFateTimeWait;
716 } 718 }
717 } 719 }
718 720
719 QUIC_BUG << "Rejector has unknown invalid state."; 721 QUIC_BUG << "Rejector has unknown invalid state.";
720 return kFateDrop; 722 return kFateDrop;
721 } 723 }
722 724
725 const QuicVersionVector& QuicDispatcher::GetSupportedVersions() {
726 // Filter (or un-filter) the list of supported versions based on the flag.
727 if (disable_quic_pre_30_ != FLAGS_quic_disable_pre_30) {
728 DCHECK_EQ(supported_versions_.capacity(),
729 allowed_supported_versions_.capacity());
730 disable_quic_pre_30_ = FLAGS_quic_disable_pre_30;
731 supported_versions_ = FilterSupportedVersions(allowed_supported_versions_);
732 }
733 return supported_versions_;
734 }
735
723 } // namespace net 736 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/quic_dispatcher.h ('k') | net/tools/quic/test_tools/quic_test_server.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698