musl/src/network
Timo Teräs 08e4052c43 reimplement if_nameindex and getifaddrs using netlink
the previous implementations had several deficiencies, the most severe
of which was the inability to report unconfigured interfaces or
interfaces without ipv4 addresses. among the options discussed for
fixing this, using netlink turned out to be the one with the least
cost and most additional advantages. other improvements include:

if_nameindex now avoids duplicates in the list it produces, but still
includes legacy-style interface aliases if any are in use.

getifaddrs now reports hardware addresses and includes the scope_id
for link-local ipv6 addresses in the resulting address.
2014-07-29 20:57:31 -04:00
..
accept.c use restrict everywhere it's required by c99 and/or posix 2008 2012-09-06 22:44:55 -04:00
accept4.c add fallback emulation for accept4 on old kernels 2014-02-21 22:25:26 -05:00
bind.c cleanup socketcall syscall interface to ease porting to sane(r) archs 2011-02-15 04:40:40 -05:00
connect.c overhaul pthread cancellation 2011-04-17 11:43:03 -04:00
dn_comp.c implement dn_comp RFC 1035 domain name compression 2014-06-06 20:44:54 +02:00
dn_expand.c fix multiple validation issues in dns response label parsing 2014-06-05 23:01:46 +02:00
dn_skipname.c implement dn_skipname (legacy resolver function) 2013-04-04 22:36:30 -04:00
dns_parse.c fix some validation checks in dns response parsing code 2014-06-03 01:43:29 -04:00
ent.c remove some dummy "ent" function aliases that duplicated real ones 2014-06-04 04:39:34 -04:00
ether.c add stubs for additional legacy ether.h functions 2013-07-01 13:50:02 -04:00
freeaddrinfo.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
gai_strerror.c add support for LC_TIME and LC_MESSAGES translations 2014-07-26 05:36:25 -04:00
getaddrinfo.c add support for ipv6 scope_id to getaddrinfo and getnameinfo 2014-06-04 02:24:38 -04:00
gethostbyaddr.c include cleanups: remove unused headers and add feature test macros 2013-12-12 05:09:18 +00:00
gethostbyaddr_r.c fix gethostby*_r result pointer value on error 2014-06-20 09:17:57 -04:00
gethostbyname.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
gethostbyname2.c include cleanups: remove unused headers and add feature test macros 2013-12-12 05:09:18 +00:00
gethostbyname2_r.c fix gethostby*_r result pointer value on error 2014-06-20 09:17:57 -04:00
gethostbyname_r.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
getifaddrs.c reimplement if_nameindex and getifaddrs using netlink 2014-07-29 20:57:31 -04:00
getnameinfo.c add support for reverse port lookups from services file to getnameinfo 2014-06-04 19:33:20 -04:00
getpeername.c use restrict everywhere it's required by c99 and/or posix 2008 2012-09-06 22:44:55 -04:00
getservbyname.c improve getservbyname_r using new resolver backend 2014-06-01 00:45:04 -04:00
getservbyname_r.c improve getservbyname_r using new resolver backend 2014-06-01 00:45:04 -04:00
getservbyport.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
getservbyport_r.c make getservby*_r return error code rather than -1 (and using errno) 2012-07-22 18:49:49 -04:00
getsockname.c use restrict everywhere it's required by c99 and/or posix 2008 2012-09-06 22:44:55 -04:00
getsockopt.c use restrict everywhere it's required by c99 and/or posix 2008 2012-09-06 22:44:55 -04:00
h_errno.c fix misplaced semicolon in preprocessor directive (#undef h_errno) 2012-05-16 20:14:30 -04:00
herror.c implement legacy function herror 2013-12-20 11:56:16 -05:00
hstrerror.c add support for LC_TIME and LC_MESSAGES translations 2014-07-26 05:36:25 -04:00
htonl.c optimize ntohl etc. in terms of bswap functions 2011-04-12 13:13:27 -04:00
htons.c optimize ntohl etc. in terms of bswap functions 2011-04-12 13:13:27 -04:00
if_freenameindex.c implement if_nameindex and if_freenameindex 2011-08-03 12:13:13 -04:00
if_indextoname.c fix missing SOCK_CLOEXEC in various functions that use sockets internally 2013-07-09 00:40:17 -04:00
if_nameindex.c reimplement if_nameindex and getifaddrs using netlink 2014-07-29 20:57:31 -04:00
if_nametoindex.c fix if_nametoindex return value when interface does not exist 2014-06-03 17:53:11 -04:00
in6addr_any.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
in6addr_loopback.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
inet_addr.c remove cruft from old resolver and numeric ip parsing 2014-06-02 05:00:48 -04:00
inet_aton.c remove cruft from old resolver and numeric ip parsing 2014-06-02 05:00:48 -04:00
inet_legacy.c remove cruft from old resolver and numeric ip parsing 2014-06-02 05:00:48 -04:00
inet_ntoa.c split inet_addr and inet_ntoa back into their own files 2013-10-21 22:05:29 -04:00
inet_ntop.c include cleanups: remove unused headers and add feature test macros 2013-12-12 05:09:18 +00:00
inet_pton.c remove an unnecessary check in inet_pton 2013-12-12 04:18:34 +00:00
listen.c cleanup socketcall syscall interface to ease porting to sane(r) archs 2011-02-15 04:40:40 -05:00
lookup.h implement result address sorting in the resolver (getaddrinfo, etc.) 2014-06-21 19:21:05 -04:00
lookup_ipliteral.c fix missing function declarations in refactored ip literal parsing code 2014-06-05 15:55:20 -04:00
lookup_name.c implement result address sorting in the resolver (getaddrinfo, etc.) 2014-06-21 19:21:05 -04:00
lookup_serv.c refactor getaddrinfo and add support for most remaining features 2014-05-31 20:57:54 -04:00
netlink.c reimplement if_nameindex and getifaddrs using netlink 2014-07-29 20:57:31 -04:00
netlink.h reimplement if_nameindex and getifaddrs using netlink 2014-07-29 20:57:31 -04:00
netname.c "implement" getnetbyaddr and getnetbyname 2011-07-12 02:52:06 -04:00
ntohl.c optimize ntohl etc. in terms of bswap functions 2011-04-12 13:13:27 -04:00
ntohs.c optimize ntohl etc. in terms of bswap functions 2011-04-12 13:13:27 -04:00
proto.c add routing protocols to getprotoent-family functions 2014-06-24 17:39:31 -04:00
recv.c include cleanups: remove unused headers and add feature test macros 2013-12-12 05:09:18 +00:00
recvfrom.c use restrict everywhere it's required by c99 and/or posix 2008 2012-09-06 22:44:55 -04:00
recvmmsg.c implement sendmmsg and recvmmsg 2014-06-19 23:01:15 -04:00
recvmsg.c overhaul pthread cancellation 2011-04-17 11:43:03 -04:00
res_init.c implement new dns backend, res_send and other legacy resolver functions 2014-06-02 02:13:57 -04:00
res_mkquery.c accept trailing . and empty domain names 2014-06-06 20:41:15 +02:00
res_msend.c avoid spurious lookup failures from badly-behaved nameservers 2014-06-07 04:09:21 -04:00
res_query.c implement new dns backend, res_send and other legacy resolver functions 2014-06-02 02:13:57 -04:00
res_querydomain.c accept trailing . and empty domain names 2014-06-06 20:41:15 +02:00
res_send.c implement new dns backend, res_send and other legacy resolver functions 2014-06-02 02:13:57 -04:00
res_state.c add _res (__res_state()) dummy 2011-04-06 15:47:26 -04:00
send.c include cleanups: remove unused headers and add feature test macros 2013-12-12 05:09:18 +00:00
sendmmsg.c fix sendmmsg emulation return value for zero-length vector 2014-06-20 02:13:38 -04:00
sendmsg.c workaround another sendmsg kernel bug on 64-bit machines 2012-07-12 21:37:54 -04:00
sendto.c overhaul pthread cancellation 2011-04-17 11:43:03 -04:00
serv.c include cleanups: remove unused headers and add feature test macros 2013-12-12 05:09:18 +00:00
setsockopt.c cleanup socketcall syscall interface to ease porting to sane(r) archs 2011-02-15 04:40:40 -05:00
shutdown.c cleanup socketcall syscall interface to ease porting to sane(r) archs 2011-02-15 04:40:40 -05:00
sockatmark.c cleanup socketcall syscall interface to ease porting to sane(r) archs 2011-02-15 04:40:40 -05:00
socket.c optimize SOCK_CLOEXEC fallback for socket function 2014-06-06 15:30:28 -04:00
socketpair.c add SOCK_CLOEXEC fallback for socketpair on old kernels 2014-06-06 15:29:00 -04:00