| OLD | NEW |
| 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_stream_factory.h" | 5 #include "net/quic/quic_stream_factory.h" |
| 6 | 6 |
| 7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
| 8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
| 9 #include "net/dns/mock_host_resolver.h" | 9 #include "net/dns/mock_host_resolver.h" |
| 10 #include "net/http/http_response_headers.h" | 10 #include "net/http/http_response_headers.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 | 36 |
| 37 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket( | 37 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket( |
| 38 QuicPacketSequenceNumber num, | 38 QuicPacketSequenceNumber num, |
| 39 QuicStreamId stream_id) { | 39 QuicStreamId stream_id) { |
| 40 QuicPacketHeader header; | 40 QuicPacketHeader header; |
| 41 header.public_header.guid = 0xDEADBEEF; | 41 header.public_header.guid = 0xDEADBEEF; |
| 42 header.public_header.reset_flag = false; | 42 header.public_header.reset_flag = false; |
| 43 header.public_header.version_flag = true; | 43 header.public_header.version_flag = true; |
| 44 header.packet_sequence_number = num; | 44 header.packet_sequence_number = num; |
| 45 header.entropy_flag = false; | 45 header.entropy_flag = false; |
| 46 header.fec_entropy_flag = false; | |
| 47 header.fec_flag = false; | 46 header.fec_flag = false; |
| 48 header.fec_group = 0; | 47 header.fec_group = 0; |
| 49 | 48 |
| 50 QuicRstStreamFrame rst(stream_id, QUIC_STREAM_NO_ERROR); | 49 QuicRstStreamFrame rst(stream_id, QUIC_STREAM_NO_ERROR); |
| 51 return scoped_ptr<QuicEncryptedPacket>( | 50 return scoped_ptr<QuicEncryptedPacket>( |
| 52 ConstructPacket(header, QuicFrame(&rst))); | 51 ConstructPacket(header, QuicFrame(&rst))); |
| 53 } | 52 } |
| 54 | 53 |
| 55 scoped_ptr<QuicEncryptedPacket> ConstructAckPacket( | 54 scoped_ptr<QuicEncryptedPacket> ConstructAckPacket( |
| 56 QuicPacketSequenceNumber largest_received, | 55 QuicPacketSequenceNumber largest_received, |
| 57 QuicPacketSequenceNumber least_unacked) { | 56 QuicPacketSequenceNumber least_unacked) { |
| 58 QuicPacketHeader header; | 57 QuicPacketHeader header; |
| 59 header.public_header.guid = 0xDEADBEEF; | 58 header.public_header.guid = 0xDEADBEEF; |
| 60 header.public_header.reset_flag = false; | 59 header.public_header.reset_flag = false; |
| 61 header.public_header.version_flag = false; | 60 header.public_header.version_flag = false; |
| 62 header.packet_sequence_number = 2; | 61 header.packet_sequence_number = 2; |
| 63 header.entropy_flag = false; | 62 header.entropy_flag = false; |
| 64 header.fec_entropy_flag = false; | |
| 65 header.fec_flag = false; | 63 header.fec_flag = false; |
| 66 header.fec_group = 0; | 64 header.fec_group = 0; |
| 67 | 65 |
| 68 QuicAckFrame ack(largest_received, QuicTime::Zero(), least_unacked); | 66 QuicAckFrame ack(largest_received, QuicTime::Zero(), least_unacked); |
| 69 QuicCongestionFeedbackFrame feedback; | 67 QuicCongestionFeedbackFrame feedback; |
| 70 feedback.type = kTCP; | 68 feedback.type = kTCP; |
| 71 feedback.tcp.accumulated_number_of_lost_packets = 0; | 69 feedback.tcp.accumulated_number_of_lost_packets = 0; |
| 72 feedback.tcp.receive_window = 16000; | 70 feedback.tcp.receive_window = 16000; |
| 73 | 71 |
| 74 QuicFramer framer(kQuicVersion1, QuicTime::Zero(), false); | 72 QuicFramer framer(kQuicVersion1, QuicTime::Zero(), false); |
| 75 QuicFrames frames; | 73 QuicFrames frames; |
| 76 frames.push_back(QuicFrame(&ack)); | 74 frames.push_back(QuicFrame(&ack)); |
| 77 frames.push_back(QuicFrame(&feedback)); | 75 frames.push_back(QuicFrame(&feedback)); |
| 78 scoped_ptr<QuicPacket> packet( | 76 scoped_ptr<QuicPacket> packet( |
| 79 framer.ConstructFrameDataPacket(header, frames).packet); | 77 framer.ConstructFrameDataPacket(header, frames).packet); |
| 80 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket( | 78 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket( |
| 81 ENCRYPTION_NONE, header.packet_sequence_number, *packet)); | 79 ENCRYPTION_NONE, header.packet_sequence_number, *packet)); |
| 82 } | 80 } |
| 83 | 81 |
| 84 // Returns a newly created packet to send congestion feedback data. | 82 // Returns a newly created packet to send congestion feedback data. |
| 85 scoped_ptr<QuicEncryptedPacket> ConstructFeedbackPacket( | 83 scoped_ptr<QuicEncryptedPacket> ConstructFeedbackPacket( |
| 86 QuicPacketSequenceNumber sequence_number) { | 84 QuicPacketSequenceNumber sequence_number) { |
| 87 QuicPacketHeader header; | 85 QuicPacketHeader header; |
| 88 header.public_header.guid = 0xDEADBEEF; | 86 header.public_header.guid = 0xDEADBEEF; |
| 89 header.public_header.reset_flag = false; | 87 header.public_header.reset_flag = false; |
| 90 header.public_header.version_flag = false; | 88 header.public_header.version_flag = false; |
| 91 header.packet_sequence_number = sequence_number; | 89 header.packet_sequence_number = sequence_number; |
| 92 header.entropy_flag = false; | 90 header.entropy_flag = false; |
| 93 header.fec_entropy_flag = false; | |
| 94 header.fec_flag = false; | 91 header.fec_flag = false; |
| 95 header.fec_group = 0; | 92 header.fec_group = 0; |
| 96 | 93 |
| 97 QuicCongestionFeedbackFrame frame; | 94 QuicCongestionFeedbackFrame frame; |
| 98 frame.type = kTCP; | 95 frame.type = kTCP; |
| 99 frame.tcp.accumulated_number_of_lost_packets = 0; | 96 frame.tcp.accumulated_number_of_lost_packets = 0; |
| 100 frame.tcp.receive_window = 16000; | 97 frame.tcp.receive_window = 16000; |
| 101 | 98 |
| 102 return scoped_ptr<QuicEncryptedPacket>( | 99 return scoped_ptr<QuicEncryptedPacket>( |
| 103 ConstructPacket(header, QuicFrame(&frame))); | 100 ConstructPacket(header, QuicFrame(&frame))); |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 320 socket_data2.RunFor(1); | 317 socket_data2.RunFor(1); |
| 321 | 318 |
| 322 EXPECT_TRUE(socket_data.at_read_eof()); | 319 EXPECT_TRUE(socket_data.at_read_eof()); |
| 323 EXPECT_TRUE(socket_data.at_write_eof()); | 320 EXPECT_TRUE(socket_data.at_write_eof()); |
| 324 EXPECT_TRUE(socket_data2.at_read_eof()); | 321 EXPECT_TRUE(socket_data2.at_read_eof()); |
| 325 EXPECT_TRUE(socket_data2.at_write_eof()); | 322 EXPECT_TRUE(socket_data2.at_write_eof()); |
| 326 } | 323 } |
| 327 | 324 |
| 328 } // namespace test | 325 } // namespace test |
| 329 } // namespace net | 326 } // namespace net |
| OLD | NEW |