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/socket/transport_client_socket_pool.h" | 5 #include "net/socket/transport_client_socket_pool.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 } | 64 } |
65 virtual bool IsConnectedAndIdle() const { | 65 virtual bool IsConnectedAndIdle() const { |
66 return connected_; | 66 return connected_; |
67 } | 67 } |
68 virtual int GetPeerAddress(IPEndPoint* address) const { | 68 virtual int GetPeerAddress(IPEndPoint* address) const { |
69 return ERR_UNEXPECTED; | 69 return ERR_UNEXPECTED; |
70 } | 70 } |
71 virtual int GetLocalAddress(IPEndPoint* address) const { | 71 virtual int GetLocalAddress(IPEndPoint* address) const { |
72 if (!connected_) | 72 if (!connected_) |
73 return ERR_SOCKET_NOT_CONNECTED; | 73 return ERR_SOCKET_NOT_CONNECTED; |
74 if (addrlist_.front().GetFamily() == AF_INET) | 74 if (addrlist_.front().GetFamily() == ADDRESS_FAMILY_IPV4) |
75 SetIPv4Address(address); | 75 SetIPv4Address(address); |
76 else | 76 else |
77 SetIPv6Address(address); | 77 SetIPv6Address(address); |
78 return OK; | 78 return OK; |
79 } | 79 } |
80 virtual const BoundNetLog& NetLog() const { | 80 virtual const BoundNetLog& NetLog() const { |
81 return net_log_; | 81 return net_log_; |
82 } | 82 } |
83 | 83 |
84 virtual void SetSubresourceSpeculation() {} | 84 virtual void SetSubresourceSpeculation() {} |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 } | 215 } |
216 virtual bool IsConnectedAndIdle() const { | 216 virtual bool IsConnectedAndIdle() const { |
217 return is_connected_; | 217 return is_connected_; |
218 } | 218 } |
219 virtual int GetPeerAddress(IPEndPoint* address) const { | 219 virtual int GetPeerAddress(IPEndPoint* address) const { |
220 return ERR_UNEXPECTED; | 220 return ERR_UNEXPECTED; |
221 } | 221 } |
222 virtual int GetLocalAddress(IPEndPoint* address) const { | 222 virtual int GetLocalAddress(IPEndPoint* address) const { |
223 if (!is_connected_) | 223 if (!is_connected_) |
224 return ERR_SOCKET_NOT_CONNECTED; | 224 return ERR_SOCKET_NOT_CONNECTED; |
225 if (addrlist_.front().GetFamily() == AF_INET) | 225 if (addrlist_.front().GetFamily() == ADDRESS_FAMILY_IPV4) |
226 SetIPv4Address(address); | 226 SetIPv4Address(address); |
227 else | 227 else |
228 SetIPv6Address(address); | 228 SetIPv6Address(address); |
229 return OK; | 229 return OK; |
230 } | 230 } |
231 virtual const BoundNetLog& NetLog() const { | 231 virtual const BoundNetLog& NetLog() const { |
232 return net_log_; | 232 return net_log_; |
233 } | 233 } |
234 | 234 |
235 virtual void SetSubresourceSpeculation() {} | 235 virtual void SetSubresourceSpeculation() {} |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
461 IPEndPoint addrlist_v6_2(ip_number, 80); | 461 IPEndPoint addrlist_v6_2(ip_number, 80); |
462 | 462 |
463 AddressList addrlist; | 463 AddressList addrlist; |
464 | 464 |
465 // Test 1: IPv4 only. Expect no change. | 465 // Test 1: IPv4 only. Expect no change. |
466 addrlist.clear(); | 466 addrlist.clear(); |
467 addrlist.push_back(addrlist_v4_1); | 467 addrlist.push_back(addrlist_v4_1); |
468 addrlist.push_back(addrlist_v4_2); | 468 addrlist.push_back(addrlist_v4_2); |
469 TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); | 469 TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); |
470 ASSERT_EQ(2u, addrlist.size()); | 470 ASSERT_EQ(2u, addrlist.size()); |
471 EXPECT_EQ(AF_INET, addrlist[0].GetFamily()); | 471 EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[0].GetFamily()); |
472 EXPECT_EQ(AF_INET, addrlist[1].GetFamily()); | 472 EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[1].GetFamily()); |
473 | 473 |
474 // Test 2: IPv6 only. Expect no change. | 474 // Test 2: IPv6 only. Expect no change. |
475 addrlist.clear(); | 475 addrlist.clear(); |
476 addrlist.push_back(addrlist_v6_1); | 476 addrlist.push_back(addrlist_v6_1); |
477 addrlist.push_back(addrlist_v6_2); | 477 addrlist.push_back(addrlist_v6_2); |
478 TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); | 478 TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); |
479 ASSERT_EQ(2u, addrlist.size()); | 479 ASSERT_EQ(2u, addrlist.size()); |
480 EXPECT_EQ(AF_INET6, addrlist[0].GetFamily()); | 480 EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[0].GetFamily()); |
481 EXPECT_EQ(AF_INET6, addrlist[1].GetFamily()); | 481 EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[1].GetFamily()); |
482 | 482 |
483 // Test 3: IPv4 then IPv6. Expect no change. | 483 // Test 3: IPv4 then IPv6. Expect no change. |
484 addrlist.clear(); | 484 addrlist.clear(); |
485 addrlist.push_back(addrlist_v4_1); | 485 addrlist.push_back(addrlist_v4_1); |
486 addrlist.push_back(addrlist_v4_2); | 486 addrlist.push_back(addrlist_v4_2); |
487 addrlist.push_back(addrlist_v6_1); | 487 addrlist.push_back(addrlist_v6_1); |
488 addrlist.push_back(addrlist_v6_2); | 488 addrlist.push_back(addrlist_v6_2); |
489 TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); | 489 TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); |
490 ASSERT_EQ(4u, addrlist.size()); | 490 ASSERT_EQ(4u, addrlist.size()); |
491 EXPECT_EQ(AF_INET, addrlist[0].GetFamily()); | 491 EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[0].GetFamily()); |
492 EXPECT_EQ(AF_INET, addrlist[1].GetFamily()); | 492 EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[1].GetFamily()); |
493 EXPECT_EQ(AF_INET6, addrlist[2].GetFamily()); | 493 EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[2].GetFamily()); |
494 EXPECT_EQ(AF_INET6, addrlist[3].GetFamily()); | 494 EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[3].GetFamily()); |
495 | 495 |
496 // Test 4: IPv6, IPv4, IPv6, IPv4. Expect first IPv6 moved to the end. | 496 // Test 4: IPv6, IPv4, IPv6, IPv4. Expect first IPv6 moved to the end. |
497 addrlist.clear(); | 497 addrlist.clear(); |
498 addrlist.push_back(addrlist_v6_1); | 498 addrlist.push_back(addrlist_v6_1); |
499 addrlist.push_back(addrlist_v4_1); | 499 addrlist.push_back(addrlist_v4_1); |
500 addrlist.push_back(addrlist_v6_2); | 500 addrlist.push_back(addrlist_v6_2); |
501 addrlist.push_back(addrlist_v4_2); | 501 addrlist.push_back(addrlist_v4_2); |
502 TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); | 502 TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); |
503 ASSERT_EQ(4u, addrlist.size()); | 503 ASSERT_EQ(4u, addrlist.size()); |
504 EXPECT_EQ(AF_INET, addrlist[0].GetFamily()); | 504 EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[0].GetFamily()); |
505 EXPECT_EQ(AF_INET6, addrlist[1].GetFamily()); | 505 EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[1].GetFamily()); |
506 EXPECT_EQ(AF_INET, addrlist[2].GetFamily()); | 506 EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[2].GetFamily()); |
507 EXPECT_EQ(AF_INET6, addrlist[3].GetFamily()); | 507 EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[3].GetFamily()); |
508 | 508 |
509 // Test 5: IPv6, IPv6, IPv4, IPv4. Expect first two IPv6's moved to the end. | 509 // Test 5: IPv6, IPv6, IPv4, IPv4. Expect first two IPv6's moved to the end. |
510 addrlist.clear(); | 510 addrlist.clear(); |
511 addrlist.push_back(addrlist_v6_1); | 511 addrlist.push_back(addrlist_v6_1); |
512 addrlist.push_back(addrlist_v6_2); | 512 addrlist.push_back(addrlist_v6_2); |
513 addrlist.push_back(addrlist_v4_1); | 513 addrlist.push_back(addrlist_v4_1); |
514 addrlist.push_back(addrlist_v4_2); | 514 addrlist.push_back(addrlist_v4_2); |
515 TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); | 515 TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); |
516 ASSERT_EQ(4u, addrlist.size()); | 516 ASSERT_EQ(4u, addrlist.size()); |
517 EXPECT_EQ(AF_INET, addrlist[0].GetFamily()); | 517 EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[0].GetFamily()); |
518 EXPECT_EQ(AF_INET, addrlist[1].GetFamily()); | 518 EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[1].GetFamily()); |
519 EXPECT_EQ(AF_INET6, addrlist[2].GetFamily()); | 519 EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[2].GetFamily()); |
520 EXPECT_EQ(AF_INET6, addrlist[3].GetFamily()); | 520 EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[3].GetFamily()); |
521 } | 521 } |
522 | 522 |
523 TEST_F(TransportClientSocketPoolTest, Basic) { | 523 TEST_F(TransportClientSocketPoolTest, Basic) { |
524 TestCompletionCallback callback; | 524 TestCompletionCallback callback; |
525 ClientSocketHandle handle; | 525 ClientSocketHandle handle; |
526 int rv = handle.Init("a", low_params_, LOW, callback.callback(), &pool_, | 526 int rv = handle.Init("a", low_params_, LOW, callback.callback(), &pool_, |
527 BoundNetLog()); | 527 BoundNetLog()); |
528 EXPECT_EQ(ERR_IO_PENDING, rv); | 528 EXPECT_EQ(ERR_IO_PENDING, rv); |
529 EXPECT_FALSE(handle.is_initialized()); | 529 EXPECT_FALSE(handle.is_initialized()); |
530 EXPECT_FALSE(handle.socket()); | 530 EXPECT_FALSE(handle.socket()); |
(...skipping 743 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1274 EXPECT_TRUE(handle.socket()); | 1274 EXPECT_TRUE(handle.socket()); |
1275 IPEndPoint endpoint; | 1275 IPEndPoint endpoint; |
1276 handle.socket()->GetLocalAddress(&endpoint); | 1276 handle.socket()->GetLocalAddress(&endpoint); |
1277 EXPECT_EQ(kIPv4AddressSize, endpoint.address().size()); | 1277 EXPECT_EQ(kIPv4AddressSize, endpoint.address().size()); |
1278 EXPECT_EQ(1, client_socket_factory_.allocation_count()); | 1278 EXPECT_EQ(1, client_socket_factory_.allocation_count()); |
1279 } | 1279 } |
1280 | 1280 |
1281 } // namespace | 1281 } // namespace |
1282 | 1282 |
1283 } // namespace net | 1283 } // namespace net |
OLD | NEW |