diff options
author | Jan Djärv <jan.h.d@swipnet.se> | 2011-08-13 12:48:03 +0200 |
---|---|---|
committer | Jan Djärv <jan.h.d@swipnet.se> | 2011-08-13 12:48:03 +0200 |
commit | 377538cbcf8c1f0aab9b40ed2ff3df414904272f (patch) | |
tree | 9dfd855ba3e99732fd5d3f49096a5191c09233f3 /configure.in | |
parent | 1bca59fe757d359e3c36d3de1c8ec19ed90be49c (diff) | |
download | emacs-377538cbcf8c1f0aab9b40ed2ff3df414904272f.tar.gz |
Fix network-interface-list|info on newer BSD derived OS:es.
* configure.in: Add header check: sys/socket.h,
ifaddrs.h, net/if_dl.h. Check for getifaddrs and freeifaddrs.
Check for sa_len in struct ifreq.ifr_addr (Bug#8477).
* src/process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
(Fnetwork_interface_list): Allocate in increments of bytes instead
of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
sockaddr.
(struct ifflag_def): notrailers is smart on OSX.
(Fnetwork_interface_info): Handle case when ifr_flags is negative.
Get hardware address with getifaddrs if available.
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/configure.in b/configure.in index c0e5b3acbb5..cfb9dc8bab2 100644 --- a/configure.in +++ b/configure.in @@ -1299,10 +1299,20 @@ if test $emacs_cv_struct_exception != yes; then AC_DEFINE(NO_MATHERR, 1, [Define to 1 if you don't have struct exception in math.h.]) fi +AC_CHECK_HEADERS(sys/socket.h) AC_CHECK_HEADERS(net/if.h, , , [AC_INCLUDES_DEFAULT #if HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif]) +AC_CHECK_HEADERS(ifaddrs.h, , , [AC_INCLUDES_DEFAULT +#if HAVE_SYS_SOCKET_H +#include <sys/socket.h> +#endif]) +AC_CHECK_HEADERS(net/if_dl.h, , , [AC_INCLUDES_DEFAULT +#if HAVE_SYS_SOCKET_H +#include <sys/socket.h> +#endif]) +AC_CHECK_FUNCS(getifaddrs freeifaddrs) dnl checks for structure members AC_STRUCT_TM @@ -1313,7 +1323,8 @@ AC_CHECK_MEMBER(struct tm.tm_gmtoff, [#include <time.h>]) AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr, struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr, - struct ifreq.ifr_addr], , , + struct ifreq.ifr_addr, + struct ifreq.ifr_addr.sa_len], , , [AC_INCLUDES_DEFAULT #if HAVE_SYS_SOCKET_H #include <sys/socket.h> |