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

Side by Side Diff: net/tools/quic/test_tools/packet_reordering_writer.cc

Issue 2222393002: Make QuicDispatcher to queue packets for new connections while waiting for CHLOs. Flag protected by… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@129318081
Patch Set: add new files 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
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "net/tools/quic/test_tools/packet_reordering_writer.h"
6
7 namespace net {
8 namespace test {
9
10 PacketReorderingWriter::PacketReorderingWriter() {}
11
12 PacketReorderingWriter::~PacketReorderingWriter() {}
13
14 WriteResult PacketReorderingWriter::WritePacket(const char* buffer,
15 size_t buf_len,
16 const IPAddress& self_address,
17 const IPEndPoint& peer_address,
18 PerPacketOptions* options) {
19 if (!delay_next_) {
20 WriteResult wr = QuicPacketWriterWrapper::WritePacket(
21 buffer, buf_len, self_address, peer_address, options);
22 --num_packets_to_wait_;
23 if (num_packets_to_wait_ == 0) {
24 // It's time to write the delayed packet.
25 QuicPacketWriterWrapper::WritePacket(
26 delayed_data_.data(), delayed_data_.length(), delayed_self_address_,
27 delayed_peer_address_, delayed_options_.get());
28 }
29 return wr;
30 }
31 // Still have packet to wait.
32 DCHECK_LT(0u, num_packets_to_wait_) << "Only allow one packet to be delayed";
33 delayed_data_ = std::string(buffer, buf_len);
34 delayed_self_address_ = self_address;
35 delayed_peer_address_ = peer_address;
36 if (options != nullptr) {
37 delayed_options_.reset(options->Clone());
38 }
39 delay_next_ = false;
40 return WriteResult(WRITE_STATUS_OK, buf_len);
41 }
42
43 void PacketReorderingWriter::SetDelay(size_t num_packets_to_wait) {
44 DCHECK_GT(num_packets_to_wait, 0u);
45 num_packets_to_wait_ = num_packets_to_wait;
46 delay_next_ = true;
47 }
48
49 } // namespace test
50 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/test_tools/packet_reordering_writer.h ('k') | net/tools/quic/test_tools/quic_dispatcher_peer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698