| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 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/test_tools/quic_test_packet_maker.h" | 5 #include "net/quic/test_tools/quic_test_packet_maker.h" |
| 6 | 6 |
| 7 #include "net/quic/quic_framer.h" | 7 #include "net/quic/quic_framer.h" |
| 8 #include "net/quic/quic_http_utils.h" | 8 #include "net/quic/quic_http_utils.h" |
| 9 #include "net/quic/quic_utils.h" | 9 #include "net/quic/quic_utils.h" |
| 10 #include "net/quic/test_tools/quic_test_utils.h" | 10 #include "net/quic/test_tools/quic_test_utils.h" |
| 11 | 11 |
| 12 namespace net { | 12 namespace net { |
| 13 namespace test { | 13 namespace test { |
| 14 | 14 |
| 15 QuicTestPacketMaker::QuicTestPacketMaker(QuicVersion version, QuicGuid guid) | 15 QuicTestPacketMaker::QuicTestPacketMaker(QuicVersion version, |
| 16 QuicConnectionId connection_id) |
| 16 : version_(version), | 17 : version_(version), |
| 17 guid_(guid), | 18 connection_id_(connection_id), |
| 18 spdy_request_framer_(SPDY3), | 19 spdy_request_framer_(SPDY3), |
| 19 spdy_response_framer_(SPDY3) { | 20 spdy_response_framer_(SPDY3) { |
| 20 } | 21 } |
| 21 | 22 |
| 22 QuicTestPacketMaker::~QuicTestPacketMaker() { | 23 QuicTestPacketMaker::~QuicTestPacketMaker() { |
| 23 } | 24 } |
| 24 | 25 |
| 25 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRstPacket( | 26 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRstPacket( |
| 26 QuicPacketSequenceNumber num, | 27 QuicPacketSequenceNumber num, |
| 27 bool include_version, | 28 bool include_version, |
| 28 QuicStreamId stream_id, | 29 QuicStreamId stream_id, |
| 29 QuicRstStreamErrorCode error_code) { | 30 QuicRstStreamErrorCode error_code) { |
| 30 QuicPacketHeader header; | 31 QuicPacketHeader header; |
| 31 header.public_header.guid = guid_; | 32 header.public_header.connection_id = connection_id_; |
| 32 header.public_header.reset_flag = false; | 33 header.public_header.reset_flag = false; |
| 33 header.public_header.version_flag = include_version; | 34 header.public_header.version_flag = include_version; |
| 34 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; | 35 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; |
| 35 header.packet_sequence_number = num; | 36 header.packet_sequence_number = num; |
| 36 header.entropy_flag = false; | 37 header.entropy_flag = false; |
| 37 header.fec_flag = false; | 38 header.fec_flag = false; |
| 38 header.fec_group = 0; | 39 header.fec_group = 0; |
| 39 | 40 |
| 40 QuicRstStreamFrame rst(stream_id, error_code, 0); | 41 QuicRstStreamFrame rst(stream_id, error_code, 0); |
| 41 return scoped_ptr<QuicEncryptedPacket>(MakePacket(header, QuicFrame(&rst))); | 42 return scoped_ptr<QuicEncryptedPacket>(MakePacket(header, QuicFrame(&rst))); |
| 42 } | 43 } |
| 43 | 44 |
| 44 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckAndRstPacket( | 45 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckAndRstPacket( |
| 45 QuicPacketSequenceNumber num, | 46 QuicPacketSequenceNumber num, |
| 46 bool include_version, | 47 bool include_version, |
| 47 QuicStreamId stream_id, | 48 QuicStreamId stream_id, |
| 48 QuicRstStreamErrorCode error_code, | 49 QuicRstStreamErrorCode error_code, |
| 49 QuicPacketSequenceNumber largest_received, | 50 QuicPacketSequenceNumber largest_received, |
| 50 QuicPacketSequenceNumber least_unacked, | 51 QuicPacketSequenceNumber least_unacked, |
| 51 bool send_feedback) { | 52 bool send_feedback) { |
| 52 | 53 |
| 53 QuicPacketHeader header; | 54 QuicPacketHeader header; |
| 54 header.public_header.guid = guid_; | 55 header.public_header.connection_id = connection_id_; |
| 55 header.public_header.reset_flag = false; | 56 header.public_header.reset_flag = false; |
| 56 header.public_header.version_flag = include_version; | 57 header.public_header.version_flag = include_version; |
| 57 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; | 58 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; |
| 58 header.packet_sequence_number = num; | 59 header.packet_sequence_number = num; |
| 59 header.entropy_flag = false; | 60 header.entropy_flag = false; |
| 60 header.fec_flag = false; | 61 header.fec_flag = false; |
| 61 header.fec_group = 0; | 62 header.fec_group = 0; |
| 62 | 63 |
| 63 QuicAckFrame ack(largest_received, QuicTime::Zero(), least_unacked); | 64 QuicAckFrame ack(largest_received, QuicTime::Zero(), least_unacked); |
| 64 QuicFrames frames; | 65 QuicFrames frames; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 83 QuicFramer framer(SupportedVersions(version_), QuicTime::Zero(), false); | 84 QuicFramer framer(SupportedVersions(version_), QuicTime::Zero(), false); |
| 84 scoped_ptr<QuicPacket> packet( | 85 scoped_ptr<QuicPacket> packet( |
| 85 framer.BuildUnsizedDataPacket(header, frames).packet); | 86 framer.BuildUnsizedDataPacket(header, frames).packet); |
| 86 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket( | 87 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket( |
| 87 ENCRYPTION_NONE, header.packet_sequence_number, *packet)); | 88 ENCRYPTION_NONE, header.packet_sequence_number, *packet)); |
| 88 } | 89 } |
| 89 | 90 |
| 90 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeConnectionClosePacket( | 91 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeConnectionClosePacket( |
| 91 QuicPacketSequenceNumber num) { | 92 QuicPacketSequenceNumber num) { |
| 92 QuicPacketHeader header; | 93 QuicPacketHeader header; |
| 93 header.public_header.guid = guid_; | 94 header.public_header.connection_id = connection_id_; |
| 94 header.public_header.reset_flag = false; | 95 header.public_header.reset_flag = false; |
| 95 header.public_header.version_flag = false; | 96 header.public_header.version_flag = false; |
| 96 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; | 97 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; |
| 97 header.packet_sequence_number = num; | 98 header.packet_sequence_number = num; |
| 98 header.entropy_flag = false; | 99 header.entropy_flag = false; |
| 99 header.fec_flag = false; | 100 header.fec_flag = false; |
| 100 header.fec_group = 0; | 101 header.fec_group = 0; |
| 101 | 102 |
| 102 QuicConnectionCloseFrame close; | 103 QuicConnectionCloseFrame close; |
| 103 close.error_code = QUIC_CRYPTO_VERSION_NOT_SUPPORTED; | 104 close.error_code = QUIC_CRYPTO_VERSION_NOT_SUPPORTED; |
| 104 close.error_details = "Time to panic!"; | 105 close.error_details = "Time to panic!"; |
| 105 return scoped_ptr<QuicEncryptedPacket>(MakePacket(header, QuicFrame(&close))); | 106 return scoped_ptr<QuicEncryptedPacket>(MakePacket(header, QuicFrame(&close))); |
| 106 } | 107 } |
| 107 | 108 |
| 108 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckPacket( | 109 scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckPacket( |
| 109 QuicPacketSequenceNumber sequence_number, | 110 QuicPacketSequenceNumber sequence_number, |
| 110 QuicPacketSequenceNumber largest_received, | 111 QuicPacketSequenceNumber largest_received, |
| 111 QuicPacketSequenceNumber least_unacked, | 112 QuicPacketSequenceNumber least_unacked, |
| 112 bool send_feedback) { | 113 bool send_feedback) { |
| 113 QuicPacketHeader header; | 114 QuicPacketHeader header; |
| 114 header.public_header.guid = guid_; | 115 header.public_header.connection_id = connection_id_; |
| 115 header.public_header.reset_flag = false; | 116 header.public_header.reset_flag = false; |
| 116 header.public_header.version_flag = false; | 117 header.public_header.version_flag = false; |
| 117 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; | 118 header.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; |
| 118 header.packet_sequence_number = sequence_number; | 119 header.packet_sequence_number = sequence_number; |
| 119 header.entropy_flag = false; | 120 header.entropy_flag = false; |
| 120 header.fec_flag = false; | 121 header.fec_flag = false; |
| 121 header.fec_group = 0; | 122 header.fec_group = 0; |
| 122 | 123 |
| 123 QuicAckFrame ack(largest_received, QuicTime::Zero(), least_unacked); | 124 QuicAckFrame ack(largest_received, QuicTime::Zero(), least_unacked); |
| 124 | 125 |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 frames.push_back(frame); | 242 frames.push_back(frame); |
| 242 scoped_ptr<QuicPacket> packet( | 243 scoped_ptr<QuicPacket> packet( |
| 243 framer.BuildUnsizedDataPacket(header, frames).packet); | 244 framer.BuildUnsizedDataPacket(header, frames).packet); |
| 244 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket( | 245 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket( |
| 245 ENCRYPTION_NONE, header.packet_sequence_number, *packet)); | 246 ENCRYPTION_NONE, header.packet_sequence_number, *packet)); |
| 246 } | 247 } |
| 247 | 248 |
| 248 void QuicTestPacketMaker::InitializeHeader( | 249 void QuicTestPacketMaker::InitializeHeader( |
| 249 QuicPacketSequenceNumber sequence_number, | 250 QuicPacketSequenceNumber sequence_number, |
| 250 bool should_include_version) { | 251 bool should_include_version) { |
| 251 header_.public_header.guid = guid_; | 252 header_.public_header.connection_id = connection_id_; |
| 252 header_.public_header.reset_flag = false; | 253 header_.public_header.reset_flag = false; |
| 253 header_.public_header.version_flag = should_include_version; | 254 header_.public_header.version_flag = should_include_version; |
| 254 header_.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; | 255 header_.public_header.sequence_number_length = PACKET_1BYTE_SEQUENCE_NUMBER; |
| 255 header_.packet_sequence_number = sequence_number; | 256 header_.packet_sequence_number = sequence_number; |
| 256 header_.fec_group = 0; | 257 header_.fec_group = 0; |
| 257 header_.entropy_flag = false; | 258 header_.entropy_flag = false; |
| 258 header_.fec_flag = false; | 259 header_.fec_flag = false; |
| 259 } | 260 } |
| 260 | 261 |
| 261 std::string QuicTestPacketMaker::SerializeHeaderBlock( | 262 std::string QuicTestPacketMaker::SerializeHeaderBlock( |
| 262 const SpdyHeaderBlock& headers) { | 263 const SpdyHeaderBlock& headers) { |
| 263 QuicSpdyCompressor compressor; | 264 QuicSpdyCompressor compressor; |
| 264 return compressor.CompressHeadersWithPriority( | 265 return compressor.CompressHeadersWithPriority( |
| 265 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY), headers); | 266 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY), headers); |
| 266 } | 267 } |
| 267 | 268 |
| 268 } // namespace test | 269 } // namespace test |
| 269 } // namespace net | 270 } // namespace net |
| OLD | NEW |