| 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/core/quic_connection.h" | 5 #include "net/quic/core/quic_connection.h" |
| 6 | 6 |
| 7 #include <errno.h> | 7 #include <errno.h> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <ostream> | 9 #include <ostream> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 explicit TaggingEncrypter(uint8_t tag) : tag_(tag) {} | 83 explicit TaggingEncrypter(uint8_t tag) : tag_(tag) {} |
| 84 | 84 |
| 85 ~TaggingEncrypter() override {} | 85 ~TaggingEncrypter() override {} |
| 86 | 86 |
| 87 // QuicEncrypter interface. | 87 // QuicEncrypter interface. |
| 88 bool SetKey(StringPiece key) override { return true; } | 88 bool SetKey(StringPiece key) override { return true; } |
| 89 | 89 |
| 90 bool SetNoncePrefix(StringPiece nonce_prefix) override { return true; } | 90 bool SetNoncePrefix(StringPiece nonce_prefix) override { return true; } |
| 91 | 91 |
| 92 bool EncryptPacket(QuicVersion /*version*/, | 92 bool EncryptPacket(QuicVersion /*version*/, |
| 93 QuicPathId path_id, | |
| 94 QuicPacketNumber packet_number, | 93 QuicPacketNumber packet_number, |
| 95 StringPiece associated_data, | 94 StringPiece associated_data, |
| 96 StringPiece plaintext, | 95 StringPiece plaintext, |
| 97 char* output, | 96 char* output, |
| 98 size_t* output_length, | 97 size_t* output_length, |
| 99 size_t max_output_length) override { | 98 size_t max_output_length) override { |
| 100 const size_t len = plaintext.size() + kTagSize; | 99 const size_t len = plaintext.size() + kTagSize; |
| 101 if (max_output_length < len) { | 100 if (max_output_length < len) { |
| 102 return false; | 101 return false; |
| 103 } | 102 } |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 bool SetPreliminaryKey(StringPiece key) override { | 147 bool SetPreliminaryKey(StringPiece key) override { |
| 149 QUIC_BUG << "should not be called"; | 148 QUIC_BUG << "should not be called"; |
| 150 return false; | 149 return false; |
| 151 } | 150 } |
| 152 | 151 |
| 153 bool SetDiversificationNonce(const DiversificationNonce& key) override { | 152 bool SetDiversificationNonce(const DiversificationNonce& key) override { |
| 154 return true; | 153 return true; |
| 155 } | 154 } |
| 156 | 155 |
| 157 bool DecryptPacket(QuicVersion /*version*/, | 156 bool DecryptPacket(QuicVersion /*version*/, |
| 158 QuicPathId path_id, | |
| 159 QuicPacketNumber packet_number, | 157 QuicPacketNumber packet_number, |
| 160 StringPiece associated_data, | 158 StringPiece associated_data, |
| 161 StringPiece ciphertext, | 159 StringPiece ciphertext, |
| 162 char* output, | 160 char* output, |
| 163 size_t* output_length, | 161 size_t* output_length, |
| 164 size_t max_output_length) override { | 162 size_t max_output_length) override { |
| 165 if (ciphertext.size() < kTagSize) { | 163 if (ciphertext.size() < kTagSize) { |
| 166 return false; | 164 return false; |
| 167 } | 165 } |
| 168 if (!CheckTag(ciphertext, GetTag(ciphertext))) { | 166 if (!CheckTag(ciphertext, GetTag(ciphertext))) { |
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 492 void SendPacket(EncryptionLevel level, | 490 void SendPacket(EncryptionLevel level, |
| 493 QuicPathId path_id, | 491 QuicPathId path_id, |
| 494 QuicPacketNumber packet_number, | 492 QuicPacketNumber packet_number, |
| 495 QuicPacket* packet, | 493 QuicPacket* packet, |
| 496 HasRetransmittableData retransmittable, | 494 HasRetransmittableData retransmittable, |
| 497 bool has_ack, | 495 bool has_ack, |
| 498 bool has_pending_frames) { | 496 bool has_pending_frames) { |
| 499 char buffer[kMaxPacketSize]; | 497 char buffer[kMaxPacketSize]; |
| 500 size_t encrypted_length = | 498 size_t encrypted_length = |
| 501 QuicConnectionPeer::GetFramer(this)->EncryptPayload( | 499 QuicConnectionPeer::GetFramer(this)->EncryptPayload( |
| 502 ENCRYPTION_NONE, path_id, packet_number, *packet, buffer, | 500 ENCRYPTION_NONE, packet_number, *packet, buffer, kMaxPacketSize); |
| 503 kMaxPacketSize); | |
| 504 delete packet; | 501 delete packet; |
| 505 SerializedPacket serialized_packet( | 502 SerializedPacket serialized_packet( |
| 506 kDefaultPathId, packet_number, PACKET_6BYTE_PACKET_NUMBER, buffer, | 503 kDefaultPathId, packet_number, PACKET_6BYTE_PACKET_NUMBER, buffer, |
| 507 encrypted_length, has_ack, has_pending_frames); | 504 encrypted_length, has_ack, has_pending_frames); |
| 508 if (retransmittable == HAS_RETRANSMITTABLE_DATA) { | 505 if (retransmittable == HAS_RETRANSMITTABLE_DATA) { |
| 509 serialized_packet.retransmittable_frames.push_back( | 506 serialized_packet.retransmittable_frames.push_back( |
| 510 QuicFrame(new QuicStreamFrame())); | 507 QuicFrame(new QuicStreamFrame())); |
| 511 } | 508 } |
| 512 OnSerializedPacket(&serialized_packet); | 509 OnSerializedPacket(&serialized_packet); |
| 513 } | 510 } |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 832 header.public_header.packet_number_length = packet_number_length_; | 829 header.public_header.packet_number_length = packet_number_length_; |
| 833 header.public_header.connection_id_length = connection_id_length_; | 830 header.public_header.connection_id_length = connection_id_length_; |
| 834 header.public_header.multipath_flag = path_id != kDefaultPathId; | 831 header.public_header.multipath_flag = path_id != kDefaultPathId; |
| 835 header.path_id = path_id; | 832 header.path_id = path_id; |
| 836 header.packet_number = number; | 833 header.packet_number = number; |
| 837 QuicFrames frames; | 834 QuicFrames frames; |
| 838 frames.push_back(frame); | 835 frames.push_back(frame); |
| 839 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); | 836 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); |
| 840 | 837 |
| 841 char buffer[kMaxPacketSize]; | 838 char buffer[kMaxPacketSize]; |
| 842 size_t encrypted_length = framer_.EncryptPayload( | 839 size_t encrypted_length = |
| 843 level, path_id, number, *packet, buffer, kMaxPacketSize); | 840 framer_.EncryptPayload(level, number, *packet, buffer, kMaxPacketSize); |
| 844 connection_.ProcessUdpPacket( | 841 connection_.ProcessUdpPacket( |
| 845 kSelfAddress, kPeerAddress, | 842 kSelfAddress, kPeerAddress, |
| 846 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); | 843 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); |
| 847 return encrypted_length; | 844 return encrypted_length; |
| 848 } | 845 } |
| 849 | 846 |
| 850 size_t ProcessDataPacket(QuicPathId path_id, QuicPacketNumber number) { | 847 size_t ProcessDataPacket(QuicPathId path_id, QuicPacketNumber number) { |
| 851 return ProcessDataPacketAtLevel(path_id, number, false, ENCRYPTION_NONE); | 848 return ProcessDataPacketAtLevel(path_id, number, false, ENCRYPTION_NONE); |
| 852 } | 849 } |
| 853 | 850 |
| 854 size_t ProcessDataPacketAtLevel(QuicPathId path_id, | 851 size_t ProcessDataPacketAtLevel(QuicPathId path_id, |
| 855 QuicPacketNumber number, | 852 QuicPacketNumber number, |
| 856 bool has_stop_waiting, | 853 bool has_stop_waiting, |
| 857 EncryptionLevel level) { | 854 EncryptionLevel level) { |
| 858 std::unique_ptr<QuicPacket> packet( | 855 std::unique_ptr<QuicPacket> packet( |
| 859 ConstructDataPacket(path_id, number, has_stop_waiting)); | 856 ConstructDataPacket(path_id, number, has_stop_waiting)); |
| 860 char buffer[kMaxPacketSize]; | 857 char buffer[kMaxPacketSize]; |
| 861 size_t encrypted_length = peer_framer_.EncryptPayload( | 858 size_t encrypted_length = peer_framer_.EncryptPayload( |
| 862 level, path_id, number, *packet, buffer, kMaxPacketSize); | 859 level, number, *packet, buffer, kMaxPacketSize); |
| 863 connection_.ProcessUdpPacket( | 860 connection_.ProcessUdpPacket( |
| 864 kSelfAddress, kPeerAddress, | 861 kSelfAddress, kPeerAddress, |
| 865 QuicReceivedPacket(buffer, encrypted_length, clock_.Now(), false)); | 862 QuicReceivedPacket(buffer, encrypted_length, clock_.Now(), false)); |
| 866 if (connection_.GetSendAlarm()->IsSet()) { | 863 if (connection_.GetSendAlarm()->IsSet()) { |
| 867 connection_.GetSendAlarm()->Fire(); | 864 connection_.GetSendAlarm()->Fire(); |
| 868 } | 865 } |
| 869 return encrypted_length; | 866 return encrypted_length; |
| 870 } | 867 } |
| 871 | 868 |
| 872 void ProcessClosePacket(QuicPathId path_id, QuicPacketNumber number) { | 869 void ProcessClosePacket(QuicPathId path_id, QuicPacketNumber number) { |
| 873 std::unique_ptr<QuicPacket> packet(ConstructClosePacket(number)); | 870 std::unique_ptr<QuicPacket> packet(ConstructClosePacket(number)); |
| 874 char buffer[kMaxPacketSize]; | 871 char buffer[kMaxPacketSize]; |
| 875 size_t encrypted_length = peer_framer_.EncryptPayload( | 872 size_t encrypted_length = peer_framer_.EncryptPayload( |
| 876 ENCRYPTION_NONE, path_id, number, *packet, buffer, kMaxPacketSize); | 873 ENCRYPTION_NONE, number, *packet, buffer, kMaxPacketSize); |
| 877 connection_.ProcessUdpPacket( | 874 connection_.ProcessUdpPacket( |
| 878 kSelfAddress, kPeerAddress, | 875 kSelfAddress, kPeerAddress, |
| 879 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); | 876 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); |
| 880 } | 877 } |
| 881 | 878 |
| 882 QuicByteCount SendStreamDataToPeer(QuicStreamId id, | 879 QuicByteCount SendStreamDataToPeer(QuicStreamId id, |
| 883 StringPiece data, | 880 StringPiece data, |
| 884 QuicStreamOffset offset, | 881 QuicStreamOffset offset, |
| 885 bool fin, | 882 bool fin, |
| 886 QuicPacketNumber* last_packet) { | 883 QuicPacketNumber* last_packet) { |
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1209 header.path_id = kDefaultPathId; | 1206 header.path_id = kDefaultPathId; |
| 1210 header.packet_number = 1; | 1207 header.packet_number = 1; |
| 1211 | 1208 |
| 1212 QuicFrames frames; | 1209 QuicFrames frames; |
| 1213 QuicPaddingFrame padding; | 1210 QuicPaddingFrame padding; |
| 1214 frames.push_back(QuicFrame(&frame1_)); | 1211 frames.push_back(QuicFrame(&frame1_)); |
| 1215 frames.push_back(QuicFrame(padding)); | 1212 frames.push_back(QuicFrame(padding)); |
| 1216 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); | 1213 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); |
| 1217 char buffer[kMaxPacketSize]; | 1214 char buffer[kMaxPacketSize]; |
| 1218 size_t encrypted_length = peer_framer_.EncryptPayload( | 1215 size_t encrypted_length = peer_framer_.EncryptPayload( |
| 1219 ENCRYPTION_NONE, kDefaultPathId, 12, *packet, buffer, kMaxPacketSize); | 1216 ENCRYPTION_NONE, 12, *packet, buffer, kMaxPacketSize); |
| 1220 EXPECT_EQ(kMaxPacketSize, encrypted_length); | 1217 EXPECT_EQ(kMaxPacketSize, encrypted_length); |
| 1221 | 1218 |
| 1222 framer_.set_version(version()); | 1219 framer_.set_version(version()); |
| 1223 EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(1); | 1220 EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(1); |
| 1224 connection_.ProcessUdpPacket( | 1221 connection_.ProcessUdpPacket( |
| 1225 kSelfAddress, kPeerAddress, | 1222 kSelfAddress, kPeerAddress, |
| 1226 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); | 1223 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); |
| 1227 | 1224 |
| 1228 EXPECT_EQ(kMaxPacketSize, connection_.max_packet_length()); | 1225 EXPECT_EQ(kMaxPacketSize, connection_.max_packet_length()); |
| 1229 } | 1226 } |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1243 header.path_id = kDefaultPathId; | 1240 header.path_id = kDefaultPathId; |
| 1244 header.packet_number = 1; | 1241 header.packet_number = 1; |
| 1245 | 1242 |
| 1246 QuicFrames frames; | 1243 QuicFrames frames; |
| 1247 QuicPaddingFrame padding; | 1244 QuicPaddingFrame padding; |
| 1248 frames.push_back(QuicFrame(&frame1_)); | 1245 frames.push_back(QuicFrame(&frame1_)); |
| 1249 frames.push_back(QuicFrame(padding)); | 1246 frames.push_back(QuicFrame(padding)); |
| 1250 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); | 1247 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); |
| 1251 char buffer[kMaxPacketSize]; | 1248 char buffer[kMaxPacketSize]; |
| 1252 size_t encrypted_length = peer_framer_.EncryptPayload( | 1249 size_t encrypted_length = peer_framer_.EncryptPayload( |
| 1253 ENCRYPTION_NONE, kDefaultPathId, 12, *packet, buffer, kMaxPacketSize); | 1250 ENCRYPTION_NONE, 12, *packet, buffer, kMaxPacketSize); |
| 1254 EXPECT_EQ(kMaxPacketSize, encrypted_length); | 1251 EXPECT_EQ(kMaxPacketSize, encrypted_length); |
| 1255 | 1252 |
| 1256 framer_.set_version(version()); | 1253 framer_.set_version(version()); |
| 1257 EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(1); | 1254 EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(1); |
| 1258 connection_.ProcessUdpPacket( | 1255 connection_.ProcessUdpPacket( |
| 1259 kSelfAddress, kPeerAddress, | 1256 kSelfAddress, kPeerAddress, |
| 1260 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); | 1257 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); |
| 1261 | 1258 |
| 1262 // Here, the limit imposed by the writer is lower than the size of the packet | 1259 // Here, the limit imposed by the writer is lower than the size of the packet |
| 1263 // received, so the writer max packet size is used. | 1260 // received, so the writer max packet size is used. |
| (...skipping 3022 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4286 QuicPacketHeader header; | 4283 QuicPacketHeader header; |
| 4287 header.public_header.connection_id = connection_id_; | 4284 header.public_header.connection_id = connection_id_; |
| 4288 header.public_header.version_flag = true; | 4285 header.public_header.version_flag = true; |
| 4289 header.path_id = kDefaultPathId; | 4286 header.path_id = kDefaultPathId; |
| 4290 header.packet_number = 12; | 4287 header.packet_number = 12; |
| 4291 | 4288 |
| 4292 QuicFrames frames; | 4289 QuicFrames frames; |
| 4293 frames.push_back(QuicFrame(&frame1_)); | 4290 frames.push_back(QuicFrame(&frame1_)); |
| 4294 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); | 4291 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); |
| 4295 char buffer[kMaxPacketSize]; | 4292 char buffer[kMaxPacketSize]; |
| 4296 size_t encrypted_length = framer_.EncryptPayload( | 4293 size_t encrypted_length = framer_.EncryptPayload(ENCRYPTION_NONE, 12, *packet, |
| 4297 ENCRYPTION_NONE, kDefaultPathId, 12, *packet, buffer, kMaxPacketSize); | 4294 buffer, kMaxPacketSize); |
| 4298 | 4295 |
| 4299 framer_.set_version(version()); | 4296 framer_.set_version(version()); |
| 4300 connection_.ProcessUdpPacket( | 4297 connection_.ProcessUdpPacket( |
| 4301 kSelfAddress, kPeerAddress, | 4298 kSelfAddress, kPeerAddress, |
| 4302 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); | 4299 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); |
| 4303 EXPECT_TRUE(writer_->version_negotiation_packet() != nullptr); | 4300 EXPECT_TRUE(writer_->version_negotiation_packet() != nullptr); |
| 4304 | 4301 |
| 4305 size_t num_versions = arraysize(kSupportedQuicVersions); | 4302 size_t num_versions = arraysize(kSupportedQuicVersions); |
| 4306 ASSERT_EQ(num_versions, | 4303 ASSERT_EQ(num_versions, |
| 4307 writer_->version_negotiation_packet()->versions.size()); | 4304 writer_->version_negotiation_packet()->versions.size()); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 4321 | 4318 |
| 4322 QuicPacketHeader header; | 4319 QuicPacketHeader header; |
| 4323 header.public_header.connection_id = connection_id_; | 4320 header.public_header.connection_id = connection_id_; |
| 4324 header.public_header.version_flag = true; | 4321 header.public_header.version_flag = true; |
| 4325 header.packet_number = 12; | 4322 header.packet_number = 12; |
| 4326 | 4323 |
| 4327 QuicFrames frames; | 4324 QuicFrames frames; |
| 4328 frames.push_back(QuicFrame(&frame1_)); | 4325 frames.push_back(QuicFrame(&frame1_)); |
| 4329 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); | 4326 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); |
| 4330 char buffer[kMaxPacketSize]; | 4327 char buffer[kMaxPacketSize]; |
| 4331 size_t encrypted_length = framer_.EncryptPayload( | 4328 size_t encrypted_length = framer_.EncryptPayload(ENCRYPTION_NONE, 12, *packet, |
| 4332 ENCRYPTION_NONE, kDefaultPathId, 12, *packet, buffer, kMaxPacketSize); | 4329 buffer, kMaxPacketSize); |
| 4333 | 4330 |
| 4334 framer_.set_version(version()); | 4331 framer_.set_version(version()); |
| 4335 BlockOnNextWrite(); | 4332 BlockOnNextWrite(); |
| 4336 connection_.ProcessUdpPacket( | 4333 connection_.ProcessUdpPacket( |
| 4337 kSelfAddress, kPeerAddress, | 4334 kSelfAddress, kPeerAddress, |
| 4338 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); | 4335 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); |
| 4339 EXPECT_EQ(0u, writer_->last_packet_size()); | 4336 EXPECT_EQ(0u, writer_->last_packet_size()); |
| 4340 EXPECT_TRUE(connection_.HasQueuedData()); | 4337 EXPECT_TRUE(connection_.HasQueuedData()); |
| 4341 | 4338 |
| 4342 writer_->SetWritable(); | 4339 writer_->SetWritable(); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 4363 | 4360 |
| 4364 QuicPacketHeader header; | 4361 QuicPacketHeader header; |
| 4365 header.public_header.connection_id = connection_id_; | 4362 header.public_header.connection_id = connection_id_; |
| 4366 header.public_header.version_flag = true; | 4363 header.public_header.version_flag = true; |
| 4367 header.packet_number = 12; | 4364 header.packet_number = 12; |
| 4368 | 4365 |
| 4369 QuicFrames frames; | 4366 QuicFrames frames; |
| 4370 frames.push_back(QuicFrame(&frame1_)); | 4367 frames.push_back(QuicFrame(&frame1_)); |
| 4371 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); | 4368 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); |
| 4372 char buffer[kMaxPacketSize]; | 4369 char buffer[kMaxPacketSize]; |
| 4373 size_t encryped_length = framer_.EncryptPayload( | 4370 size_t encryped_length = framer_.EncryptPayload(ENCRYPTION_NONE, 12, *packet, |
| 4374 ENCRYPTION_NONE, kDefaultPathId, 12, *packet, buffer, kMaxPacketSize); | 4371 buffer, kMaxPacketSize); |
| 4375 | 4372 |
| 4376 framer_.set_version(version()); | 4373 framer_.set_version(version()); |
| 4377 set_perspective(Perspective::IS_SERVER); | 4374 set_perspective(Perspective::IS_SERVER); |
| 4378 BlockOnNextWrite(); | 4375 BlockOnNextWrite(); |
| 4379 writer_->set_is_write_blocked_data_buffered(true); | 4376 writer_->set_is_write_blocked_data_buffered(true); |
| 4380 connection_.ProcessUdpPacket( | 4377 connection_.ProcessUdpPacket( |
| 4381 kSelfAddress, kPeerAddress, | 4378 kSelfAddress, kPeerAddress, |
| 4382 QuicReceivedPacket(buffer, encryped_length, QuicTime::Zero(), false)); | 4379 QuicReceivedPacket(buffer, encryped_length, QuicTime::Zero(), false)); |
| 4383 EXPECT_EQ(0u, writer_->last_packet_size()); | 4380 EXPECT_EQ(0u, writer_->last_packet_size()); |
| 4384 EXPECT_FALSE(connection_.HasQueuedData()); | 4381 EXPECT_FALSE(connection_.HasQueuedData()); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 4402 QuicPacketHeader header; | 4399 QuicPacketHeader header; |
| 4403 header.public_header.connection_id = connection_id_; | 4400 header.public_header.connection_id = connection_id_; |
| 4404 header.path_id = kDefaultPathId; | 4401 header.path_id = kDefaultPathId; |
| 4405 header.packet_number = 12; | 4402 header.packet_number = 12; |
| 4406 header.public_header.version_flag = false; | 4403 header.public_header.version_flag = false; |
| 4407 QuicFrames frames; | 4404 QuicFrames frames; |
| 4408 frames.push_back(QuicFrame(&frame1_)); | 4405 frames.push_back(QuicFrame(&frame1_)); |
| 4409 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); | 4406 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); |
| 4410 char buffer[kMaxPacketSize]; | 4407 char buffer[kMaxPacketSize]; |
| 4411 size_t encrypted_length = peer_framer_.EncryptPayload( | 4408 size_t encrypted_length = peer_framer_.EncryptPayload( |
| 4412 ENCRYPTION_NONE, kDefaultPathId, 12, *packet, buffer, kMaxPacketSize); | 4409 ENCRYPTION_NONE, 12, *packet, buffer, kMaxPacketSize); |
| 4413 ASSERT_NE(0u, encrypted_length); | 4410 ASSERT_NE(0u, encrypted_length); |
| 4414 EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(1); | 4411 EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(1); |
| 4415 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); | 4412 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); |
| 4416 connection_.ProcessUdpPacket( | 4413 connection_.ProcessUdpPacket( |
| 4417 kSelfAddress, kPeerAddress, | 4414 kSelfAddress, kPeerAddress, |
| 4418 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); | 4415 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); |
| 4419 | 4416 |
| 4420 ASSERT_FALSE(QuicPacketCreatorPeer::SendVersionInPacket(creator_)); | 4417 ASSERT_FALSE(QuicPacketCreatorPeer::SendVersionInPacket(creator_)); |
| 4421 } | 4418 } |
| 4422 | 4419 |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4491 QuicConnectionCloseFrame qccf; | 4488 QuicConnectionCloseFrame qccf; |
| 4492 qccf.error_code = QUIC_PEER_GOING_AWAY; | 4489 qccf.error_code = QUIC_PEER_GOING_AWAY; |
| 4493 | 4490 |
| 4494 QuicFrames frames; | 4491 QuicFrames frames; |
| 4495 frames.push_back(QuicFrame(&frame1_)); | 4492 frames.push_back(QuicFrame(&frame1_)); |
| 4496 frames.push_back(QuicFrame(&qccf)); | 4493 frames.push_back(QuicFrame(&qccf)); |
| 4497 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); | 4494 std::unique_ptr<QuicPacket> packet(ConstructPacket(header, frames)); |
| 4498 EXPECT_TRUE(nullptr != packet.get()); | 4495 EXPECT_TRUE(nullptr != packet.get()); |
| 4499 char buffer[kMaxPacketSize]; | 4496 char buffer[kMaxPacketSize]; |
| 4500 size_t encrypted_length = peer_framer_.EncryptPayload( | 4497 size_t encrypted_length = peer_framer_.EncryptPayload( |
| 4501 ENCRYPTION_NONE, kDefaultPathId, 1, *packet, buffer, kMaxPacketSize); | 4498 ENCRYPTION_NONE, 1, *packet, buffer, kMaxPacketSize); |
| 4502 | 4499 |
| 4503 EXPECT_CALL(visitor_, OnConnectionClosed(QUIC_PEER_GOING_AWAY, _, | 4500 EXPECT_CALL(visitor_, OnConnectionClosed(QUIC_PEER_GOING_AWAY, _, |
| 4504 ConnectionCloseSource::FROM_PEER)); | 4501 ConnectionCloseSource::FROM_PEER)); |
| 4505 EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(1); | 4502 EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(1); |
| 4506 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); | 4503 EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)); |
| 4507 | 4504 |
| 4508 connection_.ProcessUdpPacket( | 4505 connection_.ProcessUdpPacket( |
| 4509 kSelfAddress, kPeerAddress, | 4506 kSelfAddress, kPeerAddress, |
| 4510 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); | 4507 QuicReceivedPacket(buffer, encrypted_length, QuicTime::Zero(), false)); |
| 4511 } | 4508 } |
| (...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5076 error_details, ConnectionCloseSource::FROM_PEER)); | 5073 error_details, ConnectionCloseSource::FROM_PEER)); |
| 5077 connection_.set_perspective(Perspective::IS_CLIENT); | 5074 connection_.set_perspective(Perspective::IS_CLIENT); |
| 5078 connection_.CloseConnection(QUIC_CRYPTO_HANDSHAKE_STATELESS_REJECT, | 5075 connection_.CloseConnection(QUIC_CRYPTO_HANDSHAKE_STATELESS_REJECT, |
| 5079 error_details, | 5076 error_details, |
| 5080 ConnectionCloseBehavior::SILENT_CLOSE); | 5077 ConnectionCloseBehavior::SILENT_CLOSE); |
| 5081 } | 5078 } |
| 5082 | 5079 |
| 5083 } // namespace | 5080 } // namespace |
| 5084 } // namespace test | 5081 } // namespace test |
| 5085 } // namespace net | 5082 } // namespace net |
| OLD | NEW |