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

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

Issue 2391103003: Landing Recent QUIC changes until 3:24 PM, Oct 01, 2016 UTC-4 (Closed)
Patch Set: Add new error code to quic_error_mapping.cc Created 4 years, 2 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/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 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 // immediately. 266 // immediately.
267 QuicConnectionId connection_id = header.connection_id; 267 QuicConnectionId connection_id = header.connection_id;
268 SessionMap::iterator it = session_map_.find(connection_id); 268 SessionMap::iterator it = session_map_.find(connection_id);
269 if (it != session_map_.end()) { 269 if (it != session_map_.end()) {
270 DCHECK(!buffered_packets_.HasBufferedPackets(connection_id)); 270 DCHECK(!buffered_packets_.HasBufferedPackets(connection_id));
271 it->second->ProcessUdpPacket(current_server_address_, 271 it->second->ProcessUdpPacket(current_server_address_,
272 current_client_address_, *current_packet_); 272 current_client_address_, *current_packet_);
273 return false; 273 return false;
274 } 274 }
275 275
276 if (FLAGS_quic_buffer_packets_after_chlo &&
277 buffered_packets_.HasChloForConnection(connection_id)) {
278 BufferEarlyPacket(connection_id);
279 return false;
280 }
281
276 if (!OnUnauthenticatedUnknownPublicHeader(header)) { 282 if (!OnUnauthenticatedUnknownPublicHeader(header)) {
277 return false; 283 return false;
278 } 284 }
279 285
280 // If the packet is a public reset for a connection ID that is not active, 286 // If the packet is a public reset for a connection ID that is not active,
281 // there is nothing we must do or can do. 287 // there is nothing we must do or can do.
282 if (header.reset_flag) { 288 if (header.reset_flag) {
283 return false; 289 return false;
284 } 290 }
285 291
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 << "Try to limit connection creation per epoll event while not " 691 << "Try to limit connection creation per epoll event while not "
686 "supporting packet buffer. " 692 "supporting packet buffer. "
687 "--quic_limit_num_new_sessions_per_epoll_loop = true " 693 "--quic_limit_num_new_sessions_per_epoll_loop = true "
688 "--quic_buffer_packet_till_chlo = false"; 694 "--quic_buffer_packet_till_chlo = false";
689 695
690 if (FLAGS_quic_limit_num_new_sessions_per_epoll_loop && 696 if (FLAGS_quic_limit_num_new_sessions_per_epoll_loop &&
691 FLAGS_quic_buffer_packet_till_chlo && 697 FLAGS_quic_buffer_packet_till_chlo &&
692 new_sessions_allowed_per_event_loop_ <= 0) { 698 new_sessions_allowed_per_event_loop_ <= 0) {
693 // Can't create new session any more. Wait till next event loop. 699 // Can't create new session any more. Wait till next event loop.
694 if (!buffered_packets_.HasChloForConnection(current_connection_id_)) { 700 if (!buffered_packets_.HasChloForConnection(current_connection_id_)) {
695 // Only buffer one CHLO per connection. 701 // Only buffer one CHLO per connection. Remove this condition check when
702 // --gfe2_reloadable_flag_quic_buffer_packets_after_chlo
703 // is deprecated because after that retransmitted CHLO should be buffered
704 // earlier in OnUnauthenticatedPublicHeader().
696 bool is_new_connection = 705 bool is_new_connection =
697 !buffered_packets_.HasBufferedPackets(current_connection_id_); 706 !buffered_packets_.HasBufferedPackets(current_connection_id_);
698 EnqueuePacketResult rs = buffered_packets_.EnqueuePacket( 707 EnqueuePacketResult rs = buffered_packets_.EnqueuePacket(
699 current_connection_id_, *current_packet_, current_server_address_, 708 current_connection_id_, *current_packet_, current_server_address_,
700 current_client_address_, /*is_chlo=*/true); 709 current_client_address_, /*is_chlo=*/true);
701 if (rs != EnqueuePacketResult::SUCCESS) { 710 if (rs != EnqueuePacketResult::SUCCESS) {
702 OnBufferPacketFailure(rs, current_connection_id_); 711 OnBufferPacketFailure(rs, current_connection_id_);
703 } else if (is_new_connection) { 712 } else if (is_new_connection) {
704 OnNewConnectionAdded(current_connection_id_); 713 OnNewConnectionAdded(current_connection_id_);
705 } 714 }
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
906 void QuicDispatcher::DeliverPacketsToSession( 915 void QuicDispatcher::DeliverPacketsToSession(
907 const std::list<BufferedPacket>& packets, 916 const std::list<BufferedPacket>& packets,
908 QuicServerSessionBase* session) { 917 QuicServerSessionBase* session) {
909 for (const BufferedPacket& packet : packets) { 918 for (const BufferedPacket& packet : packets) {
910 session->ProcessUdpPacket(packet.server_address, packet.client_address, 919 session->ProcessUdpPacket(packet.server_address, packet.client_address,
911 *(packet.packet)); 920 *(packet.packet));
912 } 921 }
913 } 922 }
914 923
915 } // namespace net 924 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/quic_dispatcher.h ('k') | net/tools/quic/quic_dispatcher_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698