1 // Copyright 2015 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "net/base/address_family.h" 6 7 #include "base/notreached.h" 8 #include "net/base/ip_address.h" 9 #include "net/base/sys_addrinfo.h" 10 11 namespace net { 12 GetAddressFamily(const IPAddress & address)13AddressFamily GetAddressFamily(const IPAddress& address) { 14 if (address.IsIPv4()) { 15 return ADDRESS_FAMILY_IPV4; 16 } else if (address.IsIPv6()) { 17 return ADDRESS_FAMILY_IPV6; 18 } else { 19 return ADDRESS_FAMILY_UNSPECIFIED; 20 } 21 } 22 ConvertAddressFamily(AddressFamily address_family)23int ConvertAddressFamily(AddressFamily address_family) { 24 switch (address_family) { 25 case ADDRESS_FAMILY_UNSPECIFIED: 26 return AF_UNSPEC; 27 case ADDRESS_FAMILY_IPV4: 28 return AF_INET; 29 case ADDRESS_FAMILY_IPV6: 30 return AF_INET6; 31 } 32 NOTREACHED(); 33 return AF_UNSPEC; 34 } 35 ToAddressFamily(int family)36AddressFamily ToAddressFamily(int family) { 37 switch (family) { 38 case AF_INET: 39 return ADDRESS_FAMILY_IPV4; 40 case AF_INET6: 41 return ADDRESS_FAMILY_IPV6; 42 case AF_UNSPEC: 43 return ADDRESS_FAMILY_UNSPECIFIED; 44 } 45 NOTREACHED(); 46 return ADDRESS_FAMILY_UNSPECIFIED; 47 } 48 49 } // namespace net 50