• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 }
34 
ToAddressFamily(int family)35 AddressFamily ToAddressFamily(int family) {
36   switch (family) {
37     case AF_INET:
38       return ADDRESS_FAMILY_IPV4;
39     case AF_INET6:
40       return ADDRESS_FAMILY_IPV6;
41     case AF_UNSPEC:
42       return ADDRESS_FAMILY_UNSPECIFIED;
43   }
44   NOTREACHED();
45 }
46 
47 }  // namespace net
48