02111-1307 USA. */
#include <features.h>
-#include <ifaddrs.h>
+#include "ifaddrs.h"
#include <netdb.h>
{
*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;
{
/* 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__ */
}
#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__ */