소스 검색

Fixed #if -> #if defined.
Take __UCLIBC_HAS_IPV4__ into account.

Ricard Wanderlof 16 년 전
부모
커밋
f2f6143a40
1개의 변경된 파일15개의 추가작업 그리고 6개의 파일을 삭제
  1. 15 6
      libc/inet/check_pf.c

+ 15 - 6
libc/inet/check_pf.c

@@ -18,7 +18,7 @@
    02111-1307 USA.  */
 
 #include <features.h>
-#include <ifaddrs.h>
+#include "ifaddrs.h"
 #include <netdb.h>
 
 
@@ -28,7 +28,7 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6)
 {
   *seen_ipv4 = false;
   *seen_ipv6 = false;
-#if __UCLIBC_SUPPORT_AI_ADDRCONFIG__
+#if defined __UCLIBC_SUPPORT_AI_ADDRCONFIG__
   {
     /* Get the interface list via getifaddrs.  */
     struct ifaddrs *ifa = NULL;
@@ -37,18 +37,25 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6)
     {
       /* We cannot determine what interfaces are available.  Be
       optimistic.  */
+#if defined __UCLIBC_HAS_IPV4__
       *seen_ipv4 = true;
-#if __UCLIBC_HAS_IPV6__
+#endif /* __UCLIBC_HAS_IPV4__ */
+#if defined __UCLIBC_HAS_IPV6__
       *seen_ipv6 = true;
 #endif /* __UCLIBC_HAS_IPV6__ */
       return;
     }
 
     for (runp = ifa; runp != NULL; runp = runp->ifa_next)
+#if defined __UCLIBC_HAS_IPV4__
       if (runp->ifa_addr->sa_family == PF_INET)
         *seen_ipv4 = true;
-#if __UCLIBC_HAS_IPV6__
-      else if (runp->ifa_addr->sa_family == PF_INET6)
+#endif /* __UCLIBC_HAS_IPV4__ */
+#if defined __UCLIBC_HAS_IPV4__ && defined __UCLIBC_HAS_IPV6__
+      else /* can't be both at once */
+#endif /* __UCLIBC_HAS_IPV4__ && defined __UCLIBC_HAS_IPV6__ */
+#if defined __UCLIBC_HAS_IPV6__
+      if (runp->ifa_addr->sa_family == PF_INET6)
         *seen_ipv6 = true;
 #endif /* __UCLIBC_HAS_IPV6__ */
 
@@ -56,8 +63,10 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6)
   }
 #else
   /* AI_ADDRCONFIG is disabled, assume both ipv4 and ipv6 available. */
+#if defined __UCLIBC_HAS_IPV4__
   *seen_ipv4 = true;
-#if __UCLIBC_HAS_IPV6__
+#endif /* __UCLIBC_HAS_IPV4__ */
+#if defined __UCLIBC_HAS_IPV6__
   *seen_ipv6 = true;
 #endif /* __UCLIBC_HAS_IPV6__ */