xref: /aosp_15_r20/external/cronet/net/base/address_family.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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)13 AddressFamily 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)23 int 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)36 AddressFamily 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