address_family.cc 1.1 KB

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