diff options
author | Robert Pluim <rpluim@gmail.com> | 2019-11-15 11:11:30 +0100 |
---|---|---|
committer | Robert Pluim <rpluim@gmail.com> | 2019-11-26 08:46:13 +0100 |
commit | 650a514e996287106f9a9525b6f27068ec2a0cbf (patch) | |
tree | 188170aae76f32d894d8df1baa7f435fbfe99d88 /nt | |
parent | 5c3d0cf7910afa6b3fbdba24ac5c5817f268eb0e (diff) | |
download | emacs-650a514e996287106f9a9525b6f27068ec2a0cbf.tar.gz |
Extend network-interface-list to return IPv6 and network info
Bug#38218
* src/process.c (Fnetwork_interface_list): Extend argument list to
allow requesting full network info and/or IPv4/IPv6 info.
(network_interface_list) [HAVE_GETIFADDRS]: Use getifaddrs to retrieve
interface IP addresses.
* src/process.h: Update prototype of network_interface_list.
* src/w32.c (g_b_init_get_adapters_addresses): New init flag.
(globals_of_w32): Initialize it.
(GetAdaptersAddresses_Proc): New function typedef.
(get_adapters_addresses): New wrapper function.
(init_winsock): Load htonl and ntohl.
(sys_htonl, sys_ntohl): New wrapper functions.
(network_interface_list): Implement in terms of
get_adapters_addresses.
* nt/inc/sys/socket.h: Add sys_htonl and sys_ntohl prototypes.
* etc/NEWS: Announce IPv4/IPv6 changes in network-interface-list.
* doc/lispref/processes.texi (Misc Network): Document updated arglist
and return values for network-interface-list.
Diffstat (limited to 'nt')
-rw-r--r-- | nt/inc/sys/socket.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/nt/inc/sys/socket.h b/nt/inc/sys/socket.h index 6d26ff907e6..0f3943b453a 100644 --- a/nt/inc/sys/socket.h +++ b/nt/inc/sys/socket.h @@ -92,6 +92,8 @@ typedef unsigned short uint16_t; #define connect sys_connect #define htons sys_htons #define ntohs sys_ntohs +#define htonl sys_htonl +#define ntohl sys_ntohl #define inet_addr sys_inet_addr #define gethostname sys_gethostname #define gethostbyname sys_gethostbyname @@ -112,6 +114,8 @@ int sys_bind (int s, const struct sockaddr *addr, int namelen); int sys_connect (int s, const struct sockaddr *addr, int namelen); u_short sys_htons (u_short hostshort); u_short sys_ntohs (u_short netshort); +u_long sys_htonl (u_long hostlong); +u_long sys_ntohl (u_long netlong); unsigned long sys_inet_addr (const char * cp); int sys_gethostname (char * name, int namelen); struct hostent * sys_gethostbyname (const char * name); |