Index: configure.ac ================================================================== --- configure.ac +++ configure.ac @@ -1403,20 +1403,25 @@ ]) AC_CHECK_HEADER(netinet/tcp.h, [ AC_DEFINE(OF_HAVE_NETINET_TCP_H, 1, [Whether we have netinet/tcp.h]) ]) - AC_CHECK_HEADERS([arpa/inet.h netdb.h]) + AC_CHECK_HEADERS([arpa/inet.h netdb.h sys/sockio.h]) AC_CHECK_HEADERS([net/if.h net/if_arp.h net/if_dl.h net/if_types.h]) AC_CHECK_FUNCS([if_indextoname if_nametoindex if_nameindex]) AC_CHECK_TYPES([struct sockaddr_dl], [], [], [ #ifdef HAVAE_SYS_TYPES_H # include #endif #ifdef HAVE_NET_IF_DL_H # include #endif + ]) + AC_CHECK_MEMBERS([struct ifreq.ifr_hwaddr], [], [], [ + #ifdef HAVE_NET_IF_H + # include + #endif ]) AC_CHECK_HEADER(sys/un.h, [ AC_DEFINE(OF_HAVE_SYS_UN_H, 1, [Whether we have sys/un.h]) ]) AC_CHECK_MEMBER([struct sockaddr_in6.sin6_addr], [ Index: src/platform/POSIX/OFSystemInfo+NetworkInterfaces.m ================================================================== --- src/platform/POSIX/OFSystemInfo+NetworkInterfaces.m +++ src/platform/POSIX/OFSystemInfo+NetworkInterfaces.m @@ -19,10 +19,13 @@ # include #endif #ifdef OF_HAVE_SYS_SOCKET_H # include #endif +#ifdef HAVE_SYS_SOCKIO_H +# include +#endif #ifdef HAVE_NET_IF_H # include #endif #ifdef HAVE_NET_IF_ARP_H # include @@ -400,11 +403,12 @@ #endif static bool queryNetworkInterfaceHardwareAddress(OFMutableDictionary *ret) { -#if defined(HAVE_IOCTL) && defined(HAVE_NET_IF_H) && defined(SIOCGIFHWADDR) +#if defined(HAVE_IOCTL) && defined(HAVE_NET_IF_H) && defined(SIOCGIFHWADDR) && \ + defined(HAVE_STRUCT_IFREQ_IFR_HWADDR) OFStringEncoding encoding = [OFLocale encoding]; int sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock < 0) return false;