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