# HG changeset patch # User Kim F. Storm # Date 1063834313 0 # Node ID fd2be6cea0e7550b33e815c9326516140746a44f # Parent 84470539e96f02fb83067ab03dc25269c1845815 (Fnetwork_interface_list, Fnetwork_interface_info): Require HAVE_NET_IF_H and HAVE_SYS_IOCTL_H to include these fns. (Fnetwork_interface_info): Check that ifreq struct has required fields before accessing them; this requires that those fields are defined as macros, which may be too restrictive on some platforms, but it is better than failing on other platforms. (syms_of_process): Only defsubr above fns when included. diff -r 84470539e96f -r fd2be6cea0e7 src/process.c --- a/src/process.c Wed Sep 17 18:33:38 2003 +0000 +++ b/src/process.c Wed Sep 17 21:31:53 2003 +0000 @@ -3336,7 +3336,7 @@ #endif /* HAVE_SOCKETS */ -#ifdef HAVE_SOCKETS +#if defined(HAVE_SOCKETS) && defined(HAVE_NET_IF_H) && defined(HAVE_SYS_IOCTL_H) #ifdef SIOCGIFCONF DEFUN ("network-interface-list", Fnetwork_interface_list, Snetwork_interface_list, 0, 0, 0, @@ -3397,7 +3397,7 @@ return res; } -#endif +#endif /* SIOCGIFCONF */ #if defined(SIOCGIFADDR) || defined(SIOCGIFHWADDR) || defined(SIOCGIFFLAGS) @@ -3483,7 +3483,7 @@ return Qnil; elt = Qnil; -#ifdef SIOCGIFFLAGS +#if defined(SIOCGIFFLAGS) && defined(ifr_flags) if (ioctl (s, SIOCGIFFLAGS, &rq) == 0) { int flags = rq.ifr_flags; @@ -3511,10 +3511,10 @@ res = Fcons (elt, res); elt = Qnil; -#ifdef SIOCGIFHWADDR +#if defined(SIOCGIFHWADDR) && defined(ifr_hwaddr) if (ioctl (s, SIOCGIFHWADDR, &rq) == 0) { - Lisp_Object hwaddr = Fmake_vector (6, Qnil); + Lisp_Object hwaddr = Fmake_vector (make_number (6), Qnil); register struct Lisp_Vector *p = XVECTOR (hwaddr); int n; @@ -3527,7 +3527,7 @@ res = Fcons (elt, res); elt = Qnil; -#ifdef SIOCGIFNETMASK +#if defined(SIOCGIFNETMASK) && defined(ifr_netmask) if (ioctl (s, SIOCGIFNETMASK, &rq) == 0) { any++; @@ -3537,7 +3537,7 @@ res = Fcons (elt, res); elt = Qnil; -#ifdef SIOCGIFBRDADDR +#if defined(SIOCGIFBRDADDR) && defined(ifr_broadaddr) if (ioctl (s, SIOCGIFBRDADDR, &rq) == 0) { any++; @@ -3547,7 +3547,7 @@ res = Fcons (elt, res); elt = Qnil; -#ifdef SIOCGIFADDR +#if defined(SIOCGIFADDR) && defined(ifr_addr) if (ioctl (s, SIOCGIFADDR, &rq) == 0) { any++; @@ -6656,13 +6656,15 @@ defsubr (&Sset_network_process_option); defsubr (&Smake_network_process); defsubr (&Sformat_network_address); +#endif /* HAVE_SOCKETS */ +#if defined(HAVE_SOCKETS) && defined(HAVE_NET_IF_H) && defined(HAVE_SYS_IOCTL_H) #ifdef SIOCGIFCONF defsubr (&Snetwork_interface_list); #endif #if defined(SIOCGIFADDR) || defined(SIOCGIFHWADDR) || defined(SIOCGIFFLAGS) defsubr (&Snetwork_interface_info); #endif -#endif /* HAVE_SOCKETS */ +#endif /* HAVE_SOCKETS ... */ #ifdef DATAGRAM_SOCKETS defsubr (&Sprocess_datagram_address); defsubr (&Sset_process_datagram_address);