diff options
-rw-r--r-- | jingle/glue/utils.cc | 2 | ||||
-rw-r--r-- | net/base/address_list_unittest.cc | 2 | ||||
-rw-r--r-- | net/base/ip_endpoint.cc | 14 | ||||
-rw-r--r-- | net/base/ip_endpoint.h | 8 | ||||
-rw-r--r-- | net/dns/address_sorter_win.cc | 4 | ||||
-rw-r--r-- | net/dns/dns_config_service_win.cc | 4 | ||||
-rw-r--r-- | net/ftp/ftp_network_transaction.cc | 2 | ||||
-rw-r--r-- | net/socket/socks_client_socket.cc | 2 | ||||
-rw-r--r-- | net/socket/tcp_client_socket_libevent.cc | 4 | ||||
-rw-r--r-- | net/socket/tcp_client_socket_win.cc | 4 | ||||
-rw-r--r-- | net/socket/tcp_server_socket_libevent.cc | 2 | ||||
-rw-r--r-- | net/socket/tcp_server_socket_win.cc | 2 | ||||
-rw-r--r-- | net/socket/transport_client_socket_pool.cc | 8 | ||||
-rw-r--r-- | net/socket/transport_client_socket_pool_unittest.cc | 36 | ||||
-rw-r--r-- | net/udp/udp_socket_libevent.cc | 2 | ||||
-rw-r--r-- | net/udp/udp_socket_win.cc | 4 |
16 files changed, 58 insertions, 42 deletions
diff --git a/jingle/glue/utils.cc b/jingle/glue/utils.cc index 26dda92..5e8d44b 100644 --- a/jingle/glue/utils.cc +++ b/jingle/glue/utils.cc @@ -19,7 +19,7 @@ namespace jingle_glue { bool IPEndPointToSocketAddress(const net::IPEndPoint& address_chrome, talk_base::SocketAddress* address_lj) { - if (address_chrome.GetFamily() != AF_INET) { + if (address_chrome.GetFamily() != net::ADDRESS_FAMILY_IPV4) { LOG(ERROR) << "Only IPv4 addresses are supported."; return false; } diff --git a/net/base/address_list_unittest.cc b/net/base/address_list_unittest.cc index 734332e..cc94e79 100644 --- a/net/base/address_list_unittest.cc +++ b/net/base/address_list_unittest.cc @@ -68,7 +68,7 @@ TEST(AddressListTest, CreateFromAddrinfo) { ASSERT_EQ(kNumElements, list.size()); for (size_t i = 0; i < list.size(); ++i) { - EXPECT_EQ(AF_INET, list[i].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV4, list[i].GetFamily()); // Only check the first byte of the address. EXPECT_EQ(i, list[i].address()[0]); EXPECT_EQ(static_cast<int>(i << 2), list[i].port()); diff --git a/net/base/ip_endpoint.cc b/net/base/ip_endpoint.cc index 8dc8e9a..923596e 100644 --- a/net/base/ip_endpoint.cc +++ b/net/base/ip_endpoint.cc @@ -34,7 +34,19 @@ IPEndPoint::IPEndPoint(const IPEndPoint& endpoint) { port_ = endpoint.port_; } -int IPEndPoint::GetFamily() const { +AddressFamily IPEndPoint::GetFamily() const { + switch (address_.size()) { + case kIPv4AddressSize: + return ADDRESS_FAMILY_IPV4; + case kIPv6AddressSize: + return ADDRESS_FAMILY_IPV6; + default: + NOTREACHED() << "Bad IP address"; + return ADDRESS_FAMILY_UNSPECIFIED; + } +} + +int IPEndPoint::GetSockAddrFamily() const { switch (address_.size()) { case kIPv4AddressSize: return AF_INET; diff --git a/net/base/ip_endpoint.h b/net/base/ip_endpoint.h index 5969b30..1fc7e04 100644 --- a/net/base/ip_endpoint.h +++ b/net/base/ip_endpoint.h @@ -9,6 +9,7 @@ #include "base/basictypes.h" #include "base/compiler_specific.h" +#include "net/base/address_family.h" #include "net/base/net_export.h" #include "net/base/net_util.h" @@ -29,8 +30,11 @@ class NET_EXPORT IPEndPoint { const IPAddressNumber& address() const { return address_; } int port() const { return port_; } - // Returns AF_INET or AF_INET6 depending on the type of the address. - int GetFamily() const; + // Returns AddressFamily of the address. + AddressFamily GetFamily() const; + + // Returns the sockaddr family of the address, AF_INET or AF_INET6. + int GetSockAddrFamily() const; // Convert to a provided sockaddr struct. // |address| is the sockaddr to copy into. Should be at least diff --git a/net/dns/address_sorter_win.cc b/net/dns/address_sorter_win.cc index 0f1c504..3e1afa7 100644 --- a/net/dns/address_sorter_win.cc +++ b/net/dns/address_sorter_win.cc @@ -58,7 +58,7 @@ class AddressSorterWin : public AddressSorter { for (size_t i = 0; i < list.size(); ++i) { IPEndPoint ipe = list[i]; // Addresses must be sockaddr_in6. - if (ipe.GetFamily() == AF_INET) { + if (ipe.GetFamily() == ADDRESS_FAMILY_IPV4) { ipe = IPEndPoint(ConvertIPv4NumberToIPv6Number(ipe.address()), ipe.port()); } @@ -165,7 +165,7 @@ class AddressSorterWinXP : public AddressSorter { AddressList list_ipv6; for (size_t i = 0; i < list.size(); ++i) { const IPEndPoint& ipe = list[i]; - if (ipe.GetFamily() == AF_INET) { + if (ipe.GetFamily() == ADDRESS_FAMILY_IPV4) { list_ipv4.push_back(ipe); } else { list_ipv6.push_back(ipe); diff --git a/net/dns/dns_config_service_win.cc b/net/dns/dns_config_service_win.cc index 6e6496d..a4d7242 100644 --- a/net/dns/dns_config_service_win.cc +++ b/net/dns/dns_config_service_win.cc @@ -262,10 +262,10 @@ HostsParseWinResult AddLocalhostEntries(DnsHosts* hosts) { address->Address.iSockaddrLength)) { return HOSTS_PARSE_WIN_BAD_ADDRESS; } - if (!have_ipv4 && (ipe.GetFamily() == AF_INET)) { + if (!have_ipv4 && (ipe.GetFamily() == ADDRESS_FAMILY_IPV4)) { have_ipv4 = true; (*hosts)[DnsHostsKey(localname, ADDRESS_FAMILY_IPV4)] = ipe.address(); - } else if (!have_ipv6 && (ipe.GetFamily() == AF_INET6)) { + } else if (!have_ipv6 && (ipe.GetFamily() == ADDRESS_FAMILY_IPV6)) { have_ipv6 = true; (*hosts)[DnsHostsKey(localname, ADDRESS_FAMILY_IPV6)] = ipe.address(); } diff --git a/net/ftp/ftp_network_transaction.cc b/net/ftp/ftp_network_transaction.cc index c4b2181..9b8cb41 100644 --- a/net/ftp/ftp_network_transaction.cc +++ b/net/ftp/ftp_network_transaction.cc @@ -683,7 +683,7 @@ int FtpNetworkTransaction::DoCtrlConnectComplete(int result) { response_.socket_address = HostPortPair::FromIPEndPoint(ip_endpoint); next_state_ = STATE_CTRL_READ; - if (ip_endpoint.GetFamily() == AF_INET) { + if (ip_endpoint.GetFamily() == ADDRESS_FAMILY_IPV4) { // Do not use EPSV for IPv4 connections. Some servers become confused // and we time out while waiting to connect. PASV is perfectly fine for // IPv4. Note that this blacklists IPv4 not to use EPSV instead of diff --git a/net/socket/socks_client_socket.cc b/net/socket/socks_client_socket.cc index 2842fd1..16ef3bd 100644 --- a/net/socket/socks_client_socket.cc +++ b/net/socket/socks_client_socket.cc @@ -331,7 +331,7 @@ const std::string SOCKSClientSocket::BuildHandshakeWriteBuffer() const { // TODO(eroman): we only ever use the first address in the list. It would be // more robust to try all the IP addresses we have before // failing the connect attempt. - CHECK_EQ(AF_INET, endpoint.GetFamily()); + CHECK_EQ(ADDRESS_FAMILY_IPV4, endpoint.GetFamily()); CHECK_LE(endpoint.address().size(), sizeof(request.ip)); memcpy(&request.ip, &endpoint.address()[0], endpoint.address().size()); diff --git a/net/socket/tcp_client_socket_libevent.cc b/net/socket/tcp_client_socket_libevent.cc index 63d937c..d1de66d 100644 --- a/net/socket/tcp_client_socket_libevent.cc +++ b/net/socket/tcp_client_socket_libevent.cc @@ -181,7 +181,7 @@ int TCPClientSocketLibevent::Bind(const IPEndPoint& address) { return ERR_INVALID_ARGUMENT; // Create |bound_socket_| and try to bind it to |address|. - int error = CreateSocket(address.GetFamily(), &bound_socket_); + int error = CreateSocket(address.GetSockAddrFamily(), &bound_socket_); if (error) return MapSystemError(error); @@ -278,7 +278,7 @@ int TCPClientSocketLibevent::DoConnect() { bound_socket_ = kInvalidSocket; } else { // Create a non-blocking socket. - connect_os_error_ = CreateSocket(endpoint.GetFamily(), &socket_); + connect_os_error_ = CreateSocket(endpoint.GetSockAddrFamily(), &socket_); if (connect_os_error_) return MapSystemError(connect_os_error_); diff --git a/net/socket/tcp_client_socket_win.cc b/net/socket/tcp_client_socket_win.cc index 3639581..dc7fc08 100644 --- a/net/socket/tcp_client_socket_win.cc +++ b/net/socket/tcp_client_socket_win.cc @@ -383,7 +383,7 @@ int TCPClientSocketWin::Bind(const IPEndPoint& address) { return ERR_INVALID_ARGUMENT; // Create |bound_socket_| and try to bind it to |address|. - int error = CreateSocket(address.GetFamily(), &bound_socket_); + int error = CreateSocket(address.GetSockAddrFamily(), &bound_socket_); if (error) return MapSystemError(error); @@ -479,7 +479,7 @@ int TCPClientSocketWin::DoConnect() { socket_ = bound_socket_; bound_socket_ = INVALID_SOCKET; } else { - connect_os_error_ = CreateSocket(endpoint.GetFamily(), &socket_); + connect_os_error_ = CreateSocket(endpoint.GetSockAddrFamily(), &socket_); if (connect_os_error_ != 0) return MapSystemError(connect_os_error_); diff --git a/net/socket/tcp_server_socket_libevent.cc b/net/socket/tcp_server_socket_libevent.cc index 64f0096..589fd11 100644 --- a/net/socket/tcp_server_socket_libevent.cc +++ b/net/socket/tcp_server_socket_libevent.cc @@ -59,7 +59,7 @@ int TCPServerSocketLibevent::Listen(const IPEndPoint& address, int backlog) { DCHECK_GT(backlog, 0); DCHECK_EQ(socket_, kInvalidSocket); - socket_ = socket(address.GetFamily(), SOCK_STREAM, IPPROTO_TCP); + socket_ = socket(address.GetSockAddrFamily(), SOCK_STREAM, IPPROTO_TCP); if (socket_ < 0) { PLOG(ERROR) << "socket() returned an error"; return MapSystemError(errno); diff --git a/net/socket/tcp_server_socket_win.cc b/net/socket/tcp_server_socket_win.cc index 817e73a..c834506 100644 --- a/net/socket/tcp_server_socket_win.cc +++ b/net/socket/tcp_server_socket_win.cc @@ -53,7 +53,7 @@ int TCPServerSocketWin::Listen(const IPEndPoint& address, int backlog) { return ERR_FAILED; } - socket_ = socket(address.GetFamily(), SOCK_STREAM, IPPROTO_TCP); + socket_ = socket(address.GetSockAddrFamily(), SOCK_STREAM, IPPROTO_TCP); if (socket_ < 0) { PLOG(ERROR) << "socket() returned an error"; return MapSystemError(WSAGetLastError()); diff --git a/net/socket/transport_client_socket_pool.cc b/net/socket/transport_client_socket_pool.cc index 0dd4782..bc49d98 100644 --- a/net/socket/transport_client_socket_pool.cc +++ b/net/socket/transport_client_socket_pool.cc @@ -38,7 +38,7 @@ bool AddressListOnlyContainsIPv6(const AddressList& list) { DCHECK(!list.empty()); for (AddressList::const_iterator iter = list.begin(); iter != list.end(); ++iter) { - if (iter->GetFamily() != AF_INET6) + if (iter->GetFamily() != ADDRESS_FAMILY_IPV6) return false; } return true; @@ -116,7 +116,7 @@ LoadState TransportConnectJob::GetLoadState() const { // static void TransportConnectJob::MakeAddressListStartWithIPv4(AddressList* list) { for (AddressList::iterator i = list->begin(); i != list->end(); ++i) { - if (i->GetFamily() == AF_INET) { + if (i->GetFamily() == ADDRESS_FAMILY_IPV4) { std::rotate(list->begin(), i, list->end()); break; } @@ -189,7 +189,7 @@ int TransportConnectJob::DoTransportConnect() { int rv = transport_socket_->Connect( base::Bind(&TransportConnectJob::OnIOComplete, base::Unretained(this))); if (rv == ERR_IO_PENDING && - addresses_.front().GetFamily() == AF_INET6 && + addresses_.front().GetFamily() == ADDRESS_FAMILY_IPV6 && !AddressListOnlyContainsIPv6(addresses_)) { fallback_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(kIPv6FallbackTimerInMs), @@ -200,7 +200,7 @@ int TransportConnectJob::DoTransportConnect() { int TransportConnectJob::DoTransportConnectComplete(int result) { if (result == OK) { - bool is_ipv4 = addresses_.front().GetFamily() != AF_INET6; + bool is_ipv4 = addresses_.front().GetFamily() == ADDRESS_FAMILY_IPV4; DCHECK(connect_start_time_ != base::TimeTicks()); DCHECK(start_time_ != base::TimeTicks()); base::TimeTicks now = base::TimeTicks::Now(); diff --git a/net/socket/transport_client_socket_pool_unittest.cc b/net/socket/transport_client_socket_pool_unittest.cc index 12a9a7d..efeaa6e 100644 --- a/net/socket/transport_client_socket_pool_unittest.cc +++ b/net/socket/transport_client_socket_pool_unittest.cc @@ -71,7 +71,7 @@ class MockClientSocket : public StreamSocket { virtual int GetLocalAddress(IPEndPoint* address) const { if (!connected_) return ERR_SOCKET_NOT_CONNECTED; - if (addrlist_.front().GetFamily() == AF_INET) + if (addrlist_.front().GetFamily() == ADDRESS_FAMILY_IPV4) SetIPv4Address(address); else SetIPv6Address(address); @@ -222,7 +222,7 @@ class MockPendingClientSocket : public StreamSocket { virtual int GetLocalAddress(IPEndPoint* address) const { if (!is_connected_) return ERR_SOCKET_NOT_CONNECTED; - if (addrlist_.front().GetFamily() == AF_INET) + if (addrlist_.front().GetFamily() == ADDRESS_FAMILY_IPV4) SetIPv4Address(address); else SetIPv6Address(address); @@ -468,8 +468,8 @@ TEST(TransportConnectJobTest, MakeAddrListStartWithIPv4) { addrlist.push_back(addrlist_v4_2); TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); ASSERT_EQ(2u, addrlist.size()); - EXPECT_EQ(AF_INET, addrlist[0].GetFamily()); - EXPECT_EQ(AF_INET, addrlist[1].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[0].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[1].GetFamily()); // Test 2: IPv6 only. Expect no change. addrlist.clear(); @@ -477,8 +477,8 @@ TEST(TransportConnectJobTest, MakeAddrListStartWithIPv4) { addrlist.push_back(addrlist_v6_2); TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); ASSERT_EQ(2u, addrlist.size()); - EXPECT_EQ(AF_INET6, addrlist[0].GetFamily()); - EXPECT_EQ(AF_INET6, addrlist[1].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[0].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[1].GetFamily()); // Test 3: IPv4 then IPv6. Expect no change. addrlist.clear(); @@ -488,10 +488,10 @@ TEST(TransportConnectJobTest, MakeAddrListStartWithIPv4) { addrlist.push_back(addrlist_v6_2); TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); ASSERT_EQ(4u, addrlist.size()); - EXPECT_EQ(AF_INET, addrlist[0].GetFamily()); - EXPECT_EQ(AF_INET, addrlist[1].GetFamily()); - EXPECT_EQ(AF_INET6, addrlist[2].GetFamily()); - EXPECT_EQ(AF_INET6, addrlist[3].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[0].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[1].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[2].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[3].GetFamily()); // Test 4: IPv6, IPv4, IPv6, IPv4. Expect first IPv6 moved to the end. addrlist.clear(); @@ -501,10 +501,10 @@ TEST(TransportConnectJobTest, MakeAddrListStartWithIPv4) { addrlist.push_back(addrlist_v4_2); TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); ASSERT_EQ(4u, addrlist.size()); - EXPECT_EQ(AF_INET, addrlist[0].GetFamily()); - EXPECT_EQ(AF_INET6, addrlist[1].GetFamily()); - EXPECT_EQ(AF_INET, addrlist[2].GetFamily()); - EXPECT_EQ(AF_INET6, addrlist[3].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[0].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[1].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[2].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[3].GetFamily()); // Test 5: IPv6, IPv6, IPv4, IPv4. Expect first two IPv6's moved to the end. addrlist.clear(); @@ -514,10 +514,10 @@ TEST(TransportConnectJobTest, MakeAddrListStartWithIPv4) { addrlist.push_back(addrlist_v4_2); TransportConnectJob::MakeAddressListStartWithIPv4(&addrlist); ASSERT_EQ(4u, addrlist.size()); - EXPECT_EQ(AF_INET, addrlist[0].GetFamily()); - EXPECT_EQ(AF_INET, addrlist[1].GetFamily()); - EXPECT_EQ(AF_INET6, addrlist[2].GetFamily()); - EXPECT_EQ(AF_INET6, addrlist[3].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[0].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV4, addrlist[1].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[2].GetFamily()); + EXPECT_EQ(ADDRESS_FAMILY_IPV6, addrlist[3].GetFamily()); } TEST_F(TransportClientSocketPoolTest, Basic) { diff --git a/net/udp/udp_socket_libevent.cc b/net/udp/udp_socket_libevent.cc index d02d6f1..f67c145 100644 --- a/net/udp/udp_socket_libevent.cc +++ b/net/udp/udp_socket_libevent.cc @@ -361,7 +361,7 @@ void UDPSocketLibevent::LogRead(int result, } int UDPSocketLibevent::CreateSocket(const IPEndPoint& address) { - socket_ = socket(address.GetFamily(), SOCK_DGRAM, 0); + socket_ = socket(address.GetSockAddrFamily(), SOCK_DGRAM, 0); if (socket_ == kInvalidSocket) return MapSystemError(errno); if (SetNonBlocking(socket_)) { diff --git a/net/udp/udp_socket_win.cc b/net/udp/udp_socket_win.cc index 0be64513..662ca4c 100644 --- a/net/udp/udp_socket_win.cc +++ b/net/udp/udp_socket_win.cc @@ -349,8 +349,8 @@ int UDPSocketWin::Bind(const IPEndPoint& address) { } int UDPSocketWin::CreateSocket(const IPEndPoint& address) { - socket_ = WSASocket(address.GetFamily(), SOCK_DGRAM, IPPROTO_UDP, NULL, 0, - WSA_FLAG_OVERLAPPED); + socket_ = WSASocket(address.GetSockAddrFamily(), SOCK_DGRAM, IPPROTO_UDP, + NULL, 0, WSA_FLAG_OVERLAPPED); if (socket_ == INVALID_SOCKET) return MapSystemError(WSAGetLastError()); core_ = new Core(this); |