| 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 "ppapi/tests/test_net_address_private.h" | 5 #include "ppapi/tests/test_net_address_private.h" |
| 6 | 6 |
| 7 #include <string.h> | 7 #include <string.h> |
| 8 | 8 |
| 9 #include "base/logging.h" |
| 10 |
| 9 #include "ppapi/cpp/private/net_address_private.h" | 11 #include "ppapi/cpp/private/net_address_private.h" |
| 10 #include "ppapi/c/private/ppb_net_address_private.h" | 12 #include "ppapi/c/private/ppb_net_address_private.h" |
| 11 #include "ppapi/tests/test_utils.h" | 13 #include "ppapi/tests/test_utils.h" |
| 12 #include "ppapi/tests/testing_instance.h" | 14 #include "ppapi/tests/testing_instance.h" |
| 13 | 15 |
| 14 // Other than |GetAnyAddress()|, there's no way to actually get | |
| 15 // |PP_NetAddress_Private| structs from just this interface. We'll cheat and | |
| 16 // synthesize some. | |
| 17 | |
| 18 #if defined(PPAPI_POSIX) | |
| 19 #include <arpa/inet.h> | |
| 20 #include <netdb.h> | |
| 21 #include <netinet/in.h> | |
| 22 #include <sys/socket.h> | |
| 23 #endif | |
| 24 | |
| 25 #if defined(PPAPI_OS_MACOSX) | |
| 26 // This is a bit evil, but it's standard operating procedure for |s6_addr|.... | |
| 27 #define s6_addr16 __u6_addr.__u6_addr16 | |
| 28 #endif | |
| 29 | |
| 30 #if defined(PPAPI_OS_WIN) | |
| 31 #include <ws2tcpip.h> | |
| 32 | |
| 33 #define s6_addr16 u.Word | |
| 34 #endif | |
| 35 | |
| 36 using pp::NetAddressPrivate; | 16 using pp::NetAddressPrivate; |
| 37 | 17 |
| 38 namespace { | 18 namespace { |
| 39 | 19 |
| 40 // |host| should be an IP address represented as text, e.g., "192.168.0.1". | 20 PP_NetAddress_Private MakeIPv4NetAddress(const uint8_t host[4], int port) { |
| 41 PP_NetAddress_Private MakeIPv4NetAddress(const char* host, int port) { | 21 PP_NetAddress_Private addr; |
| 42 PP_NetAddress_Private addr = PP_NetAddress_Private(); | 22 NetAddressPrivate::CreateFromIPv4Address( |
| 43 addr.size = sizeof(sockaddr_in); | 23 reinterpret_cast<const uint8_t*>(host), port, &addr); |
| 44 sockaddr_in* a = reinterpret_cast<sockaddr_in*>(addr.data); | |
| 45 a->sin_family = AF_INET; | |
| 46 a->sin_port = htons(port); | |
| 47 a->sin_addr.s_addr = inet_addr(host); | |
| 48 return addr; | 24 return addr; |
| 49 } | 25 } |
| 50 | 26 |
| 51 // |host| should be an array of eight 16-bit numbers. | 27 PP_NetAddress_Private MakeIPv6NetAddress(const uint16_t host[8], uint16_t port, |
| 52 PP_NetAddress_Private MakeIPv6NetAddress(const uint16_t host[], uint16_t port, | |
| 53 uint32_t scope_id) { | 28 uint32_t scope_id) { |
| 54 PP_NetAddress_Private addr = PP_NetAddress_Private(); | 29 PP_NetAddress_Private addr = PP_NetAddress_Private(); |
| 55 addr.size = sizeof(sockaddr_in6); | 30 uint8_t ip[16]; |
| 56 sockaddr_in6* a = reinterpret_cast<sockaddr_in6*>(addr.data); | 31 for(int i = 0; i < 8; ++i) { |
| 57 a->sin6_family = AF_INET6; | 32 ip[i * 2] = host[i] >> 8; |
| 58 a->sin6_port = htons(port); | 33 ip[i * 2 + 1] = host[i] & 0xFF; |
| 59 a->sin6_flowinfo = 0; | 34 } |
| 60 for (int i = 0; i < 8; i++) | 35 NetAddressPrivate::CreateFromIPv6Address(ip, scope_id, port, &addr); |
| 61 a->sin6_addr.s6_addr16[i] = htons(host[i]); | |
| 62 a->sin6_scope_id = scope_id; | |
| 63 return addr; | 36 return addr; |
| 64 } | 37 } |
| 65 | 38 |
| 66 } // namespace | 39 } // namespace |
| 67 | 40 |
| 68 REGISTER_TEST_CASE(NetAddressPrivate); | 41 REGISTER_TEST_CASE(NetAddressPrivate); |
| 69 | 42 |
| 70 TestNetAddressPrivate::TestNetAddressPrivate(TestingInstance* instance) | 43 TestNetAddressPrivate::TestNetAddressPrivate(TestingInstance* instance) |
| 71 : TestCase(instance) { | 44 : TestCase(instance) { |
| 72 } | 45 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 85 RUN_TEST(GetFamily, filter); | 58 RUN_TEST(GetFamily, filter); |
| 86 RUN_TEST(GetPort, filter); | 59 RUN_TEST(GetPort, filter); |
| 87 RUN_TEST(GetAddress, filter); | 60 RUN_TEST(GetAddress, filter); |
| 88 } | 61 } |
| 89 | 62 |
| 90 std::string TestNetAddressPrivate::TestAreEqual() { | 63 std::string TestNetAddressPrivate::TestAreEqual() { |
| 91 // No comparisons should ever be done with invalid addresses. | 64 // No comparisons should ever be done with invalid addresses. |
| 92 PP_NetAddress_Private invalid = PP_NetAddress_Private(); | 65 PP_NetAddress_Private invalid = PP_NetAddress_Private(); |
| 93 ASSERT_FALSE(NetAddressPrivate::AreEqual(invalid, invalid)); | 66 ASSERT_FALSE(NetAddressPrivate::AreEqual(invalid, invalid)); |
| 94 | 67 |
| 95 PP_NetAddress_Private localhost_80 = MakeIPv4NetAddress("127.0.0.1", 80); | 68 uint8_t localhost_ip[4] = {127, 0, 0, 1}; |
| 69 PP_NetAddress_Private localhost_80 = MakeIPv4NetAddress(localhost_ip, 80); |
| 96 ASSERT_TRUE(NetAddressPrivate::AreEqual(localhost_80, localhost_80)); | 70 ASSERT_TRUE(NetAddressPrivate::AreEqual(localhost_80, localhost_80)); |
| 97 ASSERT_FALSE(NetAddressPrivate::AreEqual(localhost_80, invalid)); | 71 ASSERT_FALSE(NetAddressPrivate::AreEqual(localhost_80, invalid)); |
| 98 | 72 |
| 99 PP_NetAddress_Private localhost_1234 = MakeIPv4NetAddress("127.0.0.1", 1234); | 73 PP_NetAddress_Private localhost_1234 = MakeIPv4NetAddress(localhost_ip, 1234); |
| 100 ASSERT_FALSE(NetAddressPrivate::AreEqual(localhost_80, localhost_1234)); | 74 ASSERT_FALSE(NetAddressPrivate::AreEqual(localhost_80, localhost_1234)); |
| 101 | 75 |
| 102 PP_NetAddress_Private other_80 = MakeIPv4NetAddress("192.168.0.1", 80); | 76 uint8_t other_ip[4] = {192, 168, 0, 1}; |
| 77 PP_NetAddress_Private other_80 = MakeIPv4NetAddress(other_ip, 80); |
| 103 ASSERT_FALSE(NetAddressPrivate::AreEqual(localhost_80, other_80)); | 78 ASSERT_FALSE(NetAddressPrivate::AreEqual(localhost_80, other_80)); |
| 104 | 79 |
| 105 PASS(); | 80 PASS(); |
| 106 } | 81 } |
| 107 | 82 |
| 108 std::string TestNetAddressPrivate::TestAreHostsEqual() { | 83 std::string TestNetAddressPrivate::TestAreHostsEqual() { |
| 109 // No comparisons should ever be done with invalid addresses. | 84 // No comparisons should ever be done with invalid addresses. |
| 110 PP_NetAddress_Private invalid = PP_NetAddress_Private(); | 85 PP_NetAddress_Private invalid = PP_NetAddress_Private(); |
| 111 ASSERT_FALSE(NetAddressPrivate::AreHostsEqual(invalid, invalid)); | 86 ASSERT_FALSE(NetAddressPrivate::AreHostsEqual(invalid, invalid)); |
| 112 | 87 |
| 113 PP_NetAddress_Private localhost_80 = MakeIPv4NetAddress("127.0.0.1", 80); | 88 uint8_t localhost_ip[4] = {127, 0, 0, 1}; |
| 89 PP_NetAddress_Private localhost_80 = MakeIPv4NetAddress(localhost_ip, 80); |
| 114 ASSERT_TRUE(NetAddressPrivate::AreHostsEqual(localhost_80, localhost_80)); | 90 ASSERT_TRUE(NetAddressPrivate::AreHostsEqual(localhost_80, localhost_80)); |
| 115 ASSERT_FALSE(NetAddressPrivate::AreHostsEqual(localhost_80, invalid)); | 91 ASSERT_FALSE(NetAddressPrivate::AreHostsEqual(localhost_80, invalid)); |
| 116 | 92 |
| 117 PP_NetAddress_Private localhost_1234 = MakeIPv4NetAddress("127.0.0.1", 1234); | 93 PP_NetAddress_Private localhost_1234 = MakeIPv4NetAddress(localhost_ip, 1234); |
| 118 ASSERT_TRUE(NetAddressPrivate::AreHostsEqual(localhost_80, localhost_1234)); | 94 ASSERT_TRUE(NetAddressPrivate::AreHostsEqual(localhost_80, localhost_1234)); |
| 119 | 95 |
| 120 PP_NetAddress_Private other_80 = MakeIPv4NetAddress("192.168.0.1", 80); | 96 uint8_t other_ip[4] = {192, 168, 0, 1}; |
| 97 PP_NetAddress_Private other_80 = MakeIPv4NetAddress(other_ip, 80); |
| 121 ASSERT_FALSE(NetAddressPrivate::AreHostsEqual(localhost_80, other_80)); | 98 ASSERT_FALSE(NetAddressPrivate::AreHostsEqual(localhost_80, other_80)); |
| 122 | 99 |
| 123 PASS(); | 100 PASS(); |
| 124 } | 101 } |
| 125 | 102 |
| 126 std::string TestNetAddressPrivate::TestDescribe() { | 103 std::string TestNetAddressPrivate::TestDescribe() { |
| 127 PP_NetAddress_Private invalid = PP_NetAddress_Private(); | 104 PP_NetAddress_Private invalid = PP_NetAddress_Private(); |
| 128 ASSERT_EQ("", NetAddressPrivate::Describe(invalid, false)); | 105 ASSERT_EQ("", NetAddressPrivate::Describe(invalid, false)); |
| 129 ASSERT_EQ("", NetAddressPrivate::Describe(invalid, true)); | 106 ASSERT_EQ("", NetAddressPrivate::Describe(invalid, true)); |
| 130 | 107 |
| 131 PP_NetAddress_Private localhost_80 = MakeIPv4NetAddress("127.0.0.1", 80); | 108 uint8_t localhost_ip[4] = {127, 0, 0, 1}; |
| 109 PP_NetAddress_Private localhost_80 = MakeIPv4NetAddress(localhost_ip, 80); |
| 132 ASSERT_EQ("127.0.0.1", NetAddressPrivate::Describe(localhost_80, false)); | 110 ASSERT_EQ("127.0.0.1", NetAddressPrivate::Describe(localhost_80, false)); |
| 133 ASSERT_EQ("127.0.0.1:80", NetAddressPrivate::Describe(localhost_80, true)); | 111 ASSERT_EQ("127.0.0.1:80", NetAddressPrivate::Describe(localhost_80, true)); |
| 134 | 112 |
| 135 PP_NetAddress_Private localhost_1234 = MakeIPv4NetAddress("127.0.0.1", 1234); | 113 PP_NetAddress_Private localhost_1234 = MakeIPv4NetAddress(localhost_ip, 1234); |
| 136 ASSERT_EQ("127.0.0.1", NetAddressPrivate::Describe(localhost_1234, false)); | 114 ASSERT_EQ("127.0.0.1", NetAddressPrivate::Describe(localhost_1234, false)); |
| 137 ASSERT_EQ("127.0.0.1:1234", NetAddressPrivate::Describe(localhost_1234, | 115 ASSERT_EQ("127.0.0.1:1234", NetAddressPrivate::Describe(localhost_1234, |
| 138 true)); | 116 true)); |
| 139 | 117 |
| 140 PP_NetAddress_Private other_80 = MakeIPv4NetAddress("192.168.0.1", 80); | 118 uint8_t other_ip[4] = {192, 168, 0, 1}; |
| 119 PP_NetAddress_Private other_80 = MakeIPv4NetAddress(other_ip, 80); |
| 141 ASSERT_EQ("192.168.0.1", NetAddressPrivate::Describe(other_80, false)); | 120 ASSERT_EQ("192.168.0.1", NetAddressPrivate::Describe(other_80, false)); |
| 142 ASSERT_EQ("192.168.0.1:80", NetAddressPrivate::Describe(other_80, true)); | 121 ASSERT_EQ("192.168.0.1:80", NetAddressPrivate::Describe(other_80, true)); |
| 143 | 122 |
| 144 PASS(); | 123 PASS(); |
| 145 } | 124 } |
| 146 | 125 |
| 147 std::string TestNetAddressPrivate::TestReplacePort() { | 126 std::string TestNetAddressPrivate::TestReplacePort() { |
| 148 // Assume that |AreEqual()| works correctly. | 127 // Assume that |AreEqual()| works correctly. |
| 149 PP_NetAddress_Private result = PP_NetAddress_Private(); | 128 PP_NetAddress_Private result = PP_NetAddress_Private(); |
| 150 | 129 |
| 151 PP_NetAddress_Private invalid = PP_NetAddress_Private(); | 130 PP_NetAddress_Private invalid = PP_NetAddress_Private(); |
| 152 ASSERT_FALSE(NetAddressPrivate::ReplacePort(invalid, 1234, &result)); | 131 ASSERT_FALSE(NetAddressPrivate::ReplacePort(invalid, 1234, &result)); |
| 153 | 132 |
| 154 PP_NetAddress_Private localhost_80 = MakeIPv4NetAddress("127.0.0.1", 80); | 133 uint8_t localhost_ip[4] = {127, 0, 0, 1}; |
| 134 PP_NetAddress_Private localhost_80 = MakeIPv4NetAddress(localhost_ip, 80); |
| 155 ASSERT_TRUE(NetAddressPrivate::ReplacePort(localhost_80, 1234, &result)); | 135 ASSERT_TRUE(NetAddressPrivate::ReplacePort(localhost_80, 1234, &result)); |
| 156 PP_NetAddress_Private localhost_1234 = MakeIPv4NetAddress("127.0.0.1", 1234); | 136 PP_NetAddress_Private localhost_1234 = MakeIPv4NetAddress(localhost_ip, 1234); |
| 157 ASSERT_TRUE(NetAddressPrivate::AreEqual(result, localhost_1234)); | 137 ASSERT_TRUE(NetAddressPrivate::AreEqual(result, localhost_1234)); |
| 158 | 138 |
| 159 // Test that having the out param being the same as the in param works | 139 // Test that having the out param being the same as the in param works |
| 160 // properly. | 140 // properly. |
| 161 ASSERT_TRUE(NetAddressPrivate::ReplacePort(result, 80, &result)); | 141 ASSERT_TRUE(NetAddressPrivate::ReplacePort(result, 80, &result)); |
| 162 ASSERT_TRUE(NetAddressPrivate::AreEqual(result, localhost_80)); | 142 ASSERT_TRUE(NetAddressPrivate::AreEqual(result, localhost_80)); |
| 163 | 143 |
| 164 PASS(); | 144 PASS(); |
| 165 } | 145 } |
| 166 | 146 |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 ASSERT_EQ(test_cases[i].expected_without_port, | 224 ASSERT_EQ(test_cases[i].expected_without_port, |
| 245 NetAddressPrivate::Describe(addr, false)); | 225 NetAddressPrivate::Describe(addr, false)); |
| 246 ASSERT_EQ(test_cases[i].expected_with_port, | 226 ASSERT_EQ(test_cases[i].expected_with_port, |
| 247 NetAddressPrivate::Describe(addr, true)); | 227 NetAddressPrivate::Describe(addr, true)); |
| 248 } | 228 } |
| 249 | 229 |
| 250 PASS(); | 230 PASS(); |
| 251 } | 231 } |
| 252 | 232 |
| 253 std::string TestNetAddressPrivate::TestGetFamily() { | 233 std::string TestNetAddressPrivate::TestGetFamily() { |
| 254 PP_NetAddress_Private ipv4 = MakeIPv4NetAddress("127.0.0.1", 80); | 234 uint8_t localhost_ip[4] = {127, 0, 0, 1}; |
| 235 PP_NetAddress_Private ipv4 = MakeIPv4NetAddress(localhost_ip, 80); |
| 255 ASSERT_EQ(NetAddressPrivate::GetFamily(ipv4), PP_NETADDRESSFAMILY_IPV4); | 236 ASSERT_EQ(NetAddressPrivate::GetFamily(ipv4), PP_NETADDRESSFAMILY_IPV4); |
| 256 | 237 |
| 257 uint16_t ipv6_address[8] = { 0x1234, 0xabcd, 0, 0, 0xff, 0, 0, 0xcdef }; | 238 uint16_t ipv6_address[8] = { 0x1234, 0xabcd, 0, 0, 0xff, 0, 0, 0xcdef }; |
| 258 PP_NetAddress_Private ipv6 = MakeIPv6NetAddress(ipv6_address, | 239 PP_NetAddress_Private ipv6 = MakeIPv6NetAddress(ipv6_address, 123, 0); |
| 259 123, | |
| 260 0); | |
| 261 ASSERT_EQ(NetAddressPrivate::GetFamily(ipv6), PP_NETADDRESSFAMILY_IPV6); | 240 ASSERT_EQ(NetAddressPrivate::GetFamily(ipv6), PP_NETADDRESSFAMILY_IPV6); |
| 262 | 241 |
| 263 PASS(); | 242 PASS(); |
| 264 } | 243 } |
| 265 | 244 |
| 266 std::string TestNetAddressPrivate::TestGetPort() { | 245 std::string TestNetAddressPrivate::TestGetPort() { |
| 267 PP_NetAddress_Private localhost_80 = MakeIPv4NetAddress("127.0.0.1", 80); | 246 uint8_t localhost_ip[4] = {127, 0, 0, 1}; |
| 247 PP_NetAddress_Private localhost_80 = MakeIPv4NetAddress(localhost_ip, 80); |
| 268 ASSERT_EQ(NetAddressPrivate::GetPort(localhost_80), 80); | 248 ASSERT_EQ(NetAddressPrivate::GetPort(localhost_80), 80); |
| 269 | 249 |
| 270 uint16_t ipv6_address[8] = { 0x1234, 0xabcd, 0, 0, 0xff, 0, 0, 0xcdef }; | 250 uint16_t ipv6_address[8] = { 0x1234, 0xabcd, 0, 0, 0xff, 0, 0, 0xcdef }; |
| 271 | 251 |
| 272 PP_NetAddress_Private port_123 = MakeIPv6NetAddress(ipv6_address, 123, 0); | 252 PP_NetAddress_Private port_123 = MakeIPv6NetAddress(ipv6_address, 123, 0); |
| 273 ASSERT_EQ(NetAddressPrivate::GetPort(port_123), 123); | 253 ASSERT_EQ(NetAddressPrivate::GetPort(port_123), 123); |
| 274 | 254 |
| 275 PP_NetAddress_Private port_FFFF = MakeIPv6NetAddress(ipv6_address, | 255 PP_NetAddress_Private port_FFFF = MakeIPv6NetAddress(ipv6_address, |
| 276 0xFFFF, | 256 0xFFFF, |
| 277 0); | 257 0); |
| 278 ASSERT_EQ(NetAddressPrivate::GetPort(port_FFFF), 0xFFFF); | 258 ASSERT_EQ(NetAddressPrivate::GetPort(port_FFFF), 0xFFFF); |
| 279 | 259 |
| 280 PASS(); | 260 PASS(); |
| 281 } | 261 } |
| 282 | 262 |
| 283 std::string TestNetAddressPrivate::TestGetAddress() { | 263 std::string TestNetAddressPrivate::TestGetAddress() { |
| 284 const int addr_storage_len = 16; | 264 const int addr_storage_len = 16; |
| 285 unsigned char addr_storage[addr_storage_len]; | 265 unsigned char addr_storage[addr_storage_len]; |
| 286 | 266 |
| 287 const char* ipv4_addr = "127.0.0.1"; | 267 const uint8_t ipv4_addr[4] = {127, 0, 0, 1}; |
| 288 uint32_t ipv4_addr_long = inet_addr(ipv4_addr); | |
| 289 PP_NetAddress_Private localhost_80 = MakeIPv4NetAddress(ipv4_addr, 80); | 268 PP_NetAddress_Private localhost_80 = MakeIPv4NetAddress(ipv4_addr, 80); |
| 290 memset(addr_storage, 0, addr_storage_len); | 269 memset(addr_storage, 0, addr_storage_len); |
| 291 ASSERT_TRUE(NetAddressPrivate::GetAddress(localhost_80, | 270 ASSERT_TRUE(NetAddressPrivate::GetAddress(localhost_80, |
| 292 addr_storage, | 271 addr_storage, |
| 293 addr_storage_len)); | 272 addr_storage_len)); |
| 294 ASSERT_EQ(memcmp(addr_storage, &ipv4_addr_long, 4), 0); | 273 ASSERT_EQ(memcmp(addr_storage, &ipv4_addr, 4), 0); |
| 295 | 274 |
| 296 // Insufficient storage for address. | 275 // Insufficient storage for address. |
| 297 ASSERT_FALSE(NetAddressPrivate::GetAddress(localhost_80, | 276 ASSERT_FALSE(NetAddressPrivate::GetAddress(localhost_80, |
| 298 addr_storage, | 277 addr_storage, |
| 299 1)); | 278 1)); |
| 300 | 279 |
| 301 uint16_t ipv6_address[8] = { 0x1234, 0xabcd, 0, 0, 0xff, 0, 0, 0xcdef }; | 280 uint16_t ipv6_address[8] = { 0x1234, 0xabcd, 0, 0, 0xff, 0, 0, 0xcdef }; |
| 302 PP_NetAddress_Private ipv6_addr = MakeIPv6NetAddress(ipv6_address, | 281 PP_NetAddress_Private ipv6_addr = MakeIPv6NetAddress(ipv6_address, |
| 303 123, | 282 123, |
| 304 0); | 283 0); |
| 305 | 284 |
| 306 // Ensure the ipv6 address is transformed properly into network order. | 285 // Ensure the ipv6 address is transformed properly into network order. |
| 307 for (int i = 0; i < 8; i++) | 286 uint8_t ipv6_bytes[16]; |
| 308 ipv6_address[i] = htons(ipv6_address[i]); | 287 for(int i = 0; i < 8; ++i) { |
| 288 ipv6_bytes[i * 2] = ipv6_address[i] >> 8; |
| 289 ipv6_bytes[i * 2 + 1] = ipv6_address[i] & 0xFF; |
| 290 } |
| 309 | 291 |
| 310 memset(addr_storage, 0, addr_storage_len); | 292 memset(addr_storage, 0, addr_storage_len); |
| 311 ASSERT_TRUE(NetAddressPrivate::GetAddress(ipv6_addr, | 293 ASSERT_TRUE(NetAddressPrivate::GetAddress(ipv6_addr, |
| 312 addr_storage, | 294 addr_storage, |
| 313 addr_storage_len)); | 295 addr_storage_len)); |
| 314 ASSERT_EQ(memcmp(addr_storage, ipv6_address, 16), 0); | 296 ASSERT_EQ(memcmp(addr_storage, ipv6_bytes, 16), 0); |
| 315 | 297 |
| 316 // Insufficient storage for address. | 298 // Insufficient storage for address. |
| 317 ASSERT_FALSE(NetAddressPrivate::GetAddress(ipv6_addr, | 299 ASSERT_FALSE(NetAddressPrivate::GetAddress(ipv6_addr, |
| 318 addr_storage, | 300 addr_storage, |
| 319 1)); | 301 1)); |
| 320 | 302 |
| 321 PASS(); | 303 PASS(); |
| 322 } | 304 } |
| OLD | NEW |