| 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/tools/quic/quic_time_wait_list_manager.h" | 5 #include "net/tools/quic/quic_time_wait_list_manager.h" |
| 6 | 6 |
| 7 #include <errno.h> | 7 #include <errno.h> |
| 8 #include <memory> | 8 #include <memory> |
| 9 | 9 |
| 10 #include "net/quic/core/crypto/crypto_protocol.h" | 10 #include "net/quic/core/crypto/crypto_protocol.h" |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 : public MatcherInterface<const std::tr1::tuple<const char*, int>> { | 169 : public MatcherInterface<const std::tr1::tuple<const char*, int>> { |
| 170 public: | 170 public: |
| 171 explicit ValidatePublicResetPacketPredicate(QuicConnectionId connection_id, | 171 explicit ValidatePublicResetPacketPredicate(QuicConnectionId connection_id, |
| 172 QuicPacketNumber number) | 172 QuicPacketNumber number) |
| 173 : connection_id_(connection_id), packet_number_(number) {} | 173 : connection_id_(connection_id), packet_number_(number) {} |
| 174 | 174 |
| 175 bool MatchAndExplain( | 175 bool MatchAndExplain( |
| 176 const std::tr1::tuple<const char*, int> packet_buffer, | 176 const std::tr1::tuple<const char*, int> packet_buffer, |
| 177 testing::MatchResultListener* /* listener */) const override { | 177 testing::MatchResultListener* /* listener */) const override { |
| 178 FramerVisitorCapturingPublicReset visitor; | 178 FramerVisitorCapturingPublicReset visitor; |
| 179 QuicFramer framer(QuicSupportedVersions(), QuicTime::Zero(), | 179 QuicFramer framer(AllSupportedVersions(), QuicTime::Zero(), |
| 180 Perspective::IS_CLIENT); | 180 Perspective::IS_CLIENT); |
| 181 framer.set_visitor(&visitor); | 181 framer.set_visitor(&visitor); |
| 182 QuicEncryptedPacket encrypted(std::tr1::get<0>(packet_buffer), | 182 QuicEncryptedPacket encrypted(std::tr1::get<0>(packet_buffer), |
| 183 std::tr1::get<1>(packet_buffer)); | 183 std::tr1::get<1>(packet_buffer)); |
| 184 framer.ProcessPacket(encrypted); | 184 framer.ProcessPacket(encrypted); |
| 185 QuicPublicResetPacket packet = visitor.public_reset_packet(); | 185 QuicPublicResetPacket packet = visitor.public_reset_packet(); |
| 186 return connection_id_ == packet.public_header.connection_id && | 186 return connection_id_ == packet.public_header.connection_id && |
| 187 packet.public_header.reset_flag && | 187 packet.public_header.reset_flag && |
| 188 !packet.public_header.version_flag && | 188 !packet.public_header.version_flag && |
| 189 packet_number_ == packet.rejected_packet_number && | 189 packet_number_ == packet.rejected_packet_number && |
| (...skipping 29 matching lines...) Expand all Loading... |
| 219 EXPECT_FALSE(IsConnectionIdInTimeWait(connection_id_)); | 219 EXPECT_FALSE(IsConnectionIdInTimeWait(connection_id_)); |
| 220 EXPECT_CALL(visitor_, OnConnectionAddedToTimeWaitList(connection_id_)); | 220 EXPECT_CALL(visitor_, OnConnectionAddedToTimeWaitList(connection_id_)); |
| 221 AddStatelessConnectionId(connection_id_); | 221 AddStatelessConnectionId(connection_id_); |
| 222 EXPECT_EQ(1u, time_wait_list_manager_.num_connections()); | 222 EXPECT_EQ(1u, time_wait_list_manager_.num_connections()); |
| 223 EXPECT_TRUE(IsConnectionIdInTimeWait(connection_id_)); | 223 EXPECT_TRUE(IsConnectionIdInTimeWait(connection_id_)); |
| 224 } | 224 } |
| 225 | 225 |
| 226 TEST_F(QuicTimeWaitListManagerTest, SendVersionNegotiationPacket) { | 226 TEST_F(QuicTimeWaitListManagerTest, SendVersionNegotiationPacket) { |
| 227 std::unique_ptr<QuicEncryptedPacket> packet( | 227 std::unique_ptr<QuicEncryptedPacket> packet( |
| 228 QuicFramer::BuildVersionNegotiationPacket(connection_id_, | 228 QuicFramer::BuildVersionNegotiationPacket(connection_id_, |
| 229 QuicSupportedVersions())); | 229 AllSupportedVersions())); |
| 230 EXPECT_CALL(writer_, | 230 EXPECT_CALL(writer_, |
| 231 WritePacket(_, packet->length(), server_address_.address(), | 231 WritePacket(_, packet->length(), server_address_.address(), |
| 232 client_address_, _)) | 232 client_address_, _)) |
| 233 .WillOnce(Return(WriteResult(WRITE_STATUS_OK, 1))); | 233 .WillOnce(Return(WriteResult(WRITE_STATUS_OK, 1))); |
| 234 | 234 |
| 235 time_wait_list_manager_.SendVersionNegotiationPacket( | 235 time_wait_list_manager_.SendVersionNegotiationPacket( |
| 236 connection_id_, QuicSupportedVersions(), server_address_, | 236 connection_id_, AllSupportedVersions(), server_address_, client_address_); |
| 237 client_address_); | |
| 238 EXPECT_EQ(0u, time_wait_list_manager_.num_connections()); | 237 EXPECT_EQ(0u, time_wait_list_manager_.num_connections()); |
| 239 } | 238 } |
| 240 | 239 |
| 241 TEST_F(QuicTimeWaitListManagerTest, SendConnectionClose) { | 240 TEST_F(QuicTimeWaitListManagerTest, SendConnectionClose) { |
| 242 const size_t kConnectionCloseLength = 100; | 241 const size_t kConnectionCloseLength = 100; |
| 243 EXPECT_CALL(visitor_, OnConnectionAddedToTimeWaitList(connection_id_)); | 242 EXPECT_CALL(visitor_, OnConnectionAddedToTimeWaitList(connection_id_)); |
| 244 std::vector<std::unique_ptr<QuicEncryptedPacket>> termination_packets; | 243 std::vector<std::unique_ptr<QuicEncryptedPacket>> termination_packets; |
| 245 termination_packets.push_back( | 244 termination_packets.push_back( |
| 246 std::unique_ptr<QuicEncryptedPacket>(new QuicEncryptedPacket( | 245 std::unique_ptr<QuicEncryptedPacket>(new QuicEncryptedPacket( |
| 247 new char[kConnectionCloseLength], kConnectionCloseLength, true))); | 246 new char[kConnectionCloseLength], kConnectionCloseLength, true))); |
| (...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 551 EXPECT_EQ(static_cast<size_t>(FLAGS_quic_time_wait_list_max_connections), | 550 EXPECT_EQ(static_cast<size_t>(FLAGS_quic_time_wait_list_max_connections), |
| 552 time_wait_list_manager_.num_connections()); | 551 time_wait_list_manager_.num_connections()); |
| 553 EXPECT_FALSE(IsConnectionIdInTimeWait(id_to_evict)); | 552 EXPECT_FALSE(IsConnectionIdInTimeWait(id_to_evict)); |
| 554 EXPECT_TRUE(IsConnectionIdInTimeWait(current_connection_id)); | 553 EXPECT_TRUE(IsConnectionIdInTimeWait(current_connection_id)); |
| 555 } | 554 } |
| 556 } | 555 } |
| 557 | 556 |
| 558 } // namespace | 557 } // namespace |
| 559 } // namespace test | 558 } // namespace test |
| 560 } // namespace net | 559 } // namespace net |
| OLD | NEW |