perl-uClibc-IPv6.patch 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. fix on uClibc without IPv6 support
  2. Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
  3. Index: b/cpan/Socket/Socket.xs
  4. ===================================================================
  5. --- a/cpan/Socket/Socket.xs
  6. +++ b/cpan/Socket/Socket.xs
  7. @@ -896,7 +896,7 @@
  8. CODE:
  9. #ifdef HAS_INETNTOP
  10. STRLEN addrlen;
  11. -#ifdef AF_INET6
  12. +#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
  13. struct in6_addr addr;
  14. char str[INET6_ADDRSTRLEN];
  15. #else
  16. @@ -916,7 +916,7 @@
  17. croak("Bad address length for Socket::inet_ntop on AF_INET;"
  18. " got %"UVuf", should be 4", (UV)addrlen);
  19. break;
  20. -#ifdef AF_INET6
  21. +#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
  22. case AF_INET6:
  23. if(addrlen != 16)
  24. croak("Bad address length for Socket::inet_ntop on AF_INET6;"
  25. @@ -925,7 +925,7 @@
  26. #endif
  27. default:
  28. croak("Bad address family for %s, got %d, should be"
  29. -#ifdef AF_INET6
  30. +#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
  31. " either AF_INET or AF_INET6",
  32. #else
  33. " AF_INET",
  34. @@ -955,7 +955,7 @@
  35. #ifdef HAS_INETPTON
  36. int ok;
  37. int addrlen = 0;
  38. -#ifdef AF_INET6
  39. +#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
  40. struct in6_addr ip_address;
  41. #else
  42. struct in_addr ip_address;
  43. @@ -965,14 +965,14 @@
  44. case AF_INET:
  45. addrlen = 4;
  46. break;
  47. -#ifdef AF_INET6
  48. +#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
  49. case AF_INET6:
  50. addrlen = 16;
  51. break;
  52. #endif
  53. default:
  54. croak("Bad address family for %s, got %d, should be"
  55. -#ifdef AF_INET6
  56. +#if (defined(__UCLIBC__) && defined(__UCLIBC_HAS_IPV6__)) || (!defined(__UCLIBC__) && defined(AF_INET6))
  57. " either AF_INET or AF_INET6",
  58. #else
  59. " AF_INET",