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

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

Issue 2512163004: Fix version manager that flip flag in-flight does not make supported versions change. (Closed)
Patch Set: Created 4 years, 1 month 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/quic/core/quic_protocol.cc ('k') | net/tools/quic/quic_dispatcher_test.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 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 return HandlePacketForTimeWait(header); 304 return HandlePacketForTimeWait(header);
305 } 305 }
306 306
307 // The packet has an unknown connection ID. 307 // The packet has an unknown connection ID.
308 308
309 // Unless the packet provides a version, assume that we can continue 309 // Unless the packet provides a version, assume that we can continue
310 // processing using our preferred version. 310 // processing using our preferred version.
311 QuicVersion version = GetSupportedVersions().front(); 311 QuicVersion version = GetSupportedVersions().front();
312 if (header.version_flag) { 312 if (header.version_flag) {
313 QuicVersion packet_version = header.versions.front(); 313 QuicVersion packet_version = header.versions.front();
314 if (FLAGS_quic_fix_version_manager &&
315 framer_.supported_versions() != GetSupportedVersions()) {
316 // Reset framer's version if version flags change in flight.
317 framer_.SetSupportedVersions(GetSupportedVersions());
318 }
314 if (!framer_.IsSupportedVersion(packet_version)) { 319 if (!framer_.IsSupportedVersion(packet_version)) {
315 if (ShouldCreateSessionForUnknownVersion(framer_.last_version_tag())) { 320 if (ShouldCreateSessionForUnknownVersion(framer_.last_version_tag())) {
316 return true; 321 return true;
317 } 322 }
318 // Since the version is not supported, send a version negotiation 323 // Since the version is not supported, send a version negotiation
319 // packet and stop processing the current packet. 324 // packet and stop processing the current packet.
320 time_wait_list_manager()->SendVersionNegotiationPacket( 325 time_wait_list_manager()->SendVersionNegotiationPacket(
321 connection_id, GetSupportedVersions(), current_server_address_, 326 connection_id, GetSupportedVersions(), current_server_address_,
322 current_client_address_); 327 current_client_address_);
323 return false; 328 return false;
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 void QuicDispatcher::DeliverPacketsToSession( 992 void QuicDispatcher::DeliverPacketsToSession(
988 const std::list<BufferedPacket>& packets, 993 const std::list<BufferedPacket>& packets,
989 QuicSession* session) { 994 QuicSession* session) {
990 for (const BufferedPacket& packet : packets) { 995 for (const BufferedPacket& packet : packets) {
991 session->ProcessUdpPacket(packet.server_address, packet.client_address, 996 session->ProcessUdpPacket(packet.server_address, packet.client_address,
992 *(packet.packet)); 997 *(packet.packet));
993 } 998 }
994 } 999 }
995 1000
996 } // namespace net 1001 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/core/quic_protocol.cc ('k') | net/tools/quic/quic_dispatcher_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698