aboutsummaryrefslogtreecommitdiff
path: root/inet
diff options
context:
space:
mode:
Diffstat (limited to 'inet')
-rw-r--r--inet/Makefile105
-rw-r--r--inet/Versions92
-rw-r--r--inet/aliases.h63
-rw-r--r--inet/arpa/ftp.h105
-rw-r--r--inet/arpa/inet.h105
-rw-r--r--inet/arpa/telnet.h316
-rw-r--r--inet/arpa/tftp.h82
-rw-r--r--inet/bug-if1.c53
-rw-r--r--inet/check_native.c27
-rw-r--r--inet/check_pf.c71
-rw-r--r--inet/deadline.c122
-rw-r--r--inet/ether_aton.c28
-rw-r--r--inet/ether_aton_r.c63
-rw-r--r--inet/ether_hton.c81
-rw-r--r--inet/ether_line.c76
-rw-r--r--inet/ether_ntoa.c29
-rw-r--r--inet/ether_ntoa_r.c33
-rw-r--r--inet/ether_ntoh.c84
-rw-r--r--inet/getaliasent.c28
-rw-r--r--inet/getaliasent_r.c31
-rw-r--r--inet/getaliasname.c32
-rw-r--r--inet/getaliasname_r.c31
-rw-r--r--inet/gethstbyad.c30
-rw-r--r--inet/gethstbyad_r.c52
-rw-r--r--inet/gethstbynm.c37
-rw-r--r--inet/gethstbynm2.c38
-rw-r--r--inet/gethstbynm2_r.c45
-rw-r--r--inet/gethstbynm_r.c44
-rw-r--r--inet/gethstent.c26
-rw-r--r--inet/gethstent_r.c34
-rw-r--r--inet/getipv4sourcefilter.c32
-rw-r--r--inet/getnameinfo.c563
-rw-r--r--inet/getnetbyad.c34
-rw-r--r--inet/getnetbyad_r.c34
-rw-r--r--inet/getnetbynm.c33
-rw-r--r--inet/getnetbynm_r.c33
-rw-r--r--inet/getnetent.c29
-rw-r--r--inet/getnetent_r.c34
-rw-r--r--inet/getnetgrent.c49
-rw-r--r--inet/getnetgrent_r.c535
-rw-r--r--inet/getproto.c32
-rw-r--r--inet/getproto_r.c31
-rw-r--r--inet/getprtent.c28
-rw-r--r--inet/getprtent_r.c32
-rw-r--r--inet/getprtname.c32
-rw-r--r--inet/getprtname_r.c31
-rw-r--r--inet/getservent.c25
-rw-r--r--inet/getservent_r.c29
-rw-r--r--inet/getsourcefilter.c32
-rw-r--r--inet/getsrvbynm.c29
-rw-r--r--inet/getsrvbynm_r.c28
-rw-r--r--inet/getsrvbypt.c29
-rw-r--r--inet/getsrvbypt_r.c28
-rw-r--r--inet/herrno-loc.c29
-rw-r--r--inet/herrno.c30
-rw-r--r--inet/htonl.c35
-rw-r--r--inet/htons.c34
-rw-r--r--inet/htontest.c70
-rw-r--r--inet/if_index.c60
-rw-r--r--inet/ifaddrs.c47
-rw-r--r--inet/ifaddrs.h73
-rw-r--r--inet/ifreq.c26
-rw-r--r--inet/in6_addr.c30
-rw-r--r--inet/inet6_opt.c281
-rw-r--r--inet/inet6_option.c349
-rw-r--r--inet/inet6_rth.c196
-rw-r--r--inet/inet6_scopeid_pton.c63
-rw-r--r--inet/inet_lnaof.c50
-rw-r--r--inet/inet_mkadr.c55
-rw-r--r--inet/inet_net.c109
-rw-r--r--inet/inet_netof.c50
-rw-r--r--inet/inet_ntoa.c38
-rw-r--r--inet/net-internal.h119
-rw-r--r--inet/netgroup.h85
-rw-r--r--inet/netinet/ether.h55
-rw-r--r--inet/netinet/icmp6.h345
-rw-r--r--inet/netinet/igmp.h125
-rw-r--r--inet/netinet/in.h632
-rw-r--r--inet/netinet/ip6.h188
-rw-r--r--inet/protocols/routed.h101
-rw-r--r--inet/protocols/rwhod.h67
-rw-r--r--inet/protocols/talkd.h115
-rw-r--r--inet/protocols/timed.h99
-rw-r--r--inet/rcmd.c827
-rw-r--r--inet/rexec.c198
-rw-r--r--inet/ruserpass.c250
-rw-r--r--inet/setipv4sourcefilter.c33
-rw-r--r--inet/setsourcefilter.c33
-rw-r--r--inet/test-hnto-types.c39
-rw-r--r--inet/test-ifaddrs.c99
-rw-r--r--inet/test-inet6_opt.c211
-rw-r--r--inet/test_ifindex.c67
-rw-r--r--inet/tst-checks-posix.c23
-rw-r--r--inet/tst-checks.c172
-rw-r--r--inet/tst-deadline.c188
-rw-r--r--inet/tst-ether_aton.c60
-rw-r--r--inet/tst-ether_line.c38
-rw-r--r--inet/tst-gethnm.c67
-rw-r--r--inet/tst-getni1.c36
-rw-r--r--inet/tst-getni2.c41
-rw-r--r--inet/tst-inet6_rth.c192
-rw-r--r--inet/tst-inet6_scopeid_pton.c131
-rw-r--r--inet/tst-network.c81
-rw-r--r--inet/tst-ntoa.c39
-rw-r--r--inet/tst-sockaddr.c125
105 files changed, 0 insertions, 10231 deletions
diff --git a/inet/Makefile b/inet/Makefile
deleted file mode 100644
index 38c61bdc61..0000000000
--- a/inet/Makefile
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright (C) 1991-2017 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-#
-# Sub-makefile for inet portion of the library.
-#
-subdir := inet
-
-include ../Makeconfig
-
-headers := netinet/ether.h netinet/in.h netinet/in_systm.h \
- netinet/if_ether.h netinet/igmp.h \
- netinet/tcp.h netinet/ip.h $(wildcard arpa/*.h protocols/*.h) \
- aliases.h ifaddrs.h netinet/ip6.h netinet/icmp6.h bits/in.h
-
-routines := htonl htons \
- inet_lnaof inet_mkadr \
- inet_netof inet_ntoa inet_net herrno herrno-loc \
- gethstbyad gethstbyad_r gethstbynm gethstbynm2 gethstbynm2_r \
- gethstbynm_r gethstent gethstent_r \
- getnetbyad getnetbyad_r getnetbynm getnetent getnetent_r \
- getnetbynm_r \
- getproto getproto_r getprtent getprtent_r getprtname getprtname_r \
- getsrvbynm getsrvbynm_r getsrvbypt getsrvbypt_r getservent \
- getservent_r \
- ether_aton ether_aton_r ether_hton ether_line \
- ether_ntoa ether_ntoa_r ether_ntoh \
- rcmd rexec ruserpass \
- getnetgrent_r getnetgrent \
- getaliasent_r getaliasent getaliasname getaliasname_r \
- in6_addr getnameinfo if_index ifaddrs inet6_option \
- getipv4sourcefilter setipv4sourcefilter \
- getsourcefilter setsourcefilter inet6_opt inet6_rth \
- inet6_scopeid_pton deadline
-
-aux := check_pf check_native ifreq
-
-tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \
- tst-gethnm test-ifaddrs bug-if1 test-inet6_opt tst-ether_line \
- tst-getni1 tst-getni2 tst-inet6_rth tst-checks tst-checks-posix \
- tst-sockaddr test-hnto-types
-
-# tst-deadline must be linked statically so that we can access
-# internal functions.
-tests-static += tst-deadline
-tests-static-internal := tst-deadline
-
-# tst-inet6_scopeid_pton also needs internal functions but does not
-# need to be linked statically.
-tests-internal := tst-inet6_scopeid_pton
-
-include ../Rules
-
-ifeq ($(have-thread-library),yes)
-
-CFLAGS-gethstbyad_r.c = -fexceptions
-CFLAGS-gethstbyad.c = -fexceptions
-CFLAGS-gethstbynm_r.c = -fexceptions
-CFLAGS-gethstbynm.c = -fexceptions
-CFLAGS-gethstbynm2_r.c = -fexceptions
-CFLAGS-gethstbynm2.c = -fexceptions
-CFLAGS-gethstent_r.c = -fexceptions
-CFLAGS-gethstent.c = -fexceptions
-CFLAGS-rcmd.c = -fexceptions
-CFLAGS-getnetbynm_r.c = -fexceptions
-CFLAGS-getnetbynm.c = -fexceptions
-CFLAGS-getnetbyad_r.c = -fexceptions
-CFLAGS-getnetbyad.c = -fexceptions
-CFLAGS-getnetent_r.c = -fexceptions
-CFLAGS-getnetent.c = -fexceptions
-CFLAGS-getaliasent_r.c = -fexceptions
-CFLAGS-getaliasent.c = -fexceptions
-CFLAGS-getrpcent_r.c = -fexceptions
-CFLAGS-getrpcent.c = -fexceptions
-CFLAGS-getservent_r.c = -fexceptions
-CFLAGS-getservent.c = -fexceptions
-CFLAGS-getprtent_r.c = -fexceptions
-CFLAGS-getprtent.c = -fexceptions
-CFLAGS-either_ntoh.c = -fexceptions
-CFLAGS-either_hton.c = -fexceptions
-CFLAGS-getnetgrent.c = -fexceptions
-CFLAGS-getnetgrent_r.c = -fexceptions
-
-CFLAGS-tst-checks-posix.c = -std=c99
-CFLAGS-tst-sockaddr.c = -fno-strict-aliasing
-
-endif
-
-ifeq ($(build-static-nss),yes)
-CFLAGS += -DSTATIC_NSS
-endif
diff --git a/inet/Versions b/inet/Versions
deleted file mode 100644
index 6f663f3648..0000000000
--- a/inet/Versions
+++ /dev/null
@@ -1,92 +0,0 @@
-libc {
- GLIBC_2.0 {
- # functions with required interface outside normal name space
- __ivaliduser; __check_rhosts_file; __rcmd_errstr;
-
- # variables in normal name space
- rexecoptions;
-
- # e*
- endaliasent; endhostent; endnetent; endnetgrent; endprotoent; endservent;
-
- # e*
- ether_aton; ether_aton_r; ether_hostton; ether_line; ether_ntoa;
- ether_ntoa_r; ether_ntohost;
-
- # g*
- getaliasbyname; getaliasbyname_r; getaliasent; getaliasent_r;
- getdomainname; gethostbyaddr; gethostbyaddr_r; gethostbyname;
- gethostbyname2; gethostbyname2_r; gethostbyname_r; gethostent;
- gethostent_r; getnetbyaddr; getnetbyaddr_r; getnetbyname;
- getnetbyname_r; getnetent; getnetent_r; getnetgrent; getnetgrent_r;
- getprotobyname; getprotobyname_r; getprotobynumber;
- getprotobynumber_r; getprotoent; getprotoent_r;
- getservbyname; getservbyname_r; getservbyport;
- getservbyport_r; getservent; getservent_r;
-
- # h*
- htonl; htons;
-
- # i*
- inet_addr; inet_aton; inet_lnaof; inet_makeaddr; inet_netof; inet_network;
- inet_nsap_addr; inet_nsap_ntoa; inet_ntoa; inet_ntop; inet_pton; innetgr;
- iruserok;
-
- # n*
- ntohl; ntohs;
-
- # r*
- rcmd; rexec; rresvport; ruserok; ruserpass;
-
- # s*
- setaliasent; setnetent; setnetgrent; setprotoent; setservent;
- }
- GLIBC_2.1 {
- # variables in normal name space
- in6addr_any; in6addr_loopback;
-
- # i*
- if_freenameindex; if_indextoname; if_nameindex; if_nametoindex;
- }
- GLIBC_2.1.2 {
- # g*
- getaliasbyname_r; getaliasent_r; gethostbyaddr_r; gethostbyname2_r;
- gethostbyname_r; gethostent_r; getnetbyaddr_r; getnetbyname_r;
- getnetent_r; getnetgrent_r; getprotobyname_r; getprotobynumber_r;
- getprotoent_r; getservbyname_r;
- }
- GLIBC_2.2 {
- # i*
- iruserok_af;
- # r*
- rcmd_af; rexec_af; rresvport_af; ruserok_af;
- }
- GLIBC_2.3 {
- # f*
- freeifaddrs;
- # g*
- getifaddrs;
- }
- GLIBC_2.3.3 {
- inet6_option_space; inet6_option_init; inet6_option_append;
- inet6_option_alloc; inet6_option_next; inet6_option_find;
- }
- GLIBC_2.3.4 {
- getipv4sourcefilter; setipv4sourcefilter;
- getsourcefilter; setsourcefilter;
- }
- GLIBC_2.5 {
- inet6_opt_init; inet6_opt_append; inet6_opt_finish; inet6_opt_set_val;
- inet6_opt_next; inet6_opt_find; inet6_opt_get_val;
- inet6_rth_space; inet6_rth_init; inet6_rth_add; inet6_rth_reverse;
- inet6_rth_segments; inet6_rth_getaddr;
- }
- GLIBC_PRIVATE {
- # functions used in other libraries
- __internal_endnetgrent; __internal_getnetgrent_r;
- __internal_setnetgrent;
-
- # Used from nscd.
- __inet6_scopeid_pton;
- }
-}
diff --git a/inet/aliases.h b/inet/aliases.h
deleted file mode 100644
index 76b43cd96a..0000000000
--- a/inet/aliases.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _ALIASES_H
-#define _ALIASES_H 1
-
-#include <features.h>
-
-#include <sys/types.h>
-
-
-__BEGIN_DECLS
-
-/* Structure to represent one entry of the alias data base. */
-struct aliasent
- {
- char *alias_name;
- size_t alias_members_len;
- char **alias_members;
- int alias_local;
- };
-
-
-/* Open alias data base files. */
-extern void setaliasent (void) __THROW;
-
-/* Close alias data base files. */
-extern void endaliasent (void) __THROW;
-
-/* Get the next entry from the alias data base. */
-extern struct aliasent *getaliasent (void) __THROW;
-
-/* Get the next entry from the alias data base and put it in RESULT_BUF. */
-extern int getaliasent_r (struct aliasent *__restrict __result_buf,
- char *__restrict __buffer, size_t __buflen,
- struct aliasent **__restrict __result) __THROW;
-
-/* Get alias entry corresponding to NAME. */
-extern struct aliasent *getaliasbyname (const char *__name) __THROW;
-
-/* Get alias entry corresponding to NAME and put it in RESULT_BUF. */
-extern int getaliasbyname_r (const char *__restrict __name,
- struct aliasent *__restrict __result_buf,
- char *__restrict __buffer, size_t __buflen,
- struct aliasent **__restrict __result) __THROW;
-
-__END_DECLS
-
-#endif /* aliases.h */
diff --git a/inet/arpa/ftp.h b/inet/arpa/ftp.h
deleted file mode 100644
index e5b340db12..0000000000
--- a/inet/arpa/ftp.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 1983, 1989, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)ftp.h 8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _ARPA_FTP_H
-#define _ARPA_FTP_H 1
-
-/* Definitions for FTP; see RFC-765. */
-
-/*
- * Reply codes.
- */
-#define PRELIM 1 /* positive preliminary */
-#define COMPLETE 2 /* positive completion */
-#define CONTINUE 3 /* positive intermediate */
-#define TRANSIENT 4 /* transient negative completion */
-#define ERROR 5 /* permanent negative completion */
-
-/*
- * Type codes
- */
-#define TYPE_A 1 /* ASCII */
-#define TYPE_E 2 /* EBCDIC */
-#define TYPE_I 3 /* image */
-#define TYPE_L 4 /* local byte size */
-
-#ifdef FTP_NAMES
-char *typenames[] = {"0", "ASCII", "EBCDIC", "Image", "Local" };
-#endif
-
-/*
- * Form codes
- */
-#define FORM_N 1 /* non-print */
-#define FORM_T 2 /* telnet format effectors */
-#define FORM_C 3 /* carriage control (ASA) */
-#ifdef FTP_NAMES
-char *formnames[] = {"0", "Nonprint", "Telnet", "Carriage-control" };
-#endif
-
-/*
- * Structure codes
- */
-#define STRU_F 1 /* file (no record structure) */
-#define STRU_R 2 /* record structure */
-#define STRU_P 3 /* page structure */
-#ifdef FTP_NAMES
-char *strunames[] = {"0", "File", "Record", "Page" };
-#endif
-
-/*
- * Mode types
- */
-#define MODE_S 1 /* stream */
-#define MODE_B 2 /* block */
-#define MODE_C 3 /* compressed */
-#ifdef FTP_NAMES
-char *modenames[] = {"0", "Stream", "Block", "Compressed" };
-#endif
-
-/*
- * Record Tokens
- */
-#define REC_ESC '\377' /* Record-mode Escape */
-#define REC_EOR '\001' /* Record-mode End-of-Record */
-#define REC_EOF '\002' /* Record-mode End-of-File */
-
-/*
- * Block Header
- */
-#define BLK_EOR 0x80 /* Block is End-of-Record */
-#define BLK_EOF 0x40 /* Block is End-of-File */
-#define BLK_ERRORS 0x20 /* Block is suspected of containing errors */
-#define BLK_RESTART 0x10 /* Block is Restart Marker */
-
-#define BLK_BYTECOUNT 2 /* Bytes in this block */
-
-#endif /* arpa/ftp.h */
diff --git a/inet/arpa/inet.h b/inet/arpa/inet.h
deleted file mode 100644
index 17c777bae2..0000000000
--- a/inet/arpa/inet.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _ARPA_INET_H
-#define _ARPA_INET_H 1
-
-#include <features.h>
-#include <netinet/in.h> /* To define `struct in_addr'. */
-
-/* Type for length arguments in socket calls. */
-#ifndef __socklen_t_defined
-typedef __socklen_t socklen_t;
-# define __socklen_t_defined
-#endif
-
-__BEGIN_DECLS
-
-/* Convert Internet host address from numbers-and-dots notation in CP
- into binary data in network byte order. */
-extern in_addr_t inet_addr (const char *__cp) __THROW;
-
-/* Return the local host address part of the Internet address in IN. */
-extern in_addr_t inet_lnaof (struct in_addr __in) __THROW;
-
-/* Make Internet host address in network byte order by combining the
- network number NET with the local address HOST. */
-extern struct in_addr inet_makeaddr (in_addr_t __net, in_addr_t __host)
- __THROW;
-
-/* Return network number part of the Internet address IN. */
-extern in_addr_t inet_netof (struct in_addr __in) __THROW;
-
-/* Extract the network number in network byte order from the address
- in numbers-and-dots natation starting at CP. */
-extern in_addr_t inet_network (const char *__cp) __THROW;
-
-/* Convert Internet number in IN to ASCII representation. The return value
- is a pointer to an internal array containing the string. */
-extern char *inet_ntoa (struct in_addr __in) __THROW;
-
-/* Convert from presentation format of an Internet number in buffer
- starting at CP to the binary network format and store result for
- interface type AF in buffer starting at BUF. */
-extern int inet_pton (int __af, const char *__restrict __cp,
- void *__restrict __buf) __THROW;
-
-/* Convert a Internet address in binary network format for interface
- type AF in buffer starting at CP to presentation form and place
- result in buffer of length LEN astarting at BUF. */
-extern const char *inet_ntop (int __af, const void *__restrict __cp,
- char *__restrict __buf, socklen_t __len)
- __THROW;
-
-
-/* The following functions are not part of XNS 5.2. */
-#ifdef __USE_MISC
-/* Convert Internet host address from numbers-and-dots notation in CP
- into binary data and store the result in the structure INP. */
-extern int inet_aton (const char *__cp, struct in_addr *__inp) __THROW;
-
-/* Format a network number NET into presentation format and place result
- in buffer starting at BUF with length of LEN bytes. */
-extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) __THROW;
-
-/* Convert network number for interface type AF in buffer starting at
- CP to presentation format. The result will specifiy BITS bits of
- the number. */
-extern char *inet_net_ntop (int __af, const void *__cp, int __bits,
- char *__buf, size_t __len) __THROW;
-
-/* Convert network number for interface type AF from presentation in
- buffer starting at CP to network format and store result int
- buffer starting at BUF of size LEN. */
-extern int inet_net_pton (int __af, const char *__cp,
- void *__buf, size_t __len) __THROW;
-
-/* Convert ASCII representation in hexadecimal form of the Internet
- address to binary form and place result in buffer of length LEN
- starting at BUF. */
-extern unsigned int inet_nsap_addr (const char *__cp,
- unsigned char *__buf, int __len) __THROW;
-
-/* Convert internet address in binary form in LEN bytes starting at CP
- a presentation form and place result in BUF. */
-extern char *inet_nsap_ntoa (int __len, const unsigned char *__cp,
- char *__buf) __THROW;
-#endif
-
-__END_DECLS
-
-#endif /* arpa/inet.h */
diff --git a/inet/arpa/telnet.h b/inet/arpa/telnet.h
deleted file mode 100644
index 3774c89285..0000000000
--- a/inet/arpa/telnet.h
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)telnet.h 8.2 (Berkeley) 12/15/93
- */
-
-#ifndef _ARPA_TELNET_H
-#define _ARPA_TELNET_H 1
-
-/*
- * Definitions for the TELNET protocol.
- */
-#define IAC 255 /* interpret as command: */
-#define DONT 254 /* you are not to use option */
-#define DO 253 /* please, you use option */
-#define WONT 252 /* I won't use option */
-#define WILL 251 /* I will use option */
-#define SB 250 /* interpret as subnegotiation */
-#define GA 249 /* you may reverse the line */
-#define EL 248 /* erase the current line */
-#define EC 247 /* erase the current character */
-#define AYT 246 /* are you there */
-#define AO 245 /* abort output--but let prog finish */
-#define IP 244 /* interrupt process--permanently */
-#define BREAK 243 /* break */
-#define DM 242 /* data mark--for connect. cleaning */
-#define NOP 241 /* nop */
-#define SE 240 /* end sub negotiation */
-#define EOR 239 /* end of record (transparent mode) */
-#define ABORT 238 /* Abort process */
-#define SUSP 237 /* Suspend process */
-#define xEOF 236 /* End of file: EOF is already used... */
-
-#define SYNCH 242 /* for telfunc calls */
-
-#ifdef TELCMDS
-char *telcmds[] = {
- "EOF", "SUSP", "ABORT", "EOR",
- "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC",
- "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0,
-};
-#else
-extern char *telcmds[];
-#endif
-
-#define TELCMD_FIRST xEOF
-#define TELCMD_LAST IAC
-#define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \
- (unsigned int)(x) >= TELCMD_FIRST)
-#define TELCMD(x) telcmds[(x)-TELCMD_FIRST]
-
-/* telnet options */
-#define TELOPT_BINARY 0 /* 8-bit data path */
-#define TELOPT_ECHO 1 /* echo */
-#define TELOPT_RCP 2 /* prepare to reconnect */
-#define TELOPT_SGA 3 /* suppress go ahead */
-#define TELOPT_NAMS 4 /* approximate message size */
-#define TELOPT_STATUS 5 /* give status */
-#define TELOPT_TM 6 /* timing mark */
-#define TELOPT_RCTE 7 /* remote controlled transmission and echo */
-#define TELOPT_NAOL 8 /* negotiate about output line width */
-#define TELOPT_NAOP 9 /* negotiate about output page size */
-#define TELOPT_NAOCRD 10 /* negotiate about CR disposition */
-#define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */
-#define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */
-#define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */
-#define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */
-#define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */
-#define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */
-#define TELOPT_XASCII 17 /* extended ascii character set */
-#define TELOPT_LOGOUT 18 /* force logout */
-#define TELOPT_BM 19 /* byte macro */
-#define TELOPT_DET 20 /* data entry terminal */
-#define TELOPT_SUPDUP 21 /* supdup protocol */
-#define TELOPT_SUPDUPOUTPUT 22 /* supdup output */
-#define TELOPT_SNDLOC 23 /* send location */
-#define TELOPT_TTYPE 24 /* terminal type */
-#define TELOPT_EOR 25 /* end or record */
-#define TELOPT_TUID 26 /* TACACS user identification */
-#define TELOPT_OUTMRK 27 /* output marking */
-#define TELOPT_TTYLOC 28 /* terminal location number */
-#define TELOPT_3270REGIME 29 /* 3270 regime */
-#define TELOPT_X3PAD 30 /* X.3 PAD */
-#define TELOPT_NAWS 31 /* window size */
-#define TELOPT_TSPEED 32 /* terminal speed */
-#define TELOPT_LFLOW 33 /* remote flow control */
-#define TELOPT_LINEMODE 34 /* Linemode option */
-#define TELOPT_XDISPLOC 35 /* X Display Location */
-#define TELOPT_OLD_ENVIRON 36 /* Old - Environment variables */
-#define TELOPT_AUTHENTICATION 37/* Authenticate */
-#define TELOPT_ENCRYPT 38 /* Encryption option */
-#define TELOPT_NEW_ENVIRON 39 /* New - Environment variables */
-#define TELOPT_EXOPL 255 /* extended-options-list */
-
-
-#define NTELOPTS (1+TELOPT_NEW_ENVIRON)
-#ifdef TELOPTS
-char *telopts[NTELOPTS+1] = {
- "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME",
- "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP",
- "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS",
- "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO",
- "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT",
- "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD",
- "TACACS UID", "OUTPUT MARKING", "TTYLOC",
- "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",
- "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",
- "ENCRYPT", "NEW-ENVIRON",
- 0,
-};
-#define TELOPT_FIRST TELOPT_BINARY
-#define TELOPT_LAST TELOPT_NEW_ENVIRON
-#define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST)
-#define TELOPT(x) telopts[(x)-TELOPT_FIRST]
-#endif
-
-/* sub-option qualifiers */
-#define TELQUAL_IS 0 /* option is... */
-#define TELQUAL_SEND 1 /* send option */
-#define TELQUAL_INFO 2 /* ENVIRON: informational version of IS */
-#define TELQUAL_REPLY 2 /* AUTHENTICATION: client version of IS */
-#define TELQUAL_NAME 3 /* AUTHENTICATION: client version of IS */
-
-#define LFLOW_OFF 0 /* Disable remote flow control */
-#define LFLOW_ON 1 /* Enable remote flow control */
-#define LFLOW_RESTART_ANY 2 /* Restart output on any char */
-#define LFLOW_RESTART_XON 3 /* Restart output only on XON */
-
-/*
- * LINEMODE suboptions
- */
-
-#define LM_MODE 1
-#define LM_FORWARDMASK 2
-#define LM_SLC 3
-
-#define MODE_EDIT 0x01
-#define MODE_TRAPSIG 0x02
-#define MODE_ACK 0x04
-#define MODE_SOFT_TAB 0x08
-#define MODE_LIT_ECHO 0x10
-
-#define MODE_MASK 0x1f
-
-/* Not part of protocol, but needed to simplify things... */
-#define MODE_FLOW 0x0100
-#define MODE_ECHO 0x0200
-#define MODE_INBIN 0x0400
-#define MODE_OUTBIN 0x0800
-#define MODE_FORCE 0x1000
-
-#define SLC_SYNCH 1
-#define SLC_BRK 2
-#define SLC_IP 3
-#define SLC_AO 4
-#define SLC_AYT 5
-#define SLC_EOR 6
-#define SLC_ABORT 7
-#define SLC_EOF 8
-#define SLC_SUSP 9
-#define SLC_EC 10
-#define SLC_EL 11
-#define SLC_EW 12
-#define SLC_RP 13
-#define SLC_LNEXT 14
-#define SLC_XON 15
-#define SLC_XOFF 16
-#define SLC_FORW1 17
-#define SLC_FORW2 18
-
-#define NSLC 18
-
-/*
- * For backwards compatibility, we define SLC_NAMES to be the
- * list of names if SLC_NAMES is not defined.
- */
-#define SLC_NAMELIST "0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \
- "ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \
- "LNEXT", "XON", "XOFF", "FORW1", "FORW2", 0,
-#ifdef SLC_NAMES
-char *slc_names[] = {
- SLC_NAMELIST
-};
-#else
-extern char *slc_names[];
-#define SLC_NAMES SLC_NAMELIST
-#endif
-
-#define SLC_NAME_OK(x) ((unsigned int)(x) <= NSLC)
-#define SLC_NAME(x) slc_names[x]
-
-#define SLC_NOSUPPORT 0
-#define SLC_CANTCHANGE 1
-#define SLC_VARIABLE 2
-#define SLC_DEFAULT 3
-#define SLC_LEVELBITS 0x03
-
-#define SLC_FUNC 0
-#define SLC_FLAGS 1
-#define SLC_VALUE 2
-
-#define SLC_ACK 0x80
-#define SLC_FLUSHIN 0x40
-#define SLC_FLUSHOUT 0x20
-
-#define OLD_ENV_VAR 1
-#define OLD_ENV_VALUE 0
-#define NEW_ENV_VAR 0
-#define NEW_ENV_VALUE 1
-#define ENV_ESC 2
-#define ENV_USERVAR 3
-
-/*
- * AUTHENTICATION suboptions
- */
-
-/*
- * Who is authenticating who ...
- */
-#define AUTH_WHO_CLIENT 0 /* Client authenticating server */
-#define AUTH_WHO_SERVER 1 /* Server authenticating client */
-#define AUTH_WHO_MASK 1
-
-/*
- * amount of authentication done
- */
-#define AUTH_HOW_ONE_WAY 0
-#define AUTH_HOW_MUTUAL 2
-#define AUTH_HOW_MASK 2
-
-#define AUTHTYPE_NULL 0
-#define AUTHTYPE_KERBEROS_V4 1
-#define AUTHTYPE_KERBEROS_V5 2
-#define AUTHTYPE_SPX 3
-#define AUTHTYPE_MINK 4
-#define AUTHTYPE_CNT 5
-
-#define AUTHTYPE_TEST 99
-
-#ifdef AUTH_NAMES
-char *authtype_names[] = {
- "NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", 0,
-};
-#else
-extern char *authtype_names[];
-#endif
-
-#define AUTHTYPE_NAME_OK(x) ((unsigned int)(x) < AUTHTYPE_CNT)
-#define AUTHTYPE_NAME(x) authtype_names[x]
-
-/*
- * ENCRYPTion suboptions
- */
-#define ENCRYPT_IS 0 /* I pick encryption type ... */
-#define ENCRYPT_SUPPORT 1 /* I support encryption types ... */
-#define ENCRYPT_REPLY 2 /* Initial setup response */
-#define ENCRYPT_START 3 /* Am starting to send encrypted */
-#define ENCRYPT_END 4 /* Am ending encrypted */
-#define ENCRYPT_REQSTART 5 /* Request you start encrypting */
-#define ENCRYPT_REQEND 6 /* Request you send encrypting */
-#define ENCRYPT_ENC_KEYID 7
-#define ENCRYPT_DEC_KEYID 8
-#define ENCRYPT_CNT 9
-
-#define ENCTYPE_ANY 0
-#define ENCTYPE_DES_CFB64 1
-#define ENCTYPE_DES_OFB64 2
-#define ENCTYPE_CNT 3
-
-#ifdef ENCRYPT_NAMES
-char *encrypt_names[] = {
- "IS", "SUPPORT", "REPLY", "START", "END",
- "REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID",
- 0,
-};
-char *enctype_names[] = {
- "ANY", "DES_CFB64", "DES_OFB64", 0,
-};
-#else
-extern char *encrypt_names[];
-extern char *enctype_names[];
-#endif
-
-
-#define ENCRYPT_NAME_OK(x) ((unsigned int)(x) < ENCRYPT_CNT)
-#define ENCRYPT_NAME(x) encrypt_names[x]
-
-#define ENCTYPE_NAME_OK(x) ((unsigned int)(x) < ENCTYPE_CNT)
-#define ENCTYPE_NAME(x) enctype_names[x]
-
-#endif /* arpa/telnet.h */
diff --git a/inet/arpa/tftp.h b/inet/arpa/tftp.h
deleted file mode 100644
index 86e0b6e814..0000000000
--- a/inet/arpa/tftp.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)tftp.h 8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _ARPA_TFTP_H
-#define _ARPA_TFTP_H 1
-
-/*
- * Trivial File Transfer Protocol (IEN-133)
- */
-#define SEGSIZE 512 /* data segment size */
-
-/*
- * Packet types.
- */
-#define RRQ 01 /* read request */
-#define WRQ 02 /* write request */
-#define DATA 03 /* data packet */
-#define ACK 04 /* acknowledgement */
-#define ERROR 05 /* error code */
-
-struct tftphdr {
- short th_opcode; /* packet type */
- union {
- char tu_padding[3]; /* sizeof() compat */
- struct {
- union {
- unsigned short tu_block; /* block # */
- short tu_code; /* error code */
- } __attribute__ ((__packed__)) th_u3;
- char tu_data[0]; /* data or error string */
- } __attribute__ ((__packed__)) th_u2;
- char tu_stuff[0]; /* request packet stuff */
- } __attribute__ ((__packed__)) th_u1;
-} __attribute__ ((__packed__));
-
-#define th_block th_u1.th_u2.th_u3.tu_block
-#define th_code th_u1.th_u2.th_u3.tu_code
-#define th_stuff th_u1.tu_stuff
-#define th_data th_u1.th_u2.tu_data
-#define th_msg th_u1.th_u2.tu_data
-
-/*
- * Error codes.
- */
-#define EUNDEF 0 /* not defined */
-#define ENOTFOUND 1 /* file not found */
-#define EACCESS 2 /* access violation */
-#define ENOSPACE 3 /* disk full or allocation exceeded */
-#define EBADOP 4 /* illegal TFTP operation */
-#define EBADID 5 /* unknown transfer ID */
-#define EEXISTS 6 /* file already exists */
-#define ENOUSER 7 /* no such user */
-
-#endif /* arpa/tftp.h */
diff --git a/inet/bug-if1.c b/inet/bug-if1.c
deleted file mode 100644
index b70a19d571..0000000000
--- a/inet/bug-if1.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <limits.h>
-#include <stdio.h>
-#include <string.h>
-#include <net/if.h>
-
-
-static int
-do_test (void)
-{
- char buf[IF_NAMESIZE];
- /* Index 0 is always invalid (see RFC 3493). */
- char *cp = if_indextoname (0, buf);
- if (cp != NULL)
- {
- printf ("invalid index returned result \"%s\"\n", cp);
- return 1;
- }
- else if (errno != ENXIO)
- {
- int err = errno;
- char errbuf1[256];
- char errbuf2[256];
-
- printf ("errno = %d (%s), expected %d (%s)\n",
- err, strerror_r (err, errbuf1, sizeof (errbuf1)),
- ENXIO, strerror_r (ENXIO, errbuf2, sizeof (errbuf2)));
- return 1;
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/check_native.c b/inet/check_native.c
deleted file mode 100644
index 3fc40536a3..0000000000
--- a/inet/check_native.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Determine whether interfaces use native transport. Generic version.
- Copyright (C) 2012-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <ifaddrs.h>
-#include <stdint.h>
-
-void
-attribute_hidden
-__check_native (uint32_t a1_index, int *a1_native,
- uint32_t a2_index, int *a2_native)
-{
-}
diff --git a/inet/check_pf.c b/inet/check_pf.c
deleted file mode 100644
index a56723a7df..0000000000
--- a/inet/check_pf.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Determine protocol families for which interfaces exist. Generic version.
- Copyright (C) 2003-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <ifaddrs.h>
-#include <netdb.h>
-#include <stdint.h>
-
-void
-attribute_hidden
-__check_pf (bool *seen_ipv4, bool *seen_ipv6,
- struct in6addrinfo **in6ai, size_t *in6ailen)
-{
- /* By default we have no way to determine information about
- deprecated and temporary addresses. */
- *in6ai = NULL;
- *in6ailen = 0;
-
- /* Get the interface list via getifaddrs. */
- struct ifaddrs *ifa = NULL;
- if (getifaddrs (&ifa) != 0)
- {
- /* We cannot determine what interfaces are available. Be
- pessimistic. */
- *seen_ipv4 = true;
- *seen_ipv6 = true;
- return;
- }
-
- *seen_ipv4 = false;
- *seen_ipv6 = false;
-
- struct ifaddrs *runp;
- for (runp = ifa; runp != NULL; runp = runp->ifa_next)
- if (runp->ifa_addr->sa_family == PF_INET)
- *seen_ipv4 = true;
- else if (runp->ifa_addr->sa_family == PF_INET6)
- *seen_ipv6 = true;
-
- (void) freeifaddrs (ifa);
-}
-
-
-void
-__free_in6ai (struct in6addrinfo *in6ai)
-{
- /* Nothing to do. */
-}
-
-
-#if IS_IN (nscd)
-uint32_t
-__bump_nl_timestamp (void)
-{
- return 0;
-}
-#endif
diff --git a/inet/deadline.c b/inet/deadline.c
deleted file mode 100644
index c1fa415a39..0000000000
--- a/inet/deadline.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Computing deadlines for timeouts.
- Copyright (C) 2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <net-internal.h>
-
-#include <assert.h>
-#include <limits.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <time.h>
-
-struct deadline_current_time internal_function
-__deadline_current_time (void)
-{
- struct deadline_current_time result;
- if (__clock_gettime (CLOCK_MONOTONIC, &result.current) != 0)
- {
- struct timeval current_tv;
- if (__gettimeofday (&current_tv, NULL) == 0)
- __libc_fatal ("Fatal error: gettimeofday system call failed\n");
- result.current.tv_sec = current_tv.tv_sec;
- result.current.tv_nsec = current_tv.tv_usec * 1000;
- }
- assert (result.current.tv_sec >= 0);
- return result;
-}
-
-/* A special deadline value for which __deadline_is_infinite is
- true. */
-static inline struct deadline
-infinite_deadline (void)
-{
- return (struct deadline) { { -1, -1 } };
-}
-
-struct deadline internal_function
-__deadline_from_timeval (struct deadline_current_time current,
- struct timeval tv)
-{
- assert (__is_timeval_valid_timeout (tv));
-
- /* Compute second-based deadline. Perform the addition in
- uintmax_t, which is unsigned, to simply overflow detection. */
- uintmax_t sec = current.current.tv_sec;
- sec += tv.tv_sec;
- if (sec < (uintmax_t) tv.tv_sec)
- return infinite_deadline ();
-
- /* Compute nanosecond deadline. */
- int nsec = current.current.tv_nsec + tv.tv_usec * 1000;
- if (nsec >= 1000 * 1000 * 1000)
- {
- /* Carry nanosecond overflow to seconds. */
- nsec -= 1000 * 1000 * 1000;
- if (sec + 1 < sec)
- return infinite_deadline ();
- ++sec;
- }
- /* This uses a GCC extension, otherwise these casts for detecting
- overflow would not be defined. */
- if ((time_t) sec < 0 || sec != (uintmax_t) (time_t) sec)
- return infinite_deadline ();
-
- return (struct deadline) { { sec, nsec } };
-}
-
-int internal_function
-__deadline_to_ms (struct deadline_current_time current,
- struct deadline deadline)
-{
- if (__deadline_is_infinite (deadline))
- return INT_MAX;
-
- if (current.current.tv_sec > deadline.absolute.tv_sec
- || (current.current.tv_sec == deadline.absolute.tv_sec
- && current.current.tv_nsec >= deadline.absolute.tv_nsec))
- return 0;
- time_t sec = deadline.absolute.tv_sec - current.current.tv_sec;
- if (sec >= INT_MAX)
- /* This value will overflow below. */
- return INT_MAX;
- int nsec = deadline.absolute.tv_nsec - current.current.tv_nsec;
- if (nsec < 0)
- {
- /* Borrow from the seconds field. */
- assert (sec > 0);
- --sec;
- nsec += 1000 * 1000 * 1000;
- }
-
- /* Prepare for rounding up to milliseconds. */
- nsec += 999999;
- if (nsec > 1000 * 1000 * 1000)
- {
- assert (sec < INT_MAX);
- ++sec;
- nsec -= 1000 * 1000 * 1000;
- }
-
- unsigned int msec = nsec / (1000 * 1000);
- if (sec > INT_MAX / 1000)
- return INT_MAX;
- msec += sec * 1000;
- if (msec > INT_MAX)
- return INT_MAX;
- return msec;
-}
diff --git a/inet/ether_aton.c b/inet/ether_aton.c
deleted file mode 100644
index 830389e395..0000000000
--- a/inet/ether_aton.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netinet/ether.h>
-
-
-struct ether_addr *
-ether_aton (const char *asc)
-{
- static struct ether_addr result;
-
- return ether_aton_r (asc, &result);
-}
diff --git a/inet/ether_aton_r.c b/inet/ether_aton_r.c
deleted file mode 100644
index 7b558325ea..0000000000
--- a/inet/ether_aton_r.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <stdlib.h>
-#include <netinet/ether.h>
-#include <netinet/if_ether.h>
-
-
-struct ether_addr *
-ether_aton_r (const char *asc, struct ether_addr *addr)
-{
- size_t cnt;
-
- for (cnt = 0; cnt < 6; ++cnt)
- {
- unsigned int number;
- char ch;
-
- ch = _tolower (*asc++);
- if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f'))
- return NULL;
- number = isdigit (ch) ? (ch - '0') : (ch - 'a' + 10);
-
- ch = _tolower (*asc);
- if ((cnt < 5 && ch != ':') || (cnt == 5 && ch != '\0' && !isspace (ch)))
- {
- ++asc;
- if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f'))
- return NULL;
- number <<= 4;
- number += isdigit (ch) ? (ch - '0') : (ch - 'a' + 10);
-
- ch = *asc;
- if (cnt < 5 && ch != ':')
- return NULL;
- }
-
- /* Store result. */
- addr->ether_addr_octet[cnt] = (unsigned char) number;
-
- /* Skip ':'. */
- ++asc;
- }
-
- return addr;
-}
-libc_hidden_def (ether_aton_r)
diff --git a/inet/ether_hton.c b/inet/ether_hton.c
deleted file mode 100644
index a5523986c9..0000000000
--- a/inet/ether_hton.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <netinet/ether.h>
-#include <netinet/if_ether.h>
-#include <string.h>
-
-#include "../nss/nsswitch.h"
-
-/* Type of the lookup function we need here. */
-typedef int (*lookup_function) (const char *, struct etherent *, char *, int,
- int *);
-
-/* The lookup function for the first entry of this service. */
-extern int __nss_ethers_lookup (service_user **nip, const char *name,
- void **fctp) internal_function;
-
-
-int
-ether_hostton (const char *hostname, struct ether_addr *addr)
-{
- static service_user *startp;
- static lookup_function start_fct;
- service_user *nip;
- union
- {
- lookup_function f;
- void *ptr;
- } fct;
- int no_more;
- enum nss_status status = NSS_STATUS_UNAVAIL;
- struct etherent etherent;
-
- if (startp == NULL)
- {
- no_more = __nss_ethers_lookup (&nip, "gethostton_r", &fct.ptr);
- if (no_more)
- startp = (service_user *) -1;
- else
- {
- startp = nip;
- start_fct = fct.f;
- }
- }
- else
- {
- fct.f = start_fct;
- no_more = (nip = startp) == (service_user *) -1;
- }
-
- while (no_more == 0)
- {
- char buffer[1024];
-
- status = (*fct.f) (hostname, &etherent, buffer, sizeof buffer, &errno);
-
- no_more = __nss_next2 (&nip, "gethostton_r", NULL, &fct.ptr, status, 0);
- }
-
- if (status == NSS_STATUS_SUCCESS)
- memcpy (addr, etherent.e_addr.ether_addr_octet,
- sizeof (struct ether_addr));
-
- return status == NSS_STATUS_SUCCESS ? 0 : -1;
-}
diff --git a/inet/ether_line.c b/inet/ether_line.c
deleted file mode 100644
index 0e2cbbbac6..0000000000
--- a/inet/ether_line.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-#include <netinet/ether.h>
-#include <netinet/if_ether.h>
-
-
-int
-ether_line (const char *line, struct ether_addr *addr, char *hostname)
-{
- for (size_t cnt = 0; cnt < 6; ++cnt)
- {
- unsigned int number;
- char ch;
-
- ch = _tolower (*line++);
- if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f'))
- return -1;
- number = isdigit (ch) ? (ch - '0') : (ch - 'a' + 10);
-
- ch = _tolower (*line);
- if ((cnt < 5 && ch != ':') || (cnt == 5 && ch != '\0' && !isspace (ch)))
- {
- ++line;
- if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f'))
- return -1;
- number <<= 4;
- number += isdigit (ch) ? (ch - '0') : (ch - 'a' + 10);
-
- ch = *line;
- if (cnt < 5 && ch != ':')
- return -1;
- }
-
- /* Store result. */
- addr->ether_addr_octet[cnt] = (unsigned char) number;
-
- /* Skip ':'. */
- if (ch != '\0')
- ++line;
- }
-
- /* Skip initial whitespace. */
- while (isspace (*line))
- ++line;
-
- if (*line == '#' || *line == '\0')
- /* No hostname. */
- return -1;
-
- /* The hostname is up to the next non-space character. */
- /* XXX This can cause trouble because the hostname might be too long
- but we have no possibility to check it here. */
- while (*line != '\0' && *line != '#' && !isspace (*line))
- *hostname++ = *line++;
- *hostname = '\0';
-
- return 0;
-}
diff --git a/inet/ether_ntoa.c b/inet/ether_ntoa.c
deleted file mode 100644
index 1e061bae73..0000000000
--- a/inet/ether_ntoa.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netinet/ether.h>
-#include <netinet/if_ether.h>
-
-
-char *
-ether_ntoa (const struct ether_addr *addr)
-{
- static char asc[18];
-
- return ether_ntoa_r (addr, asc);
-}
diff --git a/inet/ether_ntoa_r.c b/inet/ether_ntoa_r.c
deleted file mode 100644
index 0d735a98b5..0000000000
--- a/inet/ether_ntoa_r.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <netinet/ether.h>
-#include <netinet/if_ether.h>
-
-
-char *
-ether_ntoa_r (const struct ether_addr *addr, char *buf)
-{
- sprintf (buf, "%x:%x:%x:%x:%x:%x",
- addr->ether_addr_octet[0], addr->ether_addr_octet[1],
- addr->ether_addr_octet[2], addr->ether_addr_octet[3],
- addr->ether_addr_octet[4], addr->ether_addr_octet[5]);
- return buf;
-}
-libc_hidden_def (ether_ntoa_r)
diff --git a/inet/ether_ntoh.c b/inet/ether_ntoh.c
deleted file mode 100644
index b2f7422ace..0000000000
--- a/inet/ether_ntoh.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <netinet/ether.h>
-#include <netinet/if_ether.h>
-#include <string.h>
-
-#include <nss/nsswitch.h>
-
-
-/* Type of the lookup function we need here. */
-typedef int (*lookup_function) (const struct ether_addr *, struct etherent *,
- char *, size_t, int *);
-
-/* The lookup function for the first entry of this service. */
-extern int __nss_ethers_lookup (service_user **nip, const char *name,
- void **fctp) internal_function;
-
-
-int
-ether_ntohost (char *hostname, const struct ether_addr *addr)
-{
- static service_user *startp;
- static lookup_function start_fct;
- service_user *nip;
- union
- {
- lookup_function f;
- void *ptr;
- } fct;
- int no_more;
- enum nss_status status = NSS_STATUS_UNAVAIL;
- struct etherent etherent;
-
- if (startp == NULL)
- {
- no_more = __nss_ethers_lookup (&nip, "getntohost_r", &fct.ptr);
- if (no_more)
- startp = (service_user *) -1;
- else
- {
- startp = nip;
- start_fct = fct.f;
- }
- }
- else
- {
- fct.f = start_fct;
- no_more = (nip = startp) == (service_user *) -1;
- }
-
- while (no_more == 0)
- {
- char buffer[1024];
-
- status = (*fct.f) (addr, &etherent, buffer, sizeof buffer, &errno);
-
- no_more = __nss_next2 (&nip, "getntohost_r", NULL, &fct.ptr, status, 0);
- }
-
- if (status == NSS_STATUS_SUCCESS)
- /* XXX This is a potential cause of trouble because the size of
- the HOSTNAME buffer is not known but the interface does not
- provide this information. */
- strcpy (hostname, etherent.e_name);
-
- return status == NSS_STATUS_SUCCESS ? 0 : -1;
-}
diff --git a/inet/getaliasent.c b/inet/getaliasent.c
deleted file mode 100644
index f5bb4f6732..0000000000
--- a/inet/getaliasent.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <aliases.h>
-
-
-#define LOOKUP_TYPE struct aliasent
-#define GETFUNC_NAME getaliasent
-#define BUFLEN 1024
-
-/* There is no nscd support for the aliases file. */
-#undef USE_NSCD
-
-#include "../nss/getXXent.c"
diff --git a/inet/getaliasent_r.c b/inet/getaliasent_r.c
deleted file mode 100644
index c018c52730..0000000000
--- a/inet/getaliasent_r.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <aliases.h>
-
-
-#define LOOKUP_TYPE struct aliasent
-#define SETFUNC_NAME setaliasent
-#define GETFUNC_NAME getaliasent
-#define ENDFUNC_NAME endaliasent
-#define DATABASE_NAME aliases
-
-/* There is no nscd support for the aliases file. */
-#undef USE_NSCD
-
-#include "../nss/getXXent_r.c"
diff --git a/inet/getaliasname.c b/inet/getaliasname.c
deleted file mode 100644
index fad022cc35..0000000000
--- a/inet/getaliasname.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <aliases.h>
-
-
-#define LOOKUP_TYPE struct aliasent
-#define FUNCTION_NAME getaliasbyname
-#define DATABASE_NAME aliases
-#define ADD_PARAMS const char *name
-#define ADD_VARIABLES name
-#define BUFLEN 1024
-
-/* There is no nscd support for the aliases file. */
-#undef USE_NSCD
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/getaliasname_r.c b/inet/getaliasname_r.c
deleted file mode 100644
index 20d5be6883..0000000000
--- a/inet/getaliasname_r.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <aliases.h>
-
-
-#define LOOKUP_TYPE struct aliasent
-#define FUNCTION_NAME getaliasbyname
-#define DATABASE_NAME aliases
-#define ADD_PARAMS const char *name
-#define ADD_VARIABLES name
-
-/* There is no nscd support for the aliases file. */
-#undef USE_NSCD
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/gethstbyad.c b/inet/gethstbyad.c
deleted file mode 100644
index 9604c4b593..0000000000
--- a/inet/gethstbyad.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct hostent
-#define FUNCTION_NAME gethostbyaddr
-#define DATABASE_NAME hosts
-#define ADD_PARAMS const void *addr, socklen_t len, int type
-#define ADD_VARIABLES addr, len, type
-#define BUFLEN 1024
-#define NEED_H_ERRNO 1
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/gethstbyad_r.c b/inet/gethstbyad_r.c
deleted file mode 100644
index 88f428c1db..0000000000
--- a/inet/gethstbyad_r.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-#include <string.h>
-
-
-#define LOOKUP_TYPE struct hostent
-#define FUNCTION_NAME gethostbyaddr
-#define DATABASE_NAME hosts
-#define ADD_PARAMS const void *addr, socklen_t len, int type
-#define ADD_VARIABLES addr, len, type
-#define NEED_H_ERRNO 1
-#define NEED__RES 1
-#define NEED__RES_HCONF 1
-/* If the addr parameter is the IPv6 unspecified address no query must
- be performed. */
-#define PREPROCESS \
- if (len == sizeof (struct in6_addr) \
- && __builtin_expect (memcmp (&__in6addr_any, addr, \
- sizeof (struct in6_addr)), 1) == 0) \
- { \
- *h_errnop = HOST_NOT_FOUND; \
- *result = NULL; \
- return ENOENT; \
- }
-#define POSTPROCESS \
- if (status == NSS_STATUS_SUCCESS) \
- { \
- _res_hconf_reorder_addrs (resbuf); \
- _res_hconf_trim_domains (resbuf); \
- }
-
-/* Special name for the lookup function. */
-#define DB_LOOKUP_FCT __nss_hosts_lookup2
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/gethstbynm.c b/inet/gethstbynm.c
deleted file mode 100644
index 57125fc7f6..0000000000
--- a/inet/gethstbynm.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <errno.h>
-#include <netdb.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-
-#define LOOKUP_TYPE struct hostent
-#define FUNCTION_NAME gethostbyname
-#define DATABASE_NAME hosts
-#define ADD_PARAMS const char *name
-#define ADD_VARIABLES name
-#define BUFLEN 1024
-#define NEED_H_ERRNO 1
-
-#define HANDLE_DIGITS_DOTS 1
-
-#include <nss/getXXbyYY.c>
diff --git a/inet/gethstbynm2.c b/inet/gethstbynm2.c
deleted file mode 100644
index 5aac4d7dad..0000000000
--- a/inet/gethstbynm2.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <errno.h>
-#include <netdb.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-
-#define LOOKUP_TYPE struct hostent
-#define FUNCTION_NAME gethostbyname2
-#define DATABASE_NAME hosts
-#define ADD_PARAMS const char *name, int af
-#define ADD_VARIABLES name, af
-#define BUFLEN 1024
-#define NEED_H_ERRNO 1
-
-#define HANDLE_DIGITS_DOTS 1
-#define HAVE_AF 1
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/gethstbynm2_r.c b/inet/gethstbynm2_r.c
deleted file mode 100644
index 5704797990..0000000000
--- a/inet/gethstbynm2_r.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <errno.h>
-#include <netdb.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-
-#define LOOKUP_TYPE struct hostent
-#define FUNCTION_NAME gethostbyname2
-#define DATABASE_NAME hosts
-#define ADD_PARAMS const char *name, int af
-#define ADD_VARIABLES name, af
-#define NEED_H_ERRNO 1
-#define NEED__RES_HCONF 1
-#define POSTPROCESS \
- if (status == NSS_STATUS_SUCCESS) \
- _res_hconf_reorder_addrs (resbuf);
-
-#define HANDLE_DIGITS_DOTS 1
-#define HAVE_LOOKUP_BUFFER 1
-#define HAVE_AF 1
-
-/* Special name for the lookup function. */
-#define DB_LOOKUP_FCT __nss_hosts_lookup2
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/gethstbynm_r.c b/inet/gethstbynm_r.c
deleted file mode 100644
index 3758a9dde8..0000000000
--- a/inet/gethstbynm_r.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <errno.h>
-#include <netdb.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-
-#define LOOKUP_TYPE struct hostent
-#define FUNCTION_NAME gethostbyname
-#define DATABASE_NAME hosts
-#define ADD_PARAMS const char *name
-#define ADD_VARIABLES name
-#define NEED_H_ERRNO 1
-#define NEED__RES_HCONF 1
-#define POSTPROCESS \
- if (status == NSS_STATUS_SUCCESS) \
- _res_hconf_reorder_addrs (resbuf);
-
-#define HANDLE_DIGITS_DOTS 1
-#define HAVE_LOOKUP_BUFFER 1
-
-/* Special name for the lookup function. */
-#define DB_LOOKUP_FCT __nss_hosts_lookup2
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/gethstent.c b/inet/gethstent.c
deleted file mode 100644
index b7faf9f72c..0000000000
--- a/inet/gethstent.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct hostent
-#define GETFUNC_NAME gethostent
-#define BUFLEN 1024
-#define NEED_H_ERRNO 1
-
-#include "../nss/getXXent.c"
diff --git a/inet/gethstent_r.c b/inet/gethstent_r.c
deleted file mode 100644
index dacbbc99f8..0000000000
--- a/inet/gethstent_r.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct hostent
-#define SETFUNC_NAME sethostent
-#define GETFUNC_NAME gethostent
-#define ENDFUNC_NAME endhostent
-#define DATABASE_NAME hosts
-#define STAYOPEN int stayopen
-#define STAYOPEN_VAR stayopen
-#define NEED_H_ERRNO 1
-#define NEED__RES 1
-
-/* Special name for the lookup function. */
-#define DB_LOOKUP_FCT __nss_hosts_lookup2
-
-#include "../nss/getXXent_r.c"
diff --git a/inet/getipv4sourcefilter.c b/inet/getipv4sourcefilter.c
deleted file mode 100644
index 5b1734ccfe..0000000000
--- a/inet/getipv4sourcefilter.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Get source filter. Stub version.
- Copyright (C) 2004-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdint.h>
-#include <netinet/in.h>
-
-
-int
-getipv4sourcefilter (int s, struct in_addr interface, struct in_addr group,
- uint32_t *fmode, uint32_t *numsrc, struct in_addr *slist)
-{
- __set_errno (ENOSYS);
- return -1;
-}
-stub_warning (getipv4sourcefilter)
diff --git a/inet/getnameinfo.c b/inet/getnameinfo.c
deleted file mode 100644
index 5d2b9b7559..0000000000
--- a/inet/getnameinfo.c
+++ /dev/null
@@ -1,563 +0,0 @@
-/* Convert socket address to string using Name Service Switch modules.
- Copyright (C) 1997-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* The Inner Net License, Version 2.00
-
- The author(s) grant permission for redistribution and use in source and
-binary forms, with or without modification, of the software and documentation
-provided that the following conditions are met:
-
-0. If you receive a version of the software that is specifically labelled
- as not being for redistribution (check the version message and/or README),
- you are not permitted to redistribute that version of the software in any
- way or form.
-1. All terms of the all other applicable copyrights and licenses must be
- followed.
-2. Redistributions of source code must retain the authors' copyright
- notice(s), this list of conditions, and the following disclaimer.
-3. Redistributions in binary form must reproduce the authors' copyright
- notice(s), this list of conditions, and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-4. [The copyright holder has authorized the removal of this clause.]
-5. Neither the name(s) of the author(s) nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY ITS AUTHORS AND CONTRIBUTORS ``AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- If these license terms cause you a real problem, contact the author. */
-
-/* This software is Copyright 1996 by Craig Metz, All Rights Reserved. */
-
-#include <errno.h>
-#include <netdb.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdint.h>
-#include <arpa/inet.h>
-#include <net/if.h>
-#include <netinet/in.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <sys/un.h>
-#include <sys/utsname.h>
-#include <libc-lock.h>
-#include <scratch_buffer.h>
-
-#ifdef HAVE_LIBIDN
-# include <libidn/idna.h>
-extern int __idna_to_unicode_lzlz (const char *input, char **output,
- int flags);
-#endif
-
-#ifndef min
-# define min(x,y) (((x) > (y)) ? (y) : (x))
-#endif /* min */
-
-libc_freeres_ptr (static char *domain);
-
-
-static char *
-internal_function
-nrl_domainname (void)
-{
- static int not_first;
-
- if (! not_first)
- {
- __libc_lock_define_initialized (static, lock);
- __libc_lock_lock (lock);
-
- if (! not_first)
- {
- char *c;
- struct hostent *h, th;
- int herror;
- struct scratch_buffer tmpbuf;
-
- scratch_buffer_init (&tmpbuf);
- not_first = 1;
-
- while (__gethostbyname_r ("localhost", &th,
- tmpbuf.data, tmpbuf.length,
- &h, &herror))
- {
- if (herror == NETDB_INTERNAL && errno == ERANGE)
- {
- if (!scratch_buffer_grow (&tmpbuf))
- goto done;
- }
- else
- break;
- }
-
- if (h && (c = strchr (h->h_name, '.')))
- domain = __strdup (++c);
- else
- {
- /* The name contains no domain information. Use the name
- now to get more information. */
- while (__gethostname (tmpbuf.data, tmpbuf.length))
- if (!scratch_buffer_grow (&tmpbuf))
- goto done;
-
- if ((c = strchr (tmpbuf.data, '.')))
- domain = __strdup (++c);
- else
- {
- /* We need to preserve the hostname. */
- const char *hstname = strdupa (tmpbuf.data);
-
- while (__gethostbyname_r (hstname, &th,
- tmpbuf.data, tmpbuf.length,
- &h, &herror))
- {
- if (herror == NETDB_INTERNAL && errno == ERANGE)
- {
- if (!scratch_buffer_grow (&tmpbuf))
- goto done;
- }
- else
- break;
- }
-
- if (h && (c = strchr(h->h_name, '.')))
- domain = __strdup (++c);
- else
- {
- struct in_addr in_addr;
-
- in_addr.s_addr = htonl (INADDR_LOOPBACK);
-
- while (__gethostbyaddr_r ((const char *) &in_addr,
- sizeof (struct in_addr),
- AF_INET, &th,
- tmpbuf.data, tmpbuf.length,
- &h, &herror))
- {
- if (herror == NETDB_INTERNAL && errno == ERANGE)
- {
- if (!scratch_buffer_grow (&tmpbuf))
- goto done;
- }
- else
- break;
- }
-
- if (h && (c = strchr (h->h_name, '.')))
- domain = __strdup (++c);
- }
- }
- }
- done:
- scratch_buffer_free (&tmpbuf);
- }
-
- __libc_lock_unlock (lock);
- }
-
- return domain;
-};
-
-/* Copy a string to a destination buffer with length checking. Return
- EAI_OVERFLOW if the buffer is not large enough, and 0 on
- success. */
-static int
-checked_copy (char *dest, size_t destlen, const char *source)
-{
- size_t source_length = strlen (source);
- if (source_length + 1 > destlen)
- return EAI_OVERFLOW;
- memcpy (dest, source, source_length + 1);
- return 0;
-}
-
-/* Helper function for CHECKED_SNPRINTF below. */
-static int
-check_sprintf_result (int result, size_t destlen)
-{
- if (result < 0)
- return EAI_SYSTEM;
- if ((size_t) result >= destlen)
- /* If ret == destlen, there was no room for the terminating NUL
- character. */
- return EAI_OVERFLOW;
- return 0;
-}
-
-/* Format a string in the destination buffer. Return 0 on success,
- EAI_OVERFLOW in case the buffer is too small, or EAI_SYSTEM on any
- other error. */
-#define CHECKED_SNPRINTF(dest, destlen, format, ...) \
- check_sprintf_result \
- (__snprintf (dest, destlen, format, __VA_ARGS__), destlen)
-
-/* Convert host name, AF_INET/AF_INET6 case, name only. */
-static int
-gni_host_inet_name (struct scratch_buffer *tmpbuf,
- const struct sockaddr *sa, socklen_t addrlen,
- char *host, socklen_t hostlen, int flags)
-{
- int herrno;
- struct hostent th;
- struct hostent *h = NULL;
- if (sa->sa_family == AF_INET6)
- {
- const struct sockaddr_in6 *sin6p = (const struct sockaddr_in6 *) sa;
- while (__gethostbyaddr_r (&sin6p->sin6_addr, sizeof(struct in6_addr),
- AF_INET6, &th, tmpbuf->data, tmpbuf->length,
- &h, &herrno))
- if (herrno == NETDB_INTERNAL && errno == ERANGE)
- {
- if (!scratch_buffer_grow (tmpbuf))
- {
- __set_h_errno (herrno);
- return EAI_MEMORY;
- }
- }
- else
- break;
- }
- else
- {
- const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa;
- while (__gethostbyaddr_r (&sinp->sin_addr, sizeof(struct in_addr),
- AF_INET, &th, tmpbuf->data, tmpbuf->length,
- &h, &herrno))
- if (herrno == NETDB_INTERNAL && errno == ERANGE)
- {
- if (!scratch_buffer_grow (tmpbuf))
- {
- __set_h_errno (herrno);
- return EAI_MEMORY;
- }
- }
- else
- break;
- }
-
- if (h == NULL)
- {
- if (herrno == NETDB_INTERNAL)
- {
- __set_h_errno (herrno);
- return EAI_SYSTEM;
- }
- if (herrno == TRY_AGAIN)
- {
- __set_h_errno (herrno);
- return EAI_AGAIN;
- }
- }
-
- if (h)
- {
- char *c;
- if ((flags & NI_NOFQDN)
- && (c = nrl_domainname ())
- && (c = strstr (h->h_name, c))
- && (c != h->h_name) && (*(--c) == '.'))
- /* Terminate the string after the prefix. */
- *c = '\0';
-
-#ifdef HAVE_LIBIDN
- /* If requested, convert from the IDN format. */
- if (flags & NI_IDN)
- {
- int idn_flags = 0;
- if (flags & NI_IDN_ALLOW_UNASSIGNED)
- idn_flags |= IDNA_ALLOW_UNASSIGNED;
- if (flags & NI_IDN_USE_STD3_ASCII_RULES)
- idn_flags |= IDNA_USE_STD3_ASCII_RULES;
-
- char *out;
- int rc = __idna_to_unicode_lzlz (h->h_name, &out,
- idn_flags);
- if (rc != IDNA_SUCCESS)
- {
- if (rc == IDNA_MALLOC_ERROR)
- return EAI_MEMORY;
- if (rc == IDNA_DLOPEN_ERROR)
- return EAI_SYSTEM;
- return EAI_IDN_ENCODE;
- }
-
- if (out != h->h_name)
- {
- h->h_name = strdupa (out);
- free (out);
- }
- }
-#endif
-
- size_t len = strlen (h->h_name) + 1;
- if (len > hostlen)
- return EAI_OVERFLOW;
-
- memcpy (host, h->h_name, len);
-
- return 0;
- }
-
- return EAI_NONAME;
-}
-
-/* Convert host name, AF_INET/AF_INET6 case, numeric conversion. */
-static int
-gni_host_inet_numeric (struct scratch_buffer *tmpbuf,
- const struct sockaddr *sa, socklen_t addrlen,
- char *host, socklen_t hostlen, int flags)
-{
- if (sa->sa_family == AF_INET6)
- {
- const struct sockaddr_in6 *sin6p = (const struct sockaddr_in6 *) sa;
- if (inet_ntop (AF_INET6, &sin6p->sin6_addr, host, hostlen) == NULL)
- return EAI_OVERFLOW;
-
- uint32_t scopeid = sin6p->sin6_scope_id;
- if (scopeid != 0)
- {
- size_t used_hostlen = __strnlen (host, hostlen);
- /* Location of the scope string in the host buffer. */
- char *scope_start = host + used_hostlen;
- size_t scope_length = hostlen - used_hostlen;
-
- if (IN6_IS_ADDR_LINKLOCAL (&sin6p->sin6_addr)
- || IN6_IS_ADDR_MC_LINKLOCAL (&sin6p->sin6_addr))
- {
- char scopebuf[IFNAMSIZ];
- if (if_indextoname (scopeid, scopebuf) != NULL)
- return CHECKED_SNPRINTF
- (scope_start, scope_length,
- "%c%s", SCOPE_DELIMITER, scopebuf);
- }
- return CHECKED_SNPRINTF
- (scope_start, scope_length, "%c%u", SCOPE_DELIMITER, scopeid);
- }
- }
- else
- {
- const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa;
- if (inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen) == NULL)
- return EAI_OVERFLOW;
- }
- return 0;
-}
-
-/* Convert AF_INET or AF_INET6 socket address, host part. */
-static int
-gni_host_inet (struct scratch_buffer *tmpbuf,
- const struct sockaddr *sa, socklen_t addrlen,
- char *host, socklen_t hostlen, int flags)
-{
- if (!(flags & NI_NUMERICHOST))
- {
- int result = gni_host_inet_name
- (tmpbuf, sa, addrlen, host, hostlen, flags);
- if (result != EAI_NONAME)
- return result;
- }
-
- if (flags & NI_NAMEREQD)
- return EAI_NONAME;
- else
- return gni_host_inet_numeric
- (tmpbuf, sa, addrlen, host, hostlen, flags);
-}
-
-/* Convert AF_LOCAL socket address, host part. */
-static int
-gni_host_local (struct scratch_buffer *tmpbuf,
- const struct sockaddr *sa, socklen_t addrlen,
- char *host, socklen_t hostlen, int flags)
-{
- if (!(flags & NI_NUMERICHOST))
- {
- struct utsname utsname;
- if (uname (&utsname) == 0)
- return checked_copy (host, hostlen, utsname.nodename);
- }
-
- if (flags & NI_NAMEREQD)
- return EAI_NONAME;
-
- return checked_copy (host, hostlen, "localhost");
-}
-
-/* Convert the host part of an AF_LOCAK socket address. */
-static int
-gni_host (struct scratch_buffer *tmpbuf,
- const struct sockaddr *sa, socklen_t addrlen,
- char *host, socklen_t hostlen, int flags)
-{
- switch (sa->sa_family)
- {
- case AF_INET:
- case AF_INET6:
- return gni_host_inet (tmpbuf, sa, addrlen, host, hostlen, flags);
-
- case AF_LOCAL:
- return gni_host_local (tmpbuf, sa, addrlen, host, hostlen, flags);
-
- default:
- return EAI_FAMILY;
- }
-}
-
-/* Convert service to string, AF_INET and AF_INET6 variant. */
-static int
-gni_serv_inet (struct scratch_buffer *tmpbuf,
- const struct sockaddr *sa, socklen_t addrlen,
- char *serv, socklen_t servlen, int flags)
-{
- _Static_assert
- (offsetof (struct sockaddr_in, sin_port)
- == offsetof (struct sockaddr_in6, sin6_port)
- && sizeof (((struct sockaddr_in) {}).sin_port) == sizeof (in_port_t)
- && sizeof (((struct sockaddr_in6) {}).sin6_port) == sizeof (in_port_t),
- "AF_INET and AF_INET6 port consistency");
- const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa;
- if (!(flags & NI_NUMERICSERV))
- {
- struct servent *s, ts;
- int e;
- while ((e = __getservbyport_r (sinp->sin_port,
- ((flags & NI_DGRAM)
- ? "udp" : "tcp"), &ts,
- tmpbuf->data, tmpbuf->length, &s)))
- {
- if (e == ERANGE)
- {
- if (!scratch_buffer_grow (tmpbuf))
- return EAI_MEMORY;
- }
- else
- break;
- }
- if (s)
- return checked_copy (serv, servlen, s->s_name);
- /* Fall through to numeric conversion. */
- }
- return CHECKED_SNPRINTF (serv, servlen, "%d", ntohs (sinp->sin_port));
-}
-
-/* Convert service to string, AF_LOCAL variant. */
-static int
-gni_serv_local (struct scratch_buffer *tmpbuf,
- const struct sockaddr *sa, socklen_t addrlen,
- char *serv, socklen_t servlen, int flags)
-{
- return checked_copy
- (serv, servlen, ((const struct sockaddr_un *) sa)->sun_path);
-}
-
-/* Convert service to string, dispatching to the implementations
- above. */
-static int
-gni_serv (struct scratch_buffer *tmpbuf,
- const struct sockaddr *sa, socklen_t addrlen,
- char *serv, socklen_t servlen, int flags)
-{
- switch (sa->sa_family)
- {
- case AF_INET:
- case AF_INET6:
- return gni_serv_inet (tmpbuf, sa, addrlen, serv, servlen, flags);
- case AF_LOCAL:
- return gni_serv_local (tmpbuf, sa, addrlen, serv, servlen, flags);
- default:
- return EAI_FAMILY;
- }
-}
-
-int
-getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host,
- socklen_t hostlen, char *serv, socklen_t servlen,
- int flags)
-{
- if (flags & ~(NI_NUMERICHOST|NI_NUMERICSERV|NI_NOFQDN|NI_NAMEREQD|NI_DGRAM
-#ifdef HAVE_LIBIDN
- |NI_IDN|NI_IDN_ALLOW_UNASSIGNED|NI_IDN_USE_STD3_ASCII_RULES
-#endif
- ))
- return EAI_BADFLAGS;
-
- if (sa == NULL || addrlen < sizeof (sa_family_t))
- return EAI_FAMILY;
-
- if ((flags & NI_NAMEREQD) && host == NULL && serv == NULL)
- return EAI_NONAME;
-
- switch (sa->sa_family)
- {
- case AF_LOCAL:
- if (addrlen < (socklen_t) offsetof (struct sockaddr_un, sun_path))
- return EAI_FAMILY;
- break;
- case AF_INET:
- if (addrlen < sizeof (struct sockaddr_in))
- return EAI_FAMILY;
- break;
- case AF_INET6:
- if (addrlen < sizeof (struct sockaddr_in6))
- return EAI_FAMILY;
- break;
- default:
- return EAI_FAMILY;
- }
-
- struct scratch_buffer tmpbuf;
- scratch_buffer_init (&tmpbuf);
-
- if (host != NULL && hostlen > 0)
- {
- int result = gni_host (&tmpbuf, sa, addrlen, host, hostlen, flags);
- if (result != 0)
- {
- scratch_buffer_free (&tmpbuf);
- return result;
- }
- }
-
- if (serv && (servlen > 0))
- {
- int result = gni_serv (&tmpbuf, sa, addrlen, serv, servlen, flags);
- if (result != 0)
- {
- scratch_buffer_free (&tmpbuf);
- return result;
- }
- }
-
- scratch_buffer_free (&tmpbuf);
- return 0;
-}
-libc_hidden_def (getnameinfo)
diff --git a/inet/getnetbyad.c b/inet/getnetbyad.c
deleted file mode 100644
index 7a713a6d53..0000000000
--- a/inet/getnetbyad.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-#include <stdint.h>
-
-
-#define LOOKUP_TYPE struct netent
-#define FUNCTION_NAME getnetbyaddr
-#define DATABASE_NAME networks
-#define ADD_PARAMS uint32_t net, int type
-#define ADD_VARIABLES net, type
-#define BUFLEN 1024
-#define NEED_H_ERRNO 1
-
-/* There is no nscd support for the networks file. */
-#undef USE_NSCD
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/getnetbyad_r.c b/inet/getnetbyad_r.c
deleted file mode 100644
index 608b838516..0000000000
--- a/inet/getnetbyad_r.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-#include <stdint.h>
-
-
-#define LOOKUP_TYPE struct netent
-#define FUNCTION_NAME getnetbyaddr
-#define DATABASE_NAME networks
-#define ADD_PARAMS uint32_t net, int type
-#define ADD_VARIABLES net, type
-#define NEED__RES 1
-#define NEED_H_ERRNO 1
-
-/* There is no nscd support for the networks file. */
-#undef USE_NSCD
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/getnetbynm.c b/inet/getnetbynm.c
deleted file mode 100644
index 5a6e144017..0000000000
--- a/inet/getnetbynm.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct netent
-#define FUNCTION_NAME getnetbyname
-#define DATABASE_NAME networks
-#define ADD_PARAMS const char *name
-#define ADD_VARIABLES name
-#define BUFLEN 1024
-#define NEED_H_ERRNO 1
-
-/* There is no nscd support for the networks file. */
-#undef USE_NSCD
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/getnetbynm_r.c b/inet/getnetbynm_r.c
deleted file mode 100644
index 90fb7141a7..0000000000
--- a/inet/getnetbynm_r.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct netent
-#define FUNCTION_NAME getnetbyname
-#define DATABASE_NAME networks
-#define ADD_PARAMS const char *name
-#define ADD_VARIABLES name
-#define NEED__RES 1
-#define NEED_H_ERRNO 1
-
-/* There is no nscd support for the networks file. */
-#undef USE_NSCD
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/getnetent.c b/inet/getnetent.c
deleted file mode 100644
index 03fe497184..0000000000
--- a/inet/getnetent.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct netent
-#define GETFUNC_NAME getnetent
-#define BUFLEN 1024
-#define NEED_H_ERRNO 1
-
-/* There is no nscd support for the networks file. */
-#undef USE_NSCD
-
-#include "../nss/getXXent.c"
diff --git a/inet/getnetent_r.c b/inet/getnetent_r.c
deleted file mode 100644
index ee832e2aa4..0000000000
--- a/inet/getnetent_r.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct netent
-#define SETFUNC_NAME setnetent
-#define GETFUNC_NAME getnetent
-#define ENDFUNC_NAME endnetent
-#define DATABASE_NAME networks
-#define STAYOPEN int stayopen
-#define STAYOPEN_VAR stayopen
-#define NEED__RES 1
-#define NEED_H_ERRNO 1
-
-/* There is no nscd support for the networks file. */
-#undef USE_NSCD
-
-#include "../nss/getXXent_r.c"
diff --git a/inet/getnetgrent.c b/inet/getnetgrent.c
deleted file mode 100644
index 4064edcb61..0000000000
--- a/inet/getnetgrent.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <libc-lock.h>
-
-/* Static buffer for return value. We allocate it when needed. */
-libc_freeres_ptr (static char *buffer);
-/* All three strings should fit in a block of 1kB size. */
-#define BUFSIZE 1024
-
-
-
-static void
-allocate (void)
-{
- buffer = (char *) malloc (BUFSIZE);
-}
-
-int
-getnetgrent (char **hostp, char **userp, char **domainp)
-{
- __libc_once_define (static, once);
- __libc_once (once, allocate);
-
- if (buffer == NULL)
- {
- __set_errno (ENOMEM);
- return -1;
- }
-
- return __getnetgrent_r (hostp, userp, domainp, buffer, BUFSIZE);
-}
diff --git a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c
deleted file mode 100644
index 1b4eb65b89..0000000000
--- a/inet/getnetgrent_r.c
+++ /dev/null
@@ -1,535 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <assert.h>
-#include <atomic.h>
-#include <libc-lock.h>
-#include <errno.h>
-#include <netdb.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <string.h>
-#include "netgroup.h"
-#include "nsswitch.h"
-#include <sysdep.h>
-#include <nscd/nscd_proto.h>
-
-
-/* Protect above variable against multiple uses at the same time. */
-__libc_lock_define_initialized (static, lock)
-
-/* The whole information for the set/get/endnetgrent functions are
- kept in this structure. */
-static struct __netgrent dataset;
-
-/* The lookup function for the first entry of this service. */
-extern int __nss_netgroup_lookup (service_user **nipp, const char *name,
- void **fctp) internal_function;
-
-/* Set up NIP to run through the services. Return nonzero if there are no
- services (left). */
-static int
-setup (void **fctp, service_user **nipp)
-{
- /* Remember the first service_entry, it's always the same. */
- static bool startp_initialized;
- static service_user *startp;
- int no_more;
-
- if (!startp_initialized)
- {
- /* Executing this more than once at the same time must yield the
- same result every time. So we need no locking. */
- no_more = __nss_netgroup_lookup (nipp, "setnetgrent", fctp);
- startp = no_more ? (service_user *) -1 : *nipp;
-#ifdef PTR_MANGLE
- PTR_MANGLE (startp);
-#endif
- atomic_write_barrier ();
- startp_initialized = true;
- }
- else
- {
- service_user *nip = startp;
-#ifdef PTR_DEMANGLE
- PTR_DEMANGLE (nip);
-#endif
- if (nip == (service_user *) -1)
- /* No services at all. */
- return 1;
-
- /* Reset to the beginning of the service list. */
- *nipp = nip;
- /* Look up the first function. */
- no_more = __nss_lookup (nipp, "setnetgrent", NULL, fctp);
- }
- return no_more;
-}
-
-/* Free used memory. */
-static void
-free_memory (struct __netgrent *data)
-{
- while (data->known_groups != NULL)
- {
- struct name_list *tmp = data->known_groups;
- data->known_groups = data->known_groups->next;
- free (tmp);
- }
-
- while (data->needed_groups != NULL)
- {
- struct name_list *tmp = data->needed_groups;
- data->needed_groups = data->needed_groups->next;
- free (tmp);
- }
-}
-
-static void
-endnetgrent_hook (struct __netgrent *datap)
-{
- enum nss_status (*endfct) (struct __netgrent *);
-
- if (datap->nip == NULL || datap->nip == (service_user *) -1l)
- return;
-
- endfct = __nss_lookup_function (datap->nip, "endnetgrent");
- if (endfct != NULL)
- (void) (*endfct) (datap);
- datap->nip = NULL;
-}
-
-static int
-internal_function
-__internal_setnetgrent_reuse (const char *group, struct __netgrent *datap,
- int *errnop)
-{
- union
- {
- enum nss_status (*f) (const char *, struct __netgrent *);
- void *ptr;
- } fct;
- enum nss_status status = NSS_STATUS_UNAVAIL;
- struct name_list *new_elem;
-
- /* Free data from previous service. */
- endnetgrent_hook (datap);
-
- /* Cycle through all the services and run their setnetgrent functions. */
- int no_more = setup (&fct.ptr, &datap->nip);
- while (! no_more)
- {
- assert (datap->data == NULL);
-
- /* Ignore status, we force check in `__nss_next2'. */
- status = DL_CALL_FCT (*fct.f, (group, datap));
-
- service_user *old_nip = datap->nip;
- no_more = __nss_next2 (&datap->nip, "setnetgrent", NULL, &fct.ptr,
- status, 0);
-
- if (status == NSS_STATUS_SUCCESS && ! no_more)
- {
- enum nss_status (*endfct) (struct __netgrent *);
-
- endfct = __nss_lookup_function (old_nip, "endnetgrent");
- if (endfct != NULL)
- (void) DL_CALL_FCT (*endfct, (datap));
- }
- }
-
- /* Add the current group to the list of known groups. */
- size_t group_len = strlen (group) + 1;
- new_elem = (struct name_list *) malloc (sizeof (struct name_list)
- + group_len);
- if (new_elem == NULL)
- {
- *errnop = errno;
- status = NSS_STATUS_TRYAGAIN;
- }
- else
- {
- new_elem->next = datap->known_groups;
- memcpy (new_elem->name, group, group_len);
- datap->known_groups = new_elem;
- }
-
- return status == NSS_STATUS_SUCCESS;
-}
-
-int
-internal_function
-__internal_setnetgrent (const char *group, struct __netgrent *datap)
-{
- /* Free list of all netgroup names from last run. */
- free_memory (datap);
-
- return __internal_setnetgrent_reuse (group, datap, &errno);
-}
-libc_hidden_def (__internal_setnetgrent)
-
-static int
-nscd_setnetgrent (const char *group)
-{
-#ifdef USE_NSCD
- if (__nss_not_use_nscd_netgroup > 0
- && ++__nss_not_use_nscd_netgroup > NSS_NSCD_RETRY)
- __nss_not_use_nscd_netgroup = 0;
-
- if (!__nss_not_use_nscd_netgroup
- && !__nss_database_custom[NSS_DBSIDX_netgroup])
- return __nscd_setnetgrent (group, &dataset);
-#endif
- return -1;
-}
-
-int
-setnetgrent (const char *group)
-{
- int result;
-
- __libc_lock_lock (lock);
-
- result = nscd_setnetgrent (group);
- if (result < 0)
- result = __internal_setnetgrent (group, &dataset);
-
- __libc_lock_unlock (lock);
-
- return result;
-}
-
-void
-internal_function
-__internal_endnetgrent (struct __netgrent *datap)
-{
- endnetgrent_hook (datap);
- /* Now free list of all netgroup names from last run. */
- free_memory (datap);
-}
-libc_hidden_def (__internal_endnetgrent)
-
-
-void
-endnetgrent (void)
-{
- __libc_lock_lock (lock);
-
- __internal_endnetgrent (&dataset);
-
- __libc_lock_unlock (lock);
-}
-
-#ifdef USE_NSCD
-static const char *
-get_nonempty_val (const char *in)
-{
- if (*in == '\0')
- return NULL;
- return in;
-}
-
-static enum nss_status
-nscd_getnetgrent (struct __netgrent *datap, char *buffer, size_t buflen,
- int *errnop)
-{
- if (datap->cursor >= datap->data + datap->data_size)
- return NSS_STATUS_UNAVAIL;
-
- datap->type = triple_val;
- datap->val.triple.host = get_nonempty_val (datap->cursor);
- datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
- datap->val.triple.user = get_nonempty_val (datap->cursor);
- datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
- datap->val.triple.domain = get_nonempty_val (datap->cursor);
- datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
-
- return NSS_STATUS_SUCCESS;
-}
-#endif
-
-int
-internal_function
-__internal_getnetgrent_r (char **hostp, char **userp, char **domainp,
- struct __netgrent *datap,
- char *buffer, size_t buflen, int *errnop)
-{
- enum nss_status (*fct) (struct __netgrent *, char *, size_t, int *);
-
- /* Initialize status to return if no more functions are found. */
- enum nss_status status = NSS_STATUS_NOTFOUND;
-
- /* Run through available functions, starting with the same function last
- run. We will repeat each function as long as it succeeds, and then go
- on to the next service action. */
- int no_more = datap->nip == NULL;
- if (! no_more)
- {
-#ifdef USE_NSCD
- /* This bogus function pointer is a special marker left by
- __nscd_setnetgrent to tell us to use the data it left
- before considering any modules. */
- if (datap->nip == (service_user *) -1l)
- fct = nscd_getnetgrent;
- else
-#endif
- {
- fct = __nss_lookup_function (datap->nip, "getnetgrent_r");
- no_more = fct == NULL;
- }
-
- while (! no_more)
- {
- status = DL_CALL_FCT (*fct, (datap, buffer, buflen, &errno));
-
- if (status == NSS_STATUS_RETURN
- /* The service returned a NOTFOUND, but there are more groups that
- we need to resolve before we give up. */
- || (status == NSS_STATUS_NOTFOUND && datap->needed_groups != NULL))
- {
- /* This was the last one for this group. Look at next group
- if available. */
- int found = 0;
- while (datap->needed_groups != NULL && ! found)
- {
- struct name_list *tmp = datap->needed_groups;
- datap->needed_groups = datap->needed_groups->next;
- tmp->next = datap->known_groups;
- datap->known_groups = tmp;
-
- found = __internal_setnetgrent_reuse (datap->known_groups->name,
- datap, errnop);
- }
-
- if (found && datap->nip != NULL)
- {
- fct = __nss_lookup_function (datap->nip, "getnetgrent_r");
- if (fct != NULL)
- continue;
- }
- }
- else if (status == NSS_STATUS_SUCCESS && datap->type == group_val)
- {
- /* The last entry was a name of another netgroup. */
- struct name_list *namep;
-
- /* Ignore if we've seen the name before. */
- for (namep = datap->known_groups; namep != NULL;
- namep = namep->next)
- if (strcmp (datap->val.group, namep->name) == 0)
- break;
- if (namep == NULL)
- for (namep = datap->needed_groups; namep != NULL;
- namep = namep->next)
- if (strcmp (datap->val.group, namep->name) == 0)
- break;
- if (namep != NULL)
- /* Really ignore. */
- continue;
-
- size_t group_len = strlen (datap->val.group) + 1;
- namep = (struct name_list *) malloc (sizeof (struct name_list)
- + group_len);
- if (namep == NULL)
- /* We are out of memory. */
- status = NSS_STATUS_RETURN;
- else
- {
- namep->next = datap->needed_groups;
- memcpy (namep->name, datap->val.group, group_len);
- datap->needed_groups = namep;
- /* And get the next entry. */
- continue;
- }
- }
- break;
- }
- }
-
- if (status == NSS_STATUS_SUCCESS)
- {
- *hostp = (char *) datap->val.triple.host;
- *userp = (char *) datap->val.triple.user;
- *domainp = (char *) datap->val.triple.domain;
- }
-
- return status == NSS_STATUS_SUCCESS ? 1 : 0;
-}
-libc_hidden_def (__internal_getnetgrent_r)
-
-/* The real entry point. */
-int
-__getnetgrent_r (char **hostp, char **userp, char **domainp,
- char *buffer, size_t buflen)
-{
- enum nss_status status;
-
- __libc_lock_lock (lock);
-
- status = __internal_getnetgrent_r (hostp, userp, domainp, &dataset,
- buffer, buflen, &errno);
-
- __libc_lock_unlock (lock);
-
- return status;
-}
-weak_alias (__getnetgrent_r, getnetgrent_r)
-
-/* Test whether given (host,user,domain) triple is in NETGROUP. */
-int
-innetgr (const char *netgroup, const char *host, const char *user,
- const char *domain)
-{
-#ifdef USE_NSCD
- if (__nss_not_use_nscd_netgroup > 0
- && ++__nss_not_use_nscd_netgroup > NSS_NSCD_RETRY)
- __nss_not_use_nscd_netgroup = 0;
-
- if (!__nss_not_use_nscd_netgroup
- && !__nss_database_custom[NSS_DBSIDX_netgroup])
- {
- int result = __nscd_innetgr (netgroup, host, user, domain);
- if (result >= 0)
- return result;
- }
-#endif
-
- union
- {
- enum nss_status (*f) (const char *, struct __netgrent *);
- void *ptr;
- } setfct;
- void (*endfct) (struct __netgrent *);
- int (*getfct) (struct __netgrent *, char *, size_t, int *);
- struct __netgrent entry;
- int result = 0;
- const char *current_group = netgroup;
-
- memset (&entry, '\0', sizeof (entry));
-
- /* Walk through the services until we found an answer or we shall
- not work further. We can do some optimization here. Since all
- services must provide the `setnetgrent' function we can do all
- the work during one walk through the service list. */
- while (1)
- {
- int no_more = setup (&setfct.ptr, &entry.nip);
- while (! no_more)
- {
- assert (entry.data == NULL);
-
- /* Open netgroup. */
- enum nss_status status = DL_CALL_FCT (*setfct.f,
- (current_group, &entry));
-
- if (status == NSS_STATUS_SUCCESS
- && (getfct = __nss_lookup_function (entry.nip, "getnetgrent_r"))
- != NULL)
- {
- char buffer[1024];
-
- while (DL_CALL_FCT (*getfct,
- (&entry, buffer, sizeof buffer, &errno))
- == NSS_STATUS_SUCCESS)
- {
- if (entry.type == group_val)
- {
- /* Make sure we haven't seen the name before. */
- struct name_list *namep;
-
- for (namep = entry.known_groups; namep != NULL;
- namep = namep->next)
- if (strcmp (entry.val.group, namep->name) == 0)
- break;
- if (namep == NULL)
- for (namep = entry.needed_groups; namep != NULL;
- namep = namep->next)
- if (strcmp (entry.val.group, namep->name) == 0)
- break;
- if (namep == NULL
- && strcmp (netgroup, entry.val.group) != 0)
- {
- size_t group_len = strlen (entry.val.group) + 1;
- namep =
- (struct name_list *) malloc (sizeof (*namep)
- + group_len);
- if (namep == NULL)
- {
- /* Out of memory, simply return. */
- result = -1;
- break;
- }
-
- namep->next = entry.needed_groups;
- memcpy (namep->name, entry.val.group, group_len);
- entry.needed_groups = namep;
- }
- }
- else
- {
- if ((entry.val.triple.host == NULL || host == NULL
- || __strcasecmp (entry.val.triple.host, host) == 0)
- && (entry.val.triple.user == NULL || user == NULL
- || strcmp (entry.val.triple.user, user) == 0)
- && (entry.val.triple.domain == NULL || domain == NULL
- || __strcasecmp (entry.val.triple.domain,
- domain) == 0))
- {
- result = 1;
- break;
- }
- }
- }
-
- /* If we found one service which does know the given
- netgroup we don't try further. */
- status = NSS_STATUS_RETURN;
- }
-
- /* Free all resources of the service. */
- endfct = __nss_lookup_function (entry.nip, "endnetgrent");
- if (endfct != NULL)
- DL_CALL_FCT (*endfct, (&entry));
-
- if (result != 0)
- break;
-
- /* Look for the next service. */
- no_more = __nss_next2 (&entry.nip, "setnetgrent", NULL,
- &setfct.ptr, status, 0);
- }
-
- if (result == 0 && entry.needed_groups != NULL)
- {
- struct name_list *tmp = entry.needed_groups;
- entry.needed_groups = tmp->next;
- tmp->next = entry.known_groups;
- entry.known_groups = tmp;
- current_group = tmp->name;
- continue;
- }
-
- /* No way out. */
- break;
- }
-
- /* Free the memory. */
- free_memory (&entry);
-
- return result == 1;
-}
-libc_hidden_def (innetgr)
diff --git a/inet/getproto.c b/inet/getproto.c
deleted file mode 100644
index ba1ef6d0af..0000000000
--- a/inet/getproto.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct protoent
-#define FUNCTION_NAME getprotobynumber
-#define DATABASE_NAME protocols
-#define ADD_PARAMS int proto
-#define ADD_VARIABLES proto
-#define BUFLEN 1024
-
-/* There is no nscd support for the protocols file. */
-#undef USE_NSCD
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/getproto_r.c b/inet/getproto_r.c
deleted file mode 100644
index 7f61605511..0000000000
--- a/inet/getproto_r.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct protoent
-#define FUNCTION_NAME getprotobynumber
-#define DATABASE_NAME protocols
-#define ADD_PARAMS int proto
-#define ADD_VARIABLES proto
-
-/* There is no nscd support for the protocols file. */
-#undef USE_NSCD
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/getprtent.c b/inet/getprtent.c
deleted file mode 100644
index 40ac5f992f..0000000000
--- a/inet/getprtent.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct protoent
-#define GETFUNC_NAME getprotoent
-#define BUFLEN 1024
-
-/* There is no nscd support for the protocols file. */
-#undef USE_NSCD
-
-#include "../nss/getXXent.c"
diff --git a/inet/getprtent_r.c b/inet/getprtent_r.c
deleted file mode 100644
index 5d3bd1f3b9..0000000000
--- a/inet/getprtent_r.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct protoent
-#define SETFUNC_NAME setprotoent
-#define GETFUNC_NAME getprotoent
-#define ENDFUNC_NAME endprotoent
-#define DATABASE_NAME protocols
-#define STAYOPEN int stayopen
-#define STAYOPEN_VAR stayopen
-
-/* There is no nscd support for the protocols file. */
-#undef USE_NSCD
-
-#include "../nss/getXXent_r.c"
diff --git a/inet/getprtname.c b/inet/getprtname.c
deleted file mode 100644
index 714eaf437d..0000000000
--- a/inet/getprtname.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct protoent
-#define FUNCTION_NAME getprotobyname
-#define DATABASE_NAME protocols
-#define ADD_PARAMS const char *name
-#define ADD_VARIABLES name
-#define BUFLEN 1024
-
-/* There is no nscd support for the protocols file. */
-#undef USE_NSCD
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/getprtname_r.c b/inet/getprtname_r.c
deleted file mode 100644
index 88d723d737..0000000000
--- a/inet/getprtname_r.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct protoent
-#define FUNCTION_NAME getprotobyname
-#define DATABASE_NAME protocols
-#define ADD_PARAMS const char *name
-#define ADD_VARIABLES name
-
-/* There is no nscd support for the protocols file. */
-#undef USE_NSCD
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/getservent.c b/inet/getservent.c
deleted file mode 100644
index ac2a037bda..0000000000
--- a/inet/getservent.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct servent
-#define GETFUNC_NAME getservent
-#define BUFLEN 1024
-
-#include "../nss/getXXent.c"
diff --git a/inet/getservent_r.c b/inet/getservent_r.c
deleted file mode 100644
index 22366e6135..0000000000
--- a/inet/getservent_r.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct servent
-#define SETFUNC_NAME setservent
-#define GETFUNC_NAME getservent
-#define ENDFUNC_NAME endservent
-#define DATABASE_NAME services
-#define STAYOPEN int stayopen
-#define STAYOPEN_VAR stayopen
-
-#include "../nss/getXXent_r.c"
diff --git a/inet/getsourcefilter.c b/inet/getsourcefilter.c
deleted file mode 100644
index 8696b176ce..0000000000
--- a/inet/getsourcefilter.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Get source filter. Stub version.
- Copyright (C) 2004-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <netinet/in.h>
-#include <stdint.h>
-
-int
-getsourcefilter (int s, uint32_t interface, const struct sockaddr *group,
- socklen_t grouplen, uint32_t *fmode, uint32_t *numsrc,
- struct sockaddr_storage *slist)
-{
- __set_errno (ENOSYS);
- return -1;
-}
-stub_warning (getsourcefilter)
diff --git a/inet/getsrvbynm.c b/inet/getsrvbynm.c
deleted file mode 100644
index edddacb20d..0000000000
--- a/inet/getsrvbynm.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct servent
-#define FUNCTION_NAME getservbyname
-#define DATABASE_NAME services
-#define ADD_PARAMS const char *name, const char *proto
-#define ADD_VARIABLES name, proto
-#define BUFLEN 1024
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/getsrvbynm_r.c b/inet/getsrvbynm_r.c
deleted file mode 100644
index faa45f2f50..0000000000
--- a/inet/getsrvbynm_r.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct servent
-#define FUNCTION_NAME getservbyname
-#define DATABASE_NAME services
-#define ADD_PARAMS const char *name, const char *proto
-#define ADD_VARIABLES name, proto
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/getsrvbypt.c b/inet/getsrvbypt.c
deleted file mode 100644
index b82d91cd1b..0000000000
--- a/inet/getsrvbypt.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct servent
-#define FUNCTION_NAME getservbyport
-#define DATABASE_NAME services
-#define ADD_PARAMS int port, const char *proto
-#define ADD_VARIABLES port, proto
-#define BUFLEN 1024
-
-#include "../nss/getXXbyYY.c"
diff --git a/inet/getsrvbypt_r.c b/inet/getsrvbypt_r.c
deleted file mode 100644
index 555c2a9cfc..0000000000
--- a/inet/getsrvbypt_r.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-
-
-#define LOOKUP_TYPE struct servent
-#define FUNCTION_NAME getservbyport
-#define DATABASE_NAME services
-#define ADD_PARAMS int port, const char *proto
-#define ADD_VARIABLES port, proto
-
-#include "../nss/getXXbyYY_r.c"
diff --git a/inet/herrno-loc.c b/inet/herrno-loc.c
deleted file mode 100644
index 7dc661a7ba..0000000000
--- a/inet/herrno-loc.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netdb.h>
-#include <tls.h>
-
-
-/* When threaded, h_errno may be a per-thread variable. */
-int *
-weak_const_function
-__h_errno_location (void)
-{
- return &h_errno;
-}
-libc_hidden_def (__h_errno_location)
diff --git a/inet/herrno.c b/inet/herrno.c
deleted file mode 100644
index 44ec0210f3..0000000000
--- a/inet/herrno.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <features.h>
-#include <netdb.h>
-#undef h_errno
-
-#include <tls.h>
-
-/* We need to have the error status variable of the resolver
- accessible in the libc. */
-
-__thread int __h_errno;
-extern __thread int __libc_h_errno __attribute__ ((alias ("__h_errno")))
- attribute_hidden;
-#define h_errno __libc_h_errno
diff --git a/inet/htonl.c b/inet/htonl.c
deleted file mode 100644
index 06efe2c5f3..0000000000
--- a/inet/htonl.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 1993-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdint.h>
-#include <netinet/in.h>
-
-#undef htonl
-#undef ntohl
-
-uint32_t
-htonl (uint32_t x)
-{
-#if BYTE_ORDER == BIG_ENDIAN
- return x;
-#elif BYTE_ORDER == LITTLE_ENDIAN
- return __bswap_32 (x);
-#else
-# error "What kind of system is this?"
-#endif
-}
-weak_alias (htonl, ntohl)
diff --git a/inet/htons.c b/inet/htons.c
deleted file mode 100644
index 0b7159bb2e..0000000000
--- a/inet/htons.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1993-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netinet/in.h>
-
-#undef htons
-#undef ntohs
-
-uint16_t
-htons (uint16_t x)
-{
-#if BYTE_ORDER == BIG_ENDIAN
- return x;
-#elif BYTE_ORDER == LITTLE_ENDIAN
- return __bswap_16 (x);
-#else
-# error "What kind of system is this?"
-#endif
-}
-weak_alias (htons, ntohs)
diff --git a/inet/htontest.c b/inet/htontest.c
deleted file mode 100644
index 9bc006396d..0000000000
--- a/inet/htontest.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Test hton/ntoh functions.
- Copyright (C) 1997-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <endian.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#if BYTE_ORDER == BIG_ENDIAN
-# define TEST(orig, swapped, fct) \
- if ((fct (orig)) != (orig)) { \
- printf ("Failed for %s -> %#x\n", #fct "(" #orig ")", fct (orig)); \
- result = 1; \
- }
-#elif BYTE_ORDER == LITTLE_ENDIAN
-# define TEST(orig, swapped, fct) \
- if ((fct (orig)) != (swapped)) { \
- printf ("Failed for %s -> %#x\n", #fct "(" #orig ")", fct (orig)); \
- result = 1; \
- }
-#else
-# error "Bah, what kind of system do you use?"
-#endif
-
-u_int32_t lo = 0x67452301;
-u_int16_t foo = 0x1234;
-
-int
-main (void)
-{
- int result = 0;
-
- TEST (0x67452301, 0x01234567, htonl);
- TEST (0x67452301, 0x01234567, (htonl));
- TEST (0x67452301, 0x01234567, ntohl);
- TEST (0x67452301, 0x01234567, (ntohl));
-
- TEST (lo, 0x01234567, htonl);
- TEST (lo, 0x01234567, (htonl));
- TEST (lo, 0x01234567, ntohl);
- TEST (lo, 0x01234567, (ntohl));
-
- TEST (0x1234, 0x3412, htons);
- TEST (0x1234, 0x3412, (htons));
- TEST (0x1234, 0x3412, ntohs);
- TEST (0x1234, 0x3412, (ntohs));
-
- TEST (foo, 0x3412, htons);
- TEST (foo, 0x3412, (htons));
- TEST (foo, 0x3412, ntohs);
- TEST (foo, 0x3412, (ntohs));
-
- return result;
-}
diff --git a/inet/if_index.c b/inet/if_index.c
deleted file mode 100644
index 4604e0a35b..0000000000
--- a/inet/if_index.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <net/if.h>
-#include <errno.h>
-#include <stddef.h>
-
-unsigned int
-__if_nametoindex (const char *ifname)
-{
- __set_errno (ENOSYS);
- return 0;
-}
-libc_hidden_def (__if_nametoindex)
-weak_alias (__if_nametoindex, if_nametoindex)
-libc_hidden_weak (if_nametoindex)
-stub_warning (if_nametoindex)
-
-char *
-__if_indextoname (unsigned int ifindex, char *ifname)
-{
- __set_errno (ENOSYS);
- return NULL;
-}
-weak_alias (__if_indextoname, if_indextoname)
-libc_hidden_weak (if_indextoname)
-stub_warning (if_indextoname)
-
-void
-__if_freenameindex (struct if_nameindex *ifn)
-{
-}
-libc_hidden_def (__if_freenameindex)
-weak_alias (__if_freenameindex, if_freenameindex)
-libc_hidden_weak (if_freenameindex)
-stub_warning (if_freenameindex)
-
-struct if_nameindex *
-__if_nameindex (void)
-{
- __set_errno (ENOSYS);
- return NULL;
-}
-weak_alias (__if_nameindex, if_nameindex)
-libc_hidden_weak (if_nameindex)
-stub_warning (if_nameindex)
diff --git a/inet/ifaddrs.c b/inet/ifaddrs.c
deleted file mode 100644
index 35cc277225..0000000000
--- a/inet/ifaddrs.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* getifaddrs -- get names and addresses of all network interfaces
- Copyright (C) 2002-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <ifaddrs.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* Create a linked list of `struct ifaddrs' structures, one for each
- network interface on the host machine. If successful, store the
- list in *IFAP and return 0. On errors, return -1 and set `errno'. */
-int
-__getifaddrs (struct ifaddrs **ifap)
-{
- __set_errno (ENOSYS);
- return -1;
-}
-weak_alias (__getifaddrs, getifaddrs)
-libc_hidden_weak (getifaddrs)
-stub_warning (getifaddrs)
-
-void
-__freeifaddrs (struct ifaddrs *ifa)
-{
- if (ifa == NULL)
- return; /* a la free, why not? */
-
- /* Can't be called properly if getifaddrs never succeeded. */
- abort ();
-}
-weak_alias (__freeifaddrs, freeifaddrs)
-libc_hidden_weak (freeifaddrs)
-stub_warning (freeifaddrs)
diff --git a/inet/ifaddrs.h b/inet/ifaddrs.h
deleted file mode 100644
index f850269061..0000000000
--- a/inet/ifaddrs.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* ifaddrs.h -- declarations for getting network interface addresses
- Copyright (C) 2002-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _IFADDRS_H
-#define _IFADDRS_H 1
-
-#include <features.h>
-#include <sys/socket.h>
-
-__BEGIN_DECLS
-
-/* The `getifaddrs' function generates a linked list of these structures.
- Each element of the list describes one network interface. */
-struct ifaddrs
-{
- struct ifaddrs *ifa_next; /* Pointer to the next structure. */
-
- char *ifa_name; /* Name of this network interface. */
- unsigned int ifa_flags; /* Flags as from SIOCGIFFLAGS ioctl. */
-
- struct sockaddr *ifa_addr; /* Network address of this interface. */
- struct sockaddr *ifa_netmask; /* Netmask of this interface. */
- union
- {
- /* At most one of the following two is valid. If the IFF_BROADCAST
- bit is set in `ifa_flags', then `ifa_broadaddr' is valid. If the
- IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid.
- It is never the case that both these bits are set at once. */
- struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */
- struct sockaddr *ifu_dstaddr; /* Point-to-point destination address. */
- } ifa_ifu;
- /* These very same macros are defined by <net/if.h> for `struct ifaddr'.
- So if they are defined already, the existing definitions will be fine. */
-# ifndef ifa_broadaddr
-# define ifa_broadaddr ifa_ifu.ifu_broadaddr
-# endif
-# ifndef ifa_dstaddr
-# define ifa_dstaddr ifa_ifu.ifu_dstaddr
-# endif
-
- void *ifa_data; /* Address-specific data (may be unused). */
-};
-
-
-/* Create a linked list of `struct ifaddrs' structures, one for each
- network interface on the host machine. If successful, store the
- list in *IFAP and return 0. On errors, return -1 and set `errno'.
-
- The storage returned in *IFAP is allocated dynamically and can
- only be properly freed by passing it to `freeifaddrs'. */
-extern int getifaddrs (struct ifaddrs **__ifap) __THROW;
-
-/* Reclaim the storage allocated by a previous `getifaddrs' call. */
-extern void freeifaddrs (struct ifaddrs *__ifa) __THROW;
-
-__END_DECLS
-
-#endif /* ifaddrs.h */
diff --git a/inet/ifreq.c b/inet/ifreq.c
deleted file mode 100644
index 18aacb17ac..0000000000
--- a/inet/ifreq.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Collect network interface list. Stub version.
- Copyright (C) 2013-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include "ifreq.h"
-
-void
-__ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd)
-{
- *num_ifs = 0;
- *ifreqs = NULL;
-}
diff --git a/inet/in6_addr.c b/inet/in6_addr.c
deleted file mode 100644
index cacc177006..0000000000
--- a/inet/in6_addr.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Philip Blundell <pjb27@cam.ac.uk>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netinet/in.h>
-
-const struct in6_addr __in6addr_any =
-{ { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } };
-libc_hidden_data_def (__in6addr_any)
-weak_alias (__in6addr_any, in6addr_any)
-libc_hidden_data_weak (in6addr_any)
-const struct in6_addr __in6addr_loopback =
-{ { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } };
-libc_hidden_data_def (__in6addr_loopback)
-weak_alias (__in6addr_loopback, in6addr_loopback)
-libc_hidden_data_weak (in6addr_loopback)
diff --git a/inet/inet6_opt.c b/inet/inet6_opt.c
deleted file mode 100644
index 4581532a12..0000000000
--- a/inet/inet6_opt.c
+++ /dev/null
@@ -1,281 +0,0 @@
-/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <string.h>
-#include <netinet/in.h>
-#include <netinet/ip6.h>
-
-
-/* RFC 3542, 10.1
-
- This function returns the number of bytes needed for the empty
- extension header i.e., without any options. If EXTBUF is not NULL it
- also initializes the extension header to have the correct length
- field. In that case if the EXTLEN value is not a positive (i.e.,
- non-zero) multiple of 8 the function fails and returns -1. */
-int
-inet6_opt_init (void *extbuf, socklen_t extlen)
-{
- if (extbuf != NULL)
- {
- if (extlen <= 0 || (extlen % 8) != 0 || extlen > 256 * 8)
- return -1;
-
- /* Fill in the length in units of 8 octets. */
- struct ip6_hbh *extp = (struct ip6_hbh *) extbuf;
-
- /* RFC 2460 requires that the header extension length is the
- length of the option header in 8-byte units, not including
- the first 8 bytes. Hence we have to subtract one. */
- extp->ip6h_len = extlen / 8 - 1;
- }
-
- return sizeof (struct ip6_hbh);
-}
-
-
-static void
-add_padding (uint8_t *extbuf, int offset, int npad)
-{
- if (npad == 1)
- extbuf[offset] = IP6OPT_PAD1;
- else if (npad > 0)
- {
- struct ip6_opt *pad_opt = (struct ip6_opt *) (extbuf + offset);
-
- pad_opt->ip6o_type = IP6OPT_PADN;
- pad_opt->ip6o_len = npad - sizeof (struct ip6_opt);
- /* Clear the memory used by the padding. */
- memset (pad_opt + 1, '\0', pad_opt->ip6o_len);
- }
-}
-
-
-
-/* RFC 3542, 10.2
-
- This function returns the updated total length taking into account
- adding an option with length 'len' and alignment 'align'. If
- EXTBUF is not NULL then, in addition to returning the length, the
- function inserts any needed pad option, initializes the option
- (setting the type and length fields) and returns a pointer to the
- location for the option content in databufp. If the option does
- not fit in the extension header buffer the function returns -1. */
-int
-inet6_opt_append (void *extbuf, socklen_t extlen, int offset, uint8_t type,
- socklen_t len, uint8_t align, void **databufp)
-{
- /* Check minimum offset. */
- if (offset < sizeof (struct ip6_hbh))
- return -1;
-
- /* One cannot add padding options. */
- if (type == IP6OPT_PAD1 || type == IP6OPT_PADN)
- return -1;
-
- /* The option length must fit in one octet. */
- if (len > 255)
- return -1;
-
- /* The alignment can only by 1, 2, 4, or 8 and must not exceed the
- option length. */
- if (align == 0 || align > 8 || (align & (align - 1)) != 0 || align > len)
- return -1;
-
- /* Determine the needed padding for alignment. Following the
- current content of the buffer we have the is the IPv6 option type
- and length, followed immediately by the data. The data has the
- alignment constraints. Therefore padding must be inserted in the
- form of padding options before the new option. */
- int data_offset = offset + sizeof (struct ip6_opt);
- int npad = (align - data_offset % align) & (align - 1);
-
- if (extbuf != NULL)
- {
- /* Now we can check whether the buffer is large enough. */
- if (data_offset + npad + len > extlen)
- return -1;
-
- add_padding (extbuf, offset, npad);
-
- offset += npad;
-
- /* Now prepare the option itself. */
- struct ip6_opt *opt = (struct ip6_opt *) ((uint8_t *) extbuf + offset);
-
- opt->ip6o_type = type;
- opt->ip6o_len = len;
-
- *databufp = opt + 1;
- }
- else
- offset += npad;
-
- return offset + sizeof (struct ip6_opt) + len;
-}
-
-
-/* RFC 3542, 10.3
-
- This function returns the updated total length taking into account
- the final padding of the extension header to make it a multiple of
- 8 bytes. If EXTBUF is not NULL the function also initializes the
- option by inserting a Pad1 or PadN option of the proper length. */
-int
-inet6_opt_finish (void *extbuf, socklen_t extlen, int offset)
-{
- /* Check minimum offset. */
- if (offset < sizeof (struct ip6_hbh))
- return -1;
-
- /* Required padding at the end. */
- int npad = (8 - (offset & 7)) & 7;
-
- if (extbuf != NULL)
- {
- /* Make sure the buffer is large enough. */
- if (offset + npad > extlen)
- return -1;
-
- add_padding (extbuf, offset, npad);
- }
-
- return offset + npad;
-}
-
-
-/* RFC 3542, 10.4
-
- This function inserts data items of various sizes in the data
- portion of the option. VAL should point to the data to be
- inserted. OFFSET specifies where in the data portion of the option
- the value should be inserted; the first byte after the option type
- and length is accessed by specifying an offset of zero. */
-int
-inet6_opt_set_val (void *databuf, int offset, void *val, socklen_t vallen)
-{
- memcpy ((uint8_t *) databuf + offset, val, vallen);
-
- return offset + vallen;
-}
-
-
-/* RFC 3542, 10.5
-
- This function parses received option extension headers returning
- the next option. EXTBUF and EXTLEN specifies the extension header.
- OFFSET should either be zero (for the first option) or the length
- returned by a previous call to 'inet6_opt_next' or
- 'inet6_opt_find'. It specifies the position where to continue
- scanning the extension buffer. */
-int
-inet6_opt_next (void *extbuf, socklen_t extlen, int offset, uint8_t *typep,
- socklen_t *lenp, void **databufp)
-{
- if (offset == 0)
- offset = sizeof (struct ip6_hbh);
- else if (offset < sizeof (struct ip6_hbh))
- return -1;
-
- while (offset < extlen)
- {
- struct ip6_opt *opt = (struct ip6_opt *) ((uint8_t *) extbuf + offset);
-
- if (opt->ip6o_type == IP6OPT_PAD1)
- /* Single byte padding. */
- ++offset;
- else if (opt->ip6o_type == IP6OPT_PADN)
- offset += sizeof (struct ip6_opt) + opt->ip6o_len;
- else
- {
- /* Check whether the option is valid. */
- offset += sizeof (struct ip6_opt) + opt->ip6o_len;
- if (offset > extlen)
- return -1;
-
- *typep = opt->ip6o_type;
- *lenp = opt->ip6o_len;
- *databufp = opt + 1;
- return offset;
- }
- }
-
- return -1;
-}
-
-
-/* RFC 3542, 10.6
-
- This function is similar to the previously described
- 'inet6_opt_next' function, except this function lets the caller
- specify the option type to be searched for, instead of always
- returning the next option in the extension header. */
-int
-inet6_opt_find (void *extbuf, socklen_t extlen, int offset, uint8_t type,
- socklen_t *lenp, void **databufp)
-{
- if (offset == 0)
- offset = sizeof (struct ip6_hbh);
- else if (offset < sizeof (struct ip6_hbh))
- return -1;
-
- while (offset < extlen)
- {
- struct ip6_opt *opt = (struct ip6_opt *) ((uint8_t *) extbuf + offset);
-
- if (opt->ip6o_type == IP6OPT_PAD1)
- {
- /* Single byte padding. */
- ++offset;
- if (type == IP6OPT_PAD1)
- {
- *lenp = 0;
- *databufp = (uint8_t *) extbuf + offset;
- return offset;
- }
- }
- else if (opt->ip6o_type != type)
- offset += sizeof (struct ip6_opt) + opt->ip6o_len;
- else
- {
- /* Check whether the option is valid. */
- offset += sizeof (struct ip6_opt) + opt->ip6o_len;
- if (offset > extlen)
- return -1;
-
- *lenp = opt->ip6o_len;
- *databufp = opt + 1;
- return offset;
- }
- }
-
- return -1;
-}
-
-
-/* RFC 3542, 10.7
-
- This function extracts data items of various sizes in the data
- portion of the option. */
-int
-inet6_opt_get_val (void *databuf, int offset, void *val, socklen_t vallen)
-{
- memcpy (val, (uint8_t *) databuf + offset, vallen);
-
- return offset + vallen;
-}
diff --git a/inet/inet6_option.c b/inet/inet6_option.c
deleted file mode 100644
index f6d9b5dffe..0000000000
--- a/inet/inet6_option.c
+++ /dev/null
@@ -1,349 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <assert.h>
-#include <string.h>
-#include <netinet/in.h>
-#include <netinet/ip6.h>
-#include <sys/param.h>
-
-
-static void
-internal_function
-add_pad (struct cmsghdr *cmsg, int len)
-{
- unsigned char *p = CMSG_DATA (cmsg) + cmsg->cmsg_len - CMSG_LEN (0);
-
- if (len == 1)
- /* Special handling for 1, a one-byte solution. */
- *p++ = IP6OPT_PAD1;
- else if (len != 0)
- {
- /* Multibyte padding. */
- *p++ = IP6OPT_PADN;
- *p++ = len - 2; /* Discount the two header bytes. */
- /* The rest is filled with zero. */
- memset (p, '\0', len - 2);
- p += len - 2;
- }
-
- /* Account for the bytes. */
- cmsg->cmsg_len += len;
-}
-
-
-static int
-get_opt_end (const uint8_t **result, const uint8_t *startp,
- const uint8_t *endp)
-{
- if (startp >= endp)
- /* Out of bounds. */
- return -1;
-
- if (*startp == IP6OPT_PAD1)
- {
- /* Just this one byte. */
- *result = startp + 1;
- return 0;
- }
-
- /* Now we know there must be at least two bytes. */
- if (startp + 2 > endp
- /* Now we can get the length byte. */
- || startp + startp[1] + 2 > endp)
- return -1;
-
- *result = startp + startp[1] + 2;
-
- return 0;
-}
-
-
-static uint8_t *option_alloc (struct cmsghdr *cmsg, int datalen, int multx,
- int plusy);
-
-
-/* RFC 2292, 6.3.1
-
- This function returns the number of bytes required to hold an option
- when it is stored as ancillary data, including the cmsghdr structure
- at the beginning, and any padding at the end (to make its size a
- multiple of 8 bytes). The argument is the size of the structure
- defining the option, which must include any pad bytes at the
- beginning (the value y in the alignment term "xn + y"), the type
- byte, the length byte, and the option data. */
-int
-inet6_option_space (int nbytes)
-{
- /* Add room for the extension header. */
- nbytes += sizeof (struct ip6_ext);
-
- return CMSG_SPACE (roundup (nbytes, 8));
-}
-link_warning (inet6_option_space,
- "inet6_option_space is obsolete, use the RFC 3542 interfaces")
-
-
-/* RFC 2292, 6.3.2
-
- This function is called once per ancillary data object that will
- contain either Hop-by-Hop or Destination options. It returns 0 on
- success or -1 on an error. */
-int
-inet6_option_init (void *bp, struct cmsghdr **cmsgp, int type)
-{
- /* Only Hop-by-Hop or Destination options allowed. */
- if (type != IPV6_HOPOPTS && type != IPV6_DSTOPTS)
- return -1;
-
- /* BP is a pointer to the previously allocated space. */
- struct cmsghdr *newp = (struct cmsghdr *) bp;
-
- /* Initialize the message header.
-
- Length: No data yet, only the cmsghdr struct. */
- newp->cmsg_len = CMSG_LEN (0);
- /* Originating protocol: obviously IPv6. */
- newp->cmsg_level = IPPROTO_IPV6;
- /* Message type. */
- newp->cmsg_type = type;
-
- /* Pass up the result. */
- *cmsgp = newp;
-
- return 0;
-}
-link_warning (inet6_option_init,
- "inet6_option_init is obsolete, use the RFC 3542 interfaces")
-
-
-/* RFC 2292, 6.3.3
-
- This function appends a Hop-by-Hop option or a Destination option
- into an ancillary data object that has been initialized by
- inet6_option_init(). This function returns 0 if it succeeds or -1 on
- an error. */
-int
-inet6_option_append (struct cmsghdr *cmsg, const uint8_t *typep, int multx,
- int plusy)
-{
- /* typep is a pointer to the 8-bit option type. It is assumed that this
- field is immediately followed by the 8-bit option data length field,
- which is then followed immediately by the option data.
-
- The option types IP6OPT_PAD1 and IP6OPT_PADN also must be handled. */
- int len = typep[0] == IP6OPT_PAD1 ? 1 : typep[1] + 2;
-
- /* Get the pointer to the space in the message. */
- uint8_t *ptr = option_alloc (cmsg, len, multx, plusy);
- if (ptr == NULL)
- /* Some problem with the parameters. */
- return -1;
-
- /* Copy the content. */
- memcpy (ptr, typep, len);
-
- return 0;
-}
-link_warning (inet6_option_append,
- "inet6_option_append is obsolete, use the RFC 3542 interfaces")
-
-
-/* RFC 2292, 6.3.4
-
- This function appends a Hop-by-Hop option or a Destination option
- into an ancillary data object that has been initialized by
- inet6_option_init(). This function returns a pointer to the 8-bit
- option type field that starts the option on success, or NULL on an
- error. */
-static uint8_t *
-option_alloc (struct cmsghdr *cmsg, int datalen, int multx, int plusy)
-{
- /* The RFC limits the value of the alignment values. */
- if ((multx != 1 && multx != 2 && multx != 4 && multx != 8)
- || ! (plusy >= 0 && plusy <= 7))
- return NULL;
-
- /* Current data size. */
- int dsize = cmsg->cmsg_len - CMSG_LEN (0);
-
- /* The first two bytes of the option are for the extended header. */
- if (__glibc_unlikely (dsize == 0))
- {
- cmsg->cmsg_len += sizeof (struct ip6_ext);
- dsize = sizeof (struct ip6_ext);
- }
-
- /* First add padding. */
- add_pad (cmsg, ((multx - (dsize & (multx - 1))) & (multx - 1)) + plusy);
-
- /* Return the pointer to the start of the option space. */
- uint8_t *result = CMSG_DATA (cmsg) + cmsg->cmsg_len - CMSG_LEN (0);
- cmsg->cmsg_len += datalen;
-
- /* The extended option header length is measured in 8-byte groups.
- To represent the current length we might have to add padding. */
- dsize = cmsg->cmsg_len - CMSG_LEN (0);
- add_pad (cmsg, (8 - (dsize & (8 - 1))) & (8 - 1));
-
- /* Record the new length of the option. */
- assert (((cmsg->cmsg_len - CMSG_LEN (0)) % 8) == 0);
- int len8b = (cmsg->cmsg_len - CMSG_LEN (0)) / 8 - 1;
- if (len8b >= 256)
- /* Too long. */
- return NULL;
-
- struct ip6_ext *ie = (void *) CMSG_DATA (cmsg);
- ie->ip6e_len = len8b;
-
- return result;
-}
-
-
-uint8_t *
-inet6_option_alloc (struct cmsghdr *cmsg, int datalen, int multx, int plusy)
-{
- return option_alloc (cmsg, datalen, multx, plusy);
-}
-link_warning (inet6_option_alloc,
- "inet6_option_alloc is obsolete, use the RFC 3542 interfaces")
-
-
-/* RFC 2292, 6.3.5
-
- This function processes the next Hop-by-Hop option or Destination
- option in an ancillary data object. If another option remains to be
- processed, the return value of the function is 0 and *tptrp points to
- the 8-bit option type field (which is followed by the 8-bit option
- data length, followed by the option data). If no more options remain
- to be processed, the return value is -1 and *tptrp is NULL. If an
- error occurs, the return value is -1 and *tptrp is not NULL. */
-int
-inet6_option_next (const struct cmsghdr *cmsg, uint8_t **tptrp)
-{
- /* Make sure it is an option of the right type. */
- if (cmsg->cmsg_level != IPPROTO_IPV6
- || (cmsg->cmsg_type != IPV6_HOPOPTS && cmsg->cmsg_type != IPV6_DSTOPTS))
- return -1;
-
- /* Pointer to the extension header. We only compute the address, we
- don't access anything yet. */
- const struct ip6_ext *ip6e = (const struct ip6_ext *) CMSG_DATA (cmsg);
-
- /* Make sure the message is long enough. */
- if (cmsg->cmsg_len < CMSG_LEN (sizeof (struct ip6_ext))
- /* Now we can access the extension header. */
- || cmsg->cmsg_len < CMSG_LEN ((ip6e->ip6e_len + 1) * 8))
- /* Too small. */
- return -1;
-
- /* Determine the address of the byte past the message. */
- const uint8_t *endp = CMSG_DATA (cmsg) + (ip6e->ip6e_len + 1) * 8;
-
- const uint8_t *result;
- if (*tptrp == NULL)
- /* This is the first call, return the first option if there is one. */
- result = (const uint8_t *) (ip6e + 1);
- else
- {
- /* Make sure *TPTRP points to a beginning of a new option in
- the message. The upper limit is checked in get_opt_end. */
- if (*tptrp < (const uint8_t *) (ip6e + 1))
- return -1;
-
- /* Get the beginning of the next option. */
- if (get_opt_end (&result, *tptrp, endp) != 0)
- return -1;
- }
-
- /* We know where the next option starts. */
- *tptrp = (uint8_t *) result;
-
- /* Check the option is fully represented in the message. */
- return get_opt_end (&result, result, endp);
-}
-link_warning (inet6_option_next,
- "inet6_option_next is obsolete, use the RFC 3542 interfaces")
-
-
-/* RFC 2292, 6.3.6
-
- This function is similar to the previously described
- inet6_option_next() function, except this function lets the caller
- specify the option type to be searched for, instead of always
- returning the next option in the ancillary data object. cmsg is a
- pointer to cmsghdr structure of which cmsg_level equals IPPROTO_IPV6
- and cmsg_type equals either IPV6_HOPOPTS or IPV6_DSTOPTS. */
-int
-inet6_option_find (const struct cmsghdr *cmsg, uint8_t **tptrp, int type)
-{
- /* Make sure it is an option of the right type. */
- if (cmsg->cmsg_level != IPPROTO_IPV6
- || (cmsg->cmsg_type != IPV6_HOPOPTS && cmsg->cmsg_type != IPV6_DSTOPTS))
- return -1;
-
- /* Pointer to the extension header. We only compute the address, we
- don't access anything yet. */
- const struct ip6_ext *ip6e = (const struct ip6_ext *) CMSG_DATA (cmsg);
-
- /* Make sure the message is long enough. */
- if (cmsg->cmsg_len < CMSG_LEN (sizeof (struct ip6_ext))
- /* Now we can access the extension header. */
- || cmsg->cmsg_len < CMSG_LEN ((ip6e->ip6e_len + 1) * 8))
- /* Too small. */
- return -1;
-
- /* Determine the address of the byte past the message. */
- const uint8_t *endp = CMSG_DATA (cmsg) + (ip6e->ip6e_len + 1) * 8;
-
- const uint8_t *next;
- if (*tptrp == NULL)
- /* This is the first call, return the first option if there is one. */
- next = (const uint8_t *) (ip6e + 1);
- else
- {
- /* Make sure *TPTRP points to a beginning of a new option in
- the message. The upper limit is checked in get_opt_end. */
- if (*tptrp < (const uint8_t *) (ip6e + 1))
- return -1;
-
- /* Get the beginning of the next option. */
- if (get_opt_end (&next, *tptrp, endp) != 0)
- return -1;
- }
-
- /* Now search for the appropriate typed entry. */
- const uint8_t *result;
- do
- {
- result = next;
-
- /* Get the end of this entry. */
- if (get_opt_end (&next, result, endp) != 0)
- return -1;
- }
- while (*result != type);
-
- /* We know where the next option starts. */
- *tptrp = (uint8_t *) result;
-
- /* Success. */
- return 0;
-}
-link_warning (inet6_option_find,
- "inet6_option_find is obsolete, use the RFC 3542 interfaces")
diff --git a/inet/inet6_rth.c b/inet/inet6_rth.c
deleted file mode 100644
index 917753da09..0000000000
--- a/inet/inet6_rth.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2006.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <string.h>
-#include <netinet/in.h>
-#include <netinet/ip6.h>
-
-
-/* RFC 3542, 7.1
-
- This function returns the number of bytes required to hold a
- Routing header of the specified type containing the specified
- number of segments (addresses). For an IPv6 Type 0 Routing header,
- the number of segments must be between 0 and 127, inclusive. */
-socklen_t
-inet6_rth_space (int type, int segments)
-{
- switch (type)
- {
- case IPV6_RTHDR_TYPE_0:
- if (segments < 0 || segments > 127)
- return 0;
-
- return sizeof (struct ip6_rthdr0) + segments * sizeof (struct in6_addr);
- }
-
- return 0;
-}
-
-
-/* RFC 3542, 7.2
-
- This function initializes the buffer pointed to by BP to contain a
- Routing header of the specified type and sets ip6r_len based on the
- segments parameter. */
-void *
-inet6_rth_init (void *bp, socklen_t bp_len, int type, int segments)
-{
- struct ip6_rthdr *rthdr = (struct ip6_rthdr *) bp;
-
- switch (type)
- {
- case IPV6_RTHDR_TYPE_0:
- /* Make sure the parameters are valid and the buffer is large enough. */
- if (segments < 0 || segments > 127)
- break;
-
- socklen_t len = (sizeof (struct ip6_rthdr0)
- + segments * sizeof (struct in6_addr));
- if (len > bp_len)
- break;
-
- /* Some implementations seem to initialize the whole memory area. */
- memset (bp, '\0', len);
-
- /* Length in units of 8 octets. */
- rthdr->ip6r_len = segments * sizeof (struct in6_addr) / 8;
- rthdr->ip6r_type = IPV6_RTHDR_TYPE_0;
- return bp;
- }
-
- return NULL;
-}
-
-
-/* RFC 3542, 7.3
-
- This function adds the IPv6 address pointed to by addr to the end of
- the Routing header being constructed. */
-int
-inet6_rth_add (void *bp, const struct in6_addr *addr)
-{
- struct ip6_rthdr *rthdr = (struct ip6_rthdr *) bp;
-
- switch (rthdr->ip6r_type)
- {
- struct ip6_rthdr0 *rthdr0;
- case IPV6_RTHDR_TYPE_0:
- rthdr0 = (struct ip6_rthdr0 *) rthdr;
- if (rthdr0->ip6r0_len * 8 / sizeof (struct in6_addr)
- - rthdr0->ip6r0_segleft < 1)
- return -1;
-
- memcpy (&rthdr0->ip6r0_addr[rthdr0->ip6r0_segleft++],
- addr, sizeof (struct in6_addr));
-
- return 0;
- }
-
- return -1;
-}
-
-
-/* RFC 3542, 7.4
-
- This function takes a Routing header extension header (pointed to by
- the first argument) and writes a new Routing header that sends
- datagrams along the reverse of that route. The function reverses the
- order of the addresses and sets the segleft member in the new Routing
- header to the number of segments. */
-int
-inet6_rth_reverse (const void *in, void *out)
-{
- struct ip6_rthdr *in_rthdr = (struct ip6_rthdr *) in;
-
- switch (in_rthdr->ip6r_type)
- {
- struct ip6_rthdr0 *in_rthdr0;
- struct ip6_rthdr0 *out_rthdr0;
- case IPV6_RTHDR_TYPE_0:
- in_rthdr0 = (struct ip6_rthdr0 *) in;
- out_rthdr0 = (struct ip6_rthdr0 *) out;
-
- /* Copy header, not the addresses. The memory regions can overlap. */
- memmove (out_rthdr0, in_rthdr0, sizeof (struct ip6_rthdr0));
-
- int total = in_rthdr0->ip6r0_len * 8 / sizeof (struct in6_addr);
- for (int i = 0; i < total / 2; ++i)
- {
- /* Remember, IN_RTHDR0 and OUT_RTHDR0 might overlap. */
- struct in6_addr temp = in_rthdr0->ip6r0_addr[i];
- out_rthdr0->ip6r0_addr[i] = in_rthdr0->ip6r0_addr[total - 1 - i];
- out_rthdr0->ip6r0_addr[total - 1 - i] = temp;
- }
- if (total % 2 != 0 && in != out)
- out_rthdr0->ip6r0_addr[total / 2] = in_rthdr0->ip6r0_addr[total / 2];
-
- out_rthdr0->ip6r0_segleft = total;
-
- return 0;
- }
-
- return -1;
-}
-
-
-/* RFC 3542, 7.5
-
- This function returns the number of segments (addresses) contained in
- the Routing header described by BP. */
-int
-inet6_rth_segments (const void *bp)
-{
- struct ip6_rthdr *rthdr = (struct ip6_rthdr *) bp;
-
- switch (rthdr->ip6r_type)
- {
- case IPV6_RTHDR_TYPE_0:
-
- return rthdr->ip6r_len * 8 / sizeof (struct in6_addr);
- }
-
- return -1;
-}
-
-
-/* RFC 3542, 7.6
-
- This function returns a pointer to the IPv6 address specified by
- index (which must have a value between 0 and one less than the
- value returned by 'inet6_rth_segments') in the Routing header
- described by BP. */
-struct in6_addr *
-inet6_rth_getaddr (const void *bp, int index)
-{
- struct ip6_rthdr *rthdr = (struct ip6_rthdr *) bp;
-
- switch (rthdr->ip6r_type)
- {
- struct ip6_rthdr0 *rthdr0;
- case IPV6_RTHDR_TYPE_0:
- rthdr0 = (struct ip6_rthdr0 *) rthdr;
-
- if (index >= rthdr0->ip6r0_len * 8 / sizeof (struct in6_addr))
- break;
-
- return &rthdr0->ip6r0_addr[index];
- }
-
- return NULL;
-}
diff --git a/inet/inet6_scopeid_pton.c b/inet/inet6_scopeid_pton.c
deleted file mode 100644
index f842ffcadb..0000000000
--- a/inet/inet6_scopeid_pton.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Convert an IPv6 scope ID from text to the internal representation.
- Copyright (C) 2016-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <net-internal.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <locale.h>
-#include <net/if.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdlib.h>
-
-/* Parse SOURCE as a scope ID for ADDRESS. Return 0 on success and -1
- on error. */
-internal_function int
-__inet6_scopeid_pton (const struct in6_addr *address, const char *scope,
- uint32_t *result)
-{
- if (IN6_IS_ADDR_LINKLOCAL (address)
- || IN6_IS_ADDR_MC_LINKLOCAL (address))
- {
- uint32_t number = __if_nametoindex (scope);
- if (number != 0)
- {
- *result = number;
- return 0;
- }
- }
-
- if (isdigit_l (scope[0], _nl_C_locobj_ptr))
- {
- char *end;
- unsigned long long number
- = ____strtoull_l_internal (scope, &end, /*base */ 10, /* group */ 0,
- _nl_C_locobj_ptr);
- if (*end == '\0' && number <= UINT32_MAX)
- {
- *result = number;
- return 0;
- }
- }
-
- __set_errno (EINVAL);
- return -1;
-}
-
-libc_hidden_def (__inet6_scopeid_pton)
diff --git a/inet/inet_lnaof.c b/inet/inet_lnaof.c
deleted file mode 100644
index fc8196b709..0000000000
--- a/inet/inet_lnaof.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-/*
- * Return the local network address portion of an
- * internet address; handles class a/b/c network
- * number formats.
- */
-in_addr_t
-inet_lnaof (struct in_addr in)
-{
- u_int32_t i = ntohl(in.s_addr);
-
- if (IN_CLASSA(i))
- return ((i)&IN_CLASSA_HOST);
- else if (IN_CLASSB(i))
- return ((i)&IN_CLASSB_HOST);
- else
- return ((i)&IN_CLASSC_HOST);
-}
diff --git a/inet/inet_mkadr.c b/inet/inet_mkadr.c
deleted file mode 100644
index 88faef74cf..0000000000
--- a/inet/inet_mkadr.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-/*
- * Formulate an Internet address from network + host. Used in
- * building addresses stored in the ifnet structure.
- */
-struct in_addr
-__inet_makeaddr (in_addr_t net, in_addr_t host)
-{
- struct in_addr in;
-
- if (net < 128)
- in.s_addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
- else if (net < 65536)
- in.s_addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
- else if (net < 16777216L)
- in.s_addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
- else
- in.s_addr = net | host;
- in.s_addr = htonl(in.s_addr);
- return in;
-}
-libc_hidden_def (__inet_makeaddr)
-weak_alias (__inet_makeaddr, inet_makeaddr)
diff --git a/inet/inet_net.c b/inet/inet_net.c
deleted file mode 100644
index 434d716854..0000000000
--- a/inet/inet_net.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <ctype.h>
-
-/*
- * Internet network address interpretation routine.
- * The library routines call this routine to interpret
- * network numbers.
- */
-u_int32_t
-inet_network (const char *cp)
-{
- u_int32_t val, base, n, i;
- char c;
- u_int32_t parts[4], *pp = parts;
- int digit;
-
-again:
- val = 0; base = 10; digit = 0;
- if (*cp == '0')
- digit = 1, base = 8, cp++;
- if (*cp == 'x' || *cp == 'X')
- digit = 0, base = 16, cp++;
- while ((c = *cp) != 0) {
- if (isdigit(c)) {
- if (base == 8 && (c == '8' || c == '9'))
- return (INADDR_NONE);
- val = (val * base) + (c - '0');
- cp++;
- digit = 1;
- continue;
- }
- if (base == 16 && isxdigit(c)) {
- val = (val << 4) + (tolower (c) + 10 - 'a');
- cp++;
- digit = 1;
- continue;
- }
- break;
- }
- if (!digit)
- return (INADDR_NONE);
- if (pp >= parts + 4 || val > 0xff)
- return (INADDR_NONE);
- if (*cp == '.') {
- *pp++ = val, cp++;
- goto again;
- }
- while (isspace(*cp))
- cp++;
- if (*cp)
- return (INADDR_NONE);
- if (pp >= parts + 4 || val > 0xff)
- return (INADDR_NONE);
- *pp++ = val;
- n = pp - parts;
- for (val = 0, i = 0; i < n; i++) {
- val <<= 8;
- val |= parts[i] & 0xff;
- }
- return (val);
-}
diff --git a/inet/inet_netof.c b/inet/inet_netof.c
deleted file mode 100644
index ef6281d29f..0000000000
--- a/inet/inet_netof.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-/*
- * Return the network number from an internet
- * address; handles class a/b/c network #'s.
- */
-in_addr_t
-inet_netof (struct in_addr in)
-{
- u_int32_t i = ntohl(in.s_addr);
-
- if (IN_CLASSA(i))
- return (((i)&IN_CLASSA_NET) >> IN_CLASSA_NSHIFT);
- else if (IN_CLASSB(i))
- return (((i)&IN_CLASSB_NET) >> IN_CLASSB_NSHIFT);
- else
- return (((i)&IN_CLASSC_NET) >> IN_CLASSC_NSHIFT);
-}
-libc_hidden_def (inet_netof)
diff --git a/inet/inet_ntoa.c b/inet/inet_ntoa.c
deleted file mode 100644
index 513d22c75e..0000000000
--- a/inet/inet_ntoa.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Convert Inet number to ASCII representation.
- Copyright (C) 1997-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <arpa/inet.h>
-
-/* The interface of this function is completely stupid, it requires a
- static buffer. We relax this a bit in that we allow one buffer for
- each thread. */
-static __thread char buffer[18];
-
-
-char *
-inet_ntoa (struct in_addr in)
-{
- unsigned char *bytes = (unsigned char *) &in;
- __snprintf (buffer, sizeof (buffer), "%d.%d.%d.%d",
- bytes[0], bytes[1], bytes[2], bytes[3]);
-
- return buffer;
-}
diff --git a/inet/net-internal.h b/inet/net-internal.h
deleted file mode 100644
index 2b2632c7ba..0000000000
--- a/inet/net-internal.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Network-related functions for internal library use.
- Copyright (C) 2016-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _NET_INTERNAL_H
-#define _NET_INTERNAL_H 1
-
-#include <arpa/inet.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <sys/time.h>
-
-int __inet6_scopeid_pton (const struct in6_addr *address,
- const char *scope, uint32_t *result)
- internal_function attribute_hidden;
-libc_hidden_proto (__inet6_scopeid_pton)
-
-
-/* Deadline handling for enforcing timeouts.
-
- Code should call __deadline_current_time to obtain the current time
- and cache it locally. The cache needs updating after every
- long-running or potentially blocking operation. Deadlines relative
- to the current time can be computed using __deadline_from_timeval.
- The deadlines may have to be recomputed in response to certain
- events (such as an incoming packet), but they are absolute (not
- relative to the current time). A timeout suitable for use with the
- poll function can be computed from such a deadline using
- __deadline_to_ms.
-
- The fields in the structs defined belowed should only be used
- within the implementation. */
-
-/* Cache of the current time. Used to compute deadlines from relative
- timeouts and vice versa. */
-struct deadline_current_time
-{
- struct timespec current;
-};
-
-/* Return the current time. Terminates the process if the current
- time is not available. */
-struct deadline_current_time __deadline_current_time (void)
- internal_function attribute_hidden;
-
-/* Computed absolute deadline. */
-struct deadline
-{
- struct timespec absolute;
-};
-
-
-/* For internal use only. */
-static inline bool
-__deadline_is_infinite (struct deadline deadline)
-{
- return deadline.absolute.tv_nsec < 0;
-}
-
-/* Return true if the current time is at the deadline or past it. */
-static inline bool
-__deadline_elapsed (struct deadline_current_time current,
- struct deadline deadline)
-{
- return !__deadline_is_infinite (deadline)
- && (current.current.tv_sec > deadline.absolute.tv_sec
- || (current.current.tv_sec == deadline.absolute.tv_sec
- && current.current.tv_nsec >= deadline.absolute.tv_nsec));
-}
-
-/* Return the deadline which occurs first. */
-static inline struct deadline
-__deadline_first (struct deadline left, struct deadline right)
-{
- if (__deadline_is_infinite (right)
- || left.absolute.tv_sec < right.absolute.tv_sec
- || (left.absolute.tv_sec == right.absolute.tv_sec
- && left.absolute.tv_nsec < right.absolute.tv_nsec))
- return left;
- else
- return right;
-}
-
-/* Add TV to the current time and return it. Returns a special
- infinite absolute deadline on overflow. */
-struct deadline __deadline_from_timeval (struct deadline_current_time,
- struct timeval tv)
- internal_function attribute_hidden;
-
-/* Compute the number of milliseconds until the specified deadline,
- from the current time in the argument. The result is mainly for
- use with poll. If the deadline has already passed, return 0. If
- the result would overflow an int, return INT_MAX. */
-int __deadline_to_ms (struct deadline_current_time, struct deadline)
- internal_function attribute_hidden;
-
-/* Return true if TV.tv_sec is non-negative and TV.tv_usec is in the
- interval [0, 999999]. */
-static inline bool
-__is_timeval_valid_timeout (struct timeval tv)
-{
- return tv.tv_sec >= 0 && tv.tv_usec >= 0 && tv.tv_usec < 1000 * 1000;
-}
-
-#endif /* _NET_INTERNAL_H */
diff --git a/inet/netgroup.h b/inet/netgroup.h
deleted file mode 100644
index 9ad9dfe144..0000000000
--- a/inet/netgroup.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Internal header for netgroup related functions.
- Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _NETGROUP_H
-#define _NETGROUP_H 1
-
-#include <nsswitch.h>
-
-/* A netgroup can consist of names of other netgroups. We have to
- track which netgroups were read and which still have to be read. */
-struct name_list
-{
- struct name_list *next;
- char name[];
-};
-
-
-/* Dataset for iterating netgroups. */
-struct __netgrent
-{
- enum { triple_val, group_val } type;
-
- union
- {
- struct
- {
- const char *host;
- const char *user;
- const char *domain;
- }
- triple;
-
- const char *group;
- } val;
-
- /* Room for the data kept between the calls to the netgroup
- functions. We must avoid global variables. */
- char *data;
- size_t data_size;
- union
- {
- char *cursor;
- unsigned long int position;
- };
- int first;
-
- struct name_list *known_groups;
- struct name_list *needed_groups;
-
- /* This handle for the NSS data base is shared between all
- set/get/endXXXent functions. */
- service_user *nip;
-};
-
-
-/* The internal netgroup handling functions might be called from outside. */
-extern int __internal_setnetgrent (const char *group,
- struct __netgrent *datap)
- internal_function;
-libc_hidden_proto (__internal_setnetgrent)
-extern void __internal_endnetgrent (struct __netgrent *datap)
- internal_function;
-libc_hidden_proto (__internal_endnetgrent)
-extern int __internal_getnetgrent_r (char **hostp, char **userp,
- char **domainp, struct __netgrent *datap,
- char *buffer, size_t buflen, int *errnop)
- internal_function;
-libc_hidden_proto (__internal_getnetgrent_r)
-
-#endif /* netgroup.h */
diff --git a/inet/netinet/ether.h b/inet/netinet/ether.h
deleted file mode 100644
index 966ec8aec1..0000000000
--- a/inet/netinet/ether.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Functions for storing Ethernet addresses in ASCII and mapping to hostnames.
- Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _NETINET_ETHER_H
-#define _NETINET_ETHER_H 1
-
-#include <features.h>
-
-/* Get definition of `struct ether_addr'. */
-#include <netinet/if_ether.h>
-
-#ifdef __USE_MISC
-__BEGIN_DECLS
-
-/* Convert 48 bit Ethernet ADDRess to ASCII. */
-extern char *ether_ntoa (const struct ether_addr *__addr) __THROW;
-extern char *ether_ntoa_r (const struct ether_addr *__addr, char *__buf)
- __THROW;
-
-/* Convert ASCII string S to 48 bit Ethernet address. */
-extern struct ether_addr *ether_aton (const char *__asc) __THROW;
-extern struct ether_addr *ether_aton_r (const char *__asc,
- struct ether_addr *__addr) __THROW;
-
-/* Map 48 bit Ethernet number ADDR to HOSTNAME. */
-extern int ether_ntohost (char *__hostname, const struct ether_addr *__addr)
- __THROW;
-
-/* Map HOSTNAME to 48 bit Ethernet address. */
-extern int ether_hostton (const char *__hostname, struct ether_addr *__addr)
- __THROW;
-
-/* Scan LINE and set ADDR and HOSTNAME. */
-extern int ether_line (const char *__line, struct ether_addr *__addr,
- char *__hostname) __THROW;
-
-__END_DECLS
-#endif /* Use misc. */
-
-#endif /* netinet/ether.h */
diff --git a/inet/netinet/icmp6.h b/inet/netinet/icmp6.h
deleted file mode 100644
index fc5d09ecac..0000000000
--- a/inet/netinet/icmp6.h
+++ /dev/null
@@ -1,345 +0,0 @@
-/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _NETINET_ICMP6_H
-#define _NETINET_ICMP6_H 1
-
-#include <inttypes.h>
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#define ICMP6_FILTER 1
-
-#define ICMP6_FILTER_BLOCK 1
-#define ICMP6_FILTER_PASS 2
-#define ICMP6_FILTER_BLOCKOTHERS 3
-#define ICMP6_FILTER_PASSONLY 4
-
-struct icmp6_filter
- {
- uint32_t icmp6_filt[8];
- };
-
-struct icmp6_hdr
- {
- uint8_t icmp6_type; /* type field */
- uint8_t icmp6_code; /* code field */
- uint16_t icmp6_cksum; /* checksum field */
- union
- {
- uint32_t icmp6_un_data32[1]; /* type-specific field */
- uint16_t icmp6_un_data16[2]; /* type-specific field */
- uint8_t icmp6_un_data8[4]; /* type-specific field */
- } icmp6_dataun;
- };
-
-#define icmp6_data32 icmp6_dataun.icmp6_un_data32
-#define icmp6_data16 icmp6_dataun.icmp6_un_data16
-#define icmp6_data8 icmp6_dataun.icmp6_un_data8
-#define icmp6_pptr icmp6_data32[0] /* parameter prob */
-#define icmp6_mtu icmp6_data32[0] /* packet too big */
-#define icmp6_id icmp6_data16[0] /* echo request/reply */
-#define icmp6_seq icmp6_data16[1] /* echo request/reply */
-#define icmp6_maxdelay icmp6_data16[0] /* mcast group membership */
-
-#define ICMP6_DST_UNREACH 1
-#define ICMP6_PACKET_TOO_BIG 2
-#define ICMP6_TIME_EXCEEDED 3
-#define ICMP6_PARAM_PROB 4
-
-#define ICMP6_INFOMSG_MASK 0x80 /* all informational messages */
-
-#define ICMP6_ECHO_REQUEST 128
-#define ICMP6_ECHO_REPLY 129
-#define MLD_LISTENER_QUERY 130
-#define MLD_LISTENER_REPORT 131
-#define MLD_LISTENER_REDUCTION 132
-
-#define ICMP6_DST_UNREACH_NOROUTE 0 /* no route to destination */
-#define ICMP6_DST_UNREACH_ADMIN 1 /* communication with destination */
- /* administratively prohibited */
-#define ICMP6_DST_UNREACH_BEYONDSCOPE 2 /* beyond scope of source address */
-#define ICMP6_DST_UNREACH_ADDR 3 /* address unreachable */
-#define ICMP6_DST_UNREACH_NOPORT 4 /* bad port */
-
-#define ICMP6_TIME_EXCEED_TRANSIT 0 /* Hop Limit == 0 in transit */
-#define ICMP6_TIME_EXCEED_REASSEMBLY 1 /* Reassembly time out */
-
-#define ICMP6_PARAMPROB_HEADER 0 /* erroneous header field */
-#define ICMP6_PARAMPROB_NEXTHEADER 1 /* unrecognized Next Header */
-#define ICMP6_PARAMPROB_OPTION 2 /* unrecognized IPv6 option */
-
-#define ICMP6_FILTER_WILLPASS(type, filterp) \
- ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) == 0)
-
-#define ICMP6_FILTER_WILLBLOCK(type, filterp) \
- ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) != 0)
-
-#define ICMP6_FILTER_SETPASS(type, filterp) \
- ((((filterp)->icmp6_filt[(type) >> 5]) &= ~(1 << ((type) & 31))))
-
-#define ICMP6_FILTER_SETBLOCK(type, filterp) \
- ((((filterp)->icmp6_filt[(type) >> 5]) |= (1 << ((type) & 31))))
-
-#define ICMP6_FILTER_SETPASSALL(filterp) \
- memset (filterp, 0, sizeof (struct icmp6_filter));
-
-#define ICMP6_FILTER_SETBLOCKALL(filterp) \
- memset (filterp, 0xFF, sizeof (struct icmp6_filter));
-
-#define ND_ROUTER_SOLICIT 133
-#define ND_ROUTER_ADVERT 134
-#define ND_NEIGHBOR_SOLICIT 135
-#define ND_NEIGHBOR_ADVERT 136
-#define ND_REDIRECT 137
-
-struct nd_router_solicit /* router solicitation */
- {
- struct icmp6_hdr nd_rs_hdr;
- /* could be followed by options */
- };
-
-#define nd_rs_type nd_rs_hdr.icmp6_type
-#define nd_rs_code nd_rs_hdr.icmp6_code
-#define nd_rs_cksum nd_rs_hdr.icmp6_cksum
-#define nd_rs_reserved nd_rs_hdr.icmp6_data32[0]
-
-struct nd_router_advert /* router advertisement */
- {
- struct icmp6_hdr nd_ra_hdr;
- uint32_t nd_ra_reachable; /* reachable time */
- uint32_t nd_ra_retransmit; /* retransmit timer */
- /* could be followed by options */
- };
-
-#define nd_ra_type nd_ra_hdr.icmp6_type
-#define nd_ra_code nd_ra_hdr.icmp6_code
-#define nd_ra_cksum nd_ra_hdr.icmp6_cksum
-#define nd_ra_curhoplimit nd_ra_hdr.icmp6_data8[0]
-#define nd_ra_flags_reserved nd_ra_hdr.icmp6_data8[1]
-#define ND_RA_FLAG_MANAGED 0x80
-#define ND_RA_FLAG_OTHER 0x40
-#define ND_RA_FLAG_HOME_AGENT 0x20
-#define nd_ra_router_lifetime nd_ra_hdr.icmp6_data16[1]
-
-struct nd_neighbor_solicit /* neighbor solicitation */
- {
- struct icmp6_hdr nd_ns_hdr;
- struct in6_addr nd_ns_target; /* target address */
- /* could be followed by options */
- };
-
-#define nd_ns_type nd_ns_hdr.icmp6_type
-#define nd_ns_code nd_ns_hdr.icmp6_code
-#define nd_ns_cksum nd_ns_hdr.icmp6_cksum
-#define nd_ns_reserved nd_ns_hdr.icmp6_data32[0]
-
-struct nd_neighbor_advert /* neighbor advertisement */
- {
- struct icmp6_hdr nd_na_hdr;
- struct in6_addr nd_na_target; /* target address */
- /* could be followed by options */
- };
-
-#define nd_na_type nd_na_hdr.icmp6_type
-#define nd_na_code nd_na_hdr.icmp6_code
-#define nd_na_cksum nd_na_hdr.icmp6_cksum
-#define nd_na_flags_reserved nd_na_hdr.icmp6_data32[0]
-#if __BYTE_ORDER == __BIG_ENDIAN
-#define ND_NA_FLAG_ROUTER 0x80000000
-#define ND_NA_FLAG_SOLICITED 0x40000000
-#define ND_NA_FLAG_OVERRIDE 0x20000000
-#else /* __BYTE_ORDER == __LITTLE_ENDIAN */
-#define ND_NA_FLAG_ROUTER 0x00000080
-#define ND_NA_FLAG_SOLICITED 0x00000040
-#define ND_NA_FLAG_OVERRIDE 0x00000020
-#endif
-
-struct nd_redirect /* redirect */
- {
- struct icmp6_hdr nd_rd_hdr;
- struct in6_addr nd_rd_target; /* target address */
- struct in6_addr nd_rd_dst; /* destination address */
- /* could be followed by options */
- };
-
-#define nd_rd_type nd_rd_hdr.icmp6_type
-#define nd_rd_code nd_rd_hdr.icmp6_code
-#define nd_rd_cksum nd_rd_hdr.icmp6_cksum
-#define nd_rd_reserved nd_rd_hdr.icmp6_data32[0]
-
-struct nd_opt_hdr /* Neighbor discovery option header */
- {
- uint8_t nd_opt_type;
- uint8_t nd_opt_len; /* in units of 8 octets */
- /* followed by option specific data */
- };
-
-#define ND_OPT_SOURCE_LINKADDR 1
-#define ND_OPT_TARGET_LINKADDR 2
-#define ND_OPT_PREFIX_INFORMATION 3
-#define ND_OPT_REDIRECTED_HEADER 4
-#define ND_OPT_MTU 5
-#define ND_OPT_RTR_ADV_INTERVAL 7
-#define ND_OPT_HOME_AGENT_INFO 8
-
-struct nd_opt_prefix_info /* prefix information */
- {
- uint8_t nd_opt_pi_type;
- uint8_t nd_opt_pi_len;
- uint8_t nd_opt_pi_prefix_len;
- uint8_t nd_opt_pi_flags_reserved;
- uint32_t nd_opt_pi_valid_time;
- uint32_t nd_opt_pi_preferred_time;
- uint32_t nd_opt_pi_reserved2;
- struct in6_addr nd_opt_pi_prefix;
- };
-
-#define ND_OPT_PI_FLAG_ONLINK 0x80
-#define ND_OPT_PI_FLAG_AUTO 0x40
-#define ND_OPT_PI_FLAG_RADDR 0x20
-
-struct nd_opt_rd_hdr /* redirected header */
- {
- uint8_t nd_opt_rh_type;
- uint8_t nd_opt_rh_len;
- uint16_t nd_opt_rh_reserved1;
- uint32_t nd_opt_rh_reserved2;
- /* followed by IP header and data */
- };
-
-struct nd_opt_mtu /* MTU option */
- {
- uint8_t nd_opt_mtu_type;
- uint8_t nd_opt_mtu_len;
- uint16_t nd_opt_mtu_reserved;
- uint32_t nd_opt_mtu_mtu;
- };
-
-struct mld_hdr
- {
- struct icmp6_hdr mld_icmp6_hdr;
- struct in6_addr mld_addr; /* multicast address */
- };
-
-#define mld_type mld_icmp6_hdr.icmp6_type
-#define mld_code mld_icmp6_hdr.icmp6_code
-#define mld_cksum mld_icmp6_hdr.icmp6_cksum
-#define mld_maxdelay mld_icmp6_hdr.icmp6_data16[0]
-#define mld_reserved mld_icmp6_hdr.icmp6_data16[1]
-
-#define ICMP6_ROUTER_RENUMBERING 138
-
-struct icmp6_router_renum /* router renumbering header */
- {
- struct icmp6_hdr rr_hdr;
- uint8_t rr_segnum;
- uint8_t rr_flags;
- uint16_t rr_maxdelay;
- uint32_t rr_reserved;
- };
-
-#define rr_type rr_hdr.icmp6_type
-#define rr_code rr_hdr.icmp6_code
-#define rr_cksum rr_hdr.icmp6_cksum
-#define rr_seqnum rr_hdr.icmp6_data32[0]
-
-/* Router renumbering flags */
-#define ICMP6_RR_FLAGS_TEST 0x80
-#define ICMP6_RR_FLAGS_REQRESULT 0x40
-#define ICMP6_RR_FLAGS_FORCEAPPLY 0x20
-#define ICMP6_RR_FLAGS_SPECSITE 0x10
-#define ICMP6_RR_FLAGS_PREVDONE 0x08
-
-struct rr_pco_match /* match prefix part */
- {
- uint8_t rpm_code;
- uint8_t rpm_len;
- uint8_t rpm_ordinal;
- uint8_t rpm_matchlen;
- uint8_t rpm_minlen;
- uint8_t rpm_maxlen;
- uint16_t rpm_reserved;
- struct in6_addr rpm_prefix;
- };
-
-/* PCO code values */
-#define RPM_PCO_ADD 1
-#define RPM_PCO_CHANGE 2
-#define RPM_PCO_SETGLOBAL 3
-
-struct rr_pco_use /* use prefix part */
- {
- uint8_t rpu_uselen;
- uint8_t rpu_keeplen;
- uint8_t rpu_ramask;
- uint8_t rpu_raflags;
- uint32_t rpu_vltime;
- uint32_t rpu_pltime;
- uint32_t rpu_flags;
- struct in6_addr rpu_prefix;
- };
-
-#define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK 0x20
-#define ICMP6_RR_PCOUSE_RAFLAGS_AUTO 0x10
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-# define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80000000
-# define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40000000
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
-# define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80
-# define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40
-#endif
-
-struct rr_result /* router renumbering result message */
- {
- uint16_t rrr_flags;
- uint8_t rrr_ordinal;
- uint8_t rrr_matchedlen;
- uint32_t rrr_ifid;
- struct in6_addr rrr_prefix;
- };
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-# define ICMP6_RR_RESULT_FLAGS_OOB 0x0002
-# define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0001
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
-# define ICMP6_RR_RESULT_FLAGS_OOB 0x0200
-# define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100
-#endif
-
-/* Mobile IPv6 extension: Advertisement Interval. */
-struct nd_opt_adv_interval
- {
- uint8_t nd_opt_adv_interval_type;
- uint8_t nd_opt_adv_interval_len;
- uint16_t nd_opt_adv_interval_reserved;
- uint32_t nd_opt_adv_interval_ival;
- };
-
-/* Mobile IPv6 extension: Home Agent Info. */
-struct nd_opt_home_agent_info
- {
- uint8_t nd_opt_home_agent_info_type;
- uint8_t nd_opt_home_agent_info_len;
- uint16_t nd_opt_home_agent_info_reserved;
- uint16_t nd_opt_home_agent_info_preference;
- uint16_t nd_opt_home_agent_info_lifetime;
- };
-
-#endif /* netinet/icmpv6.h */
diff --git a/inet/netinet/igmp.h b/inet/netinet/igmp.h
deleted file mode 100644
index 292ced4a95..0000000000
--- a/inet/netinet/igmp.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _NETINET_IGMP_H
-#define _NETINET_IGMP_H 1
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-#ifdef __USE_MISC
-
-#include <netinet/in.h>
-
-__BEGIN_DECLS
-
-/*
- * Copyright (c) 1988 Stephen Deering.
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Stephen Deering of Stanford University.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)igmp.h 8.1 (Berkeley) 6/10/93
- * $FreeBSD$
- */
-
-struct igmp {
- uint8_t igmp_type; /* IGMP type */
- uint8_t igmp_code; /* routing code */
- uint16_t igmp_cksum; /* checksum */
- struct in_addr igmp_group; /* group address */
-};
-
-#define IGMP_MINLEN 8
-
-/*
- * Message types, including version number.
- */
-#define IGMP_MEMBERSHIP_QUERY 0x11 /* membership query */
-#define IGMP_V1_MEMBERSHIP_REPORT 0x12 /* Ver. 1 membership report */
-#define IGMP_V2_MEMBERSHIP_REPORT 0x16 /* Ver. 2 membership report */
-#define IGMP_V2_LEAVE_GROUP 0x17 /* Leave-group message */
-
-#define IGMP_DVMRP 0x13 /* DVMRP routing message */
-#define IGMP_PIM 0x14 /* PIM routing message */
-#define IGMP_TRACE 0x15
-
-#define IGMP_MTRACE_RESP 0x1e /* traceroute resp.(to sender)*/
-#define IGMP_MTRACE 0x1f /* mcast traceroute messages */
-
-#define IGMP_MAX_HOST_REPORT_DELAY 10 /* max delay for response to */
- /* query (in seconds) according */
- /* to RFC1112 */
-#define IGMP_TIMER_SCALE 10 /* denotes that the igmp code field */
- /* specifies time in 10th of seconds*/
-
-/*
- * States for the IGMP v2 state table.
- */
-#define IGMP_DELAYING_MEMBER 1
-#define IGMP_IDLE_MEMBER 2
-#define IGMP_LAZY_MEMBER 3
-#define IGMP_SLEEPING_MEMBER 4
-#define IGMP_AWAKENING_MEMBER 5
-
-/*
- * States for IGMP router version cache.
- */
-#define IGMP_v1_ROUTER 1
-#define IGMP_v2_ROUTER 2
-
-/*
- * The following four defininitions are for backwards compatibility.
- * They should be removed as soon as all applications are updated to
- * use the new constant names.
- */
-#define IGMP_HOST_MEMBERSHIP_QUERY IGMP_MEMBERSHIP_QUERY
-#define IGMP_HOST_MEMBERSHIP_REPORT IGMP_V1_MEMBERSHIP_REPORT
-#define IGMP_HOST_NEW_MEMBERSHIP_REPORT IGMP_V2_MEMBERSHIP_REPORT
-#define IGMP_HOST_LEAVE_MESSAGE IGMP_V2_LEAVE_GROUP
-
-__END_DECLS
-
-#endif
-
-#endif /* netinet/igmp.h */
diff --git a/inet/netinet/in.h b/inet/netinet/in.h
deleted file mode 100644
index f94b4b4e1c..0000000000
--- a/inet/netinet/in.h
+++ /dev/null
@@ -1,632 +0,0 @@
-/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _NETINET_IN_H
-#define _NETINET_IN_H 1
-
-#include <features.h>
-#include <bits/stdint-uintn.h>
-#include <sys/socket.h>
-#include <bits/types.h>
-
-
-__BEGIN_DECLS
-
-/* Internet address. */
-typedef uint32_t in_addr_t;
-struct in_addr
- {
- in_addr_t s_addr;
- };
-
-/* Get system-specific definitions. */
-#include <bits/in.h>
-
-/* Standard well-defined IP protocols. */
-enum
- {
- IPPROTO_IP = 0, /* Dummy protocol for TCP. */
-#define IPPROTO_IP IPPROTO_IP
- IPPROTO_ICMP = 1, /* Internet Control Message Protocol. */
-#define IPPROTO_ICMP IPPROTO_ICMP
- IPPROTO_IGMP = 2, /* Internet Group Management Protocol. */
-#define IPPROTO_IGMP IPPROTO_IGMP
- IPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94). */
-#define IPPROTO_IPIP IPPROTO_IPIP
- IPPROTO_TCP = 6, /* Transmission Control Protocol. */
-#define IPPROTO_TCP IPPROTO_TCP
- IPPROTO_EGP = 8, /* Exterior Gateway Protocol. */
-#define IPPROTO_EGP IPPROTO_EGP
- IPPROTO_PUP = 12, /* PUP protocol. */
-#define IPPROTO_PUP IPPROTO_PUP
- IPPROTO_UDP = 17, /* User Datagram Protocol. */
-#define IPPROTO_UDP IPPROTO_UDP
- IPPROTO_IDP = 22, /* XNS IDP protocol. */
-#define IPPROTO_IDP IPPROTO_IDP
- IPPROTO_TP = 29, /* SO Transport Protocol Class 4. */
-#define IPPROTO_TP IPPROTO_TP
- IPPROTO_DCCP = 33, /* Datagram Congestion Control Protocol. */
-#define IPPROTO_DCCP IPPROTO_DCCP
- IPPROTO_IPV6 = 41, /* IPv6 header. */
-#define IPPROTO_IPV6 IPPROTO_IPV6
- IPPROTO_RSVP = 46, /* Reservation Protocol. */
-#define IPPROTO_RSVP IPPROTO_RSVP
- IPPROTO_GRE = 47, /* General Routing Encapsulation. */
-#define IPPROTO_GRE IPPROTO_GRE
- IPPROTO_ESP = 50, /* encapsulating security payload. */
-#define IPPROTO_ESP IPPROTO_ESP
- IPPROTO_AH = 51, /* authentication header. */
-#define IPPROTO_AH IPPROTO_AH
- IPPROTO_MTP = 92, /* Multicast Transport Protocol. */
-#define IPPROTO_MTP IPPROTO_MTP
- IPPROTO_BEETPH = 94, /* IP option pseudo header for BEET. */
-#define IPPROTO_BEETPH IPPROTO_BEETPH
- IPPROTO_ENCAP = 98, /* Encapsulation Header. */
-#define IPPROTO_ENCAP IPPROTO_ENCAP
- IPPROTO_PIM = 103, /* Protocol Independent Multicast. */
-#define IPPROTO_PIM IPPROTO_PIM
- IPPROTO_COMP = 108, /* Compression Header Protocol. */
-#define IPPROTO_COMP IPPROTO_COMP
- IPPROTO_SCTP = 132, /* Stream Control Transmission Protocol. */
-#define IPPROTO_SCTP IPPROTO_SCTP
- IPPROTO_UDPLITE = 136, /* UDP-Lite protocol. */
-#define IPPROTO_UDPLITE IPPROTO_UDPLITE
- IPPROTO_MPLS = 137, /* MPLS in IP. */
-#define IPPROTO_MPLS IPPROTO_MPLS
- IPPROTO_RAW = 255, /* Raw IP packets. */
-#define IPPROTO_RAW IPPROTO_RAW
- IPPROTO_MAX
- };
-
-/* If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel
- network headers first and we should use those ABI-identical definitions
- instead of our own, otherwise 0. */
-#if !__USE_KERNEL_IPV6_DEFS
-enum
- {
- IPPROTO_HOPOPTS = 0, /* IPv6 Hop-by-Hop options. */
-#define IPPROTO_HOPOPTS IPPROTO_HOPOPTS
- IPPROTO_ROUTING = 43, /* IPv6 routing header. */
-#define IPPROTO_ROUTING IPPROTO_ROUTING
- IPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header. */
-#define IPPROTO_FRAGMENT IPPROTO_FRAGMENT
- IPPROTO_ICMPV6 = 58, /* ICMPv6. */
-#define IPPROTO_ICMPV6 IPPROTO_ICMPV6
- IPPROTO_NONE = 59, /* IPv6 no next header. */
-#define IPPROTO_NONE IPPROTO_NONE
- IPPROTO_DSTOPTS = 60, /* IPv6 destination options. */
-#define IPPROTO_DSTOPTS IPPROTO_DSTOPTS
- IPPROTO_MH = 135 /* IPv6 mobility header. */
-#define IPPROTO_MH IPPROTO_MH
- };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-/* Type to represent a port. */
-typedef uint16_t in_port_t;
-
-/* Standard well-known ports. */
-enum
- {
- IPPORT_ECHO = 7, /* Echo service. */
- IPPORT_DISCARD = 9, /* Discard transmissions service. */
- IPPORT_SYSTAT = 11, /* System status service. */
- IPPORT_DAYTIME = 13, /* Time of day service. */
- IPPORT_NETSTAT = 15, /* Network status service. */
- IPPORT_FTP = 21, /* File Transfer Protocol. */
- IPPORT_TELNET = 23, /* Telnet protocol. */
- IPPORT_SMTP = 25, /* Simple Mail Transfer Protocol. */
- IPPORT_TIMESERVER = 37, /* Timeserver service. */
- IPPORT_NAMESERVER = 42, /* Domain Name Service. */
- IPPORT_WHOIS = 43, /* Internet Whois service. */
- IPPORT_MTP = 57,
-
- IPPORT_TFTP = 69, /* Trivial File Transfer Protocol. */
- IPPORT_RJE = 77,
- IPPORT_FINGER = 79, /* Finger service. */
- IPPORT_TTYLINK = 87,
- IPPORT_SUPDUP = 95, /* SUPDUP protocol. */
-
-
- IPPORT_EXECSERVER = 512, /* execd service. */
- IPPORT_LOGINSERVER = 513, /* rlogind service. */
- IPPORT_CMDSERVER = 514,
- IPPORT_EFSSERVER = 520,
-
- /* UDP ports. */
- IPPORT_BIFFUDP = 512,
- IPPORT_WHOSERVER = 513,
- IPPORT_ROUTESERVER = 520,
-
- /* Ports less than this value are reserved for privileged processes. */
- IPPORT_RESERVED = 1024,
-
- /* Ports greater this value are reserved for (non-privileged) servers. */
- IPPORT_USERRESERVED = 5000
- };
-
-/* Definitions of the bits in an Internet address integer.
-
- On subnets, host and network parts are found according to
- the subnet mask, not these masks. */
-
-#define IN_CLASSA(a) ((((in_addr_t)(a)) & 0x80000000) == 0)
-#define IN_CLASSA_NET 0xff000000
-#define IN_CLASSA_NSHIFT 24
-#define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET)
-#define IN_CLASSA_MAX 128
-
-#define IN_CLASSB(a) ((((in_addr_t)(a)) & 0xc0000000) == 0x80000000)
-#define IN_CLASSB_NET 0xffff0000
-#define IN_CLASSB_NSHIFT 16
-#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET)
-#define IN_CLASSB_MAX 65536
-
-#define IN_CLASSC(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xc0000000)
-#define IN_CLASSC_NET 0xffffff00
-#define IN_CLASSC_NSHIFT 8
-#define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET)
-
-#define IN_CLASSD(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xe0000000)
-#define IN_MULTICAST(a) IN_CLASSD(a)
-
-#define IN_EXPERIMENTAL(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xe0000000)
-#define IN_BADCLASS(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xf0000000)
-
-/* Address to accept any incoming messages. */
-#define INADDR_ANY ((in_addr_t) 0x00000000)
-/* Address to send to all hosts. */
-#define INADDR_BROADCAST ((in_addr_t) 0xffffffff)
-/* Address indicating an error return. */
-#define INADDR_NONE ((in_addr_t) 0xffffffff)
-
-/* Network number for local host loopback. */
-#define IN_LOOPBACKNET 127
-/* Address to loopback in software to local host. */
-#ifndef INADDR_LOOPBACK
-# define INADDR_LOOPBACK ((in_addr_t) 0x7f000001) /* Inet 127.0.0.1. */
-#endif
-
-/* Defines for Multicast INADDR. */
-#define INADDR_UNSPEC_GROUP ((in_addr_t) 0xe0000000) /* 224.0.0.0 */
-#define INADDR_ALLHOSTS_GROUP ((in_addr_t) 0xe0000001) /* 224.0.0.1 */
-#define INADDR_ALLRTRS_GROUP ((in_addr_t) 0xe0000002) /* 224.0.0.2 */
-#define INADDR_MAX_LOCAL_GROUP ((in_addr_t) 0xe00000ff) /* 224.0.0.255 */
-
-#if !__USE_KERNEL_IPV6_DEFS
-/* IPv6 address */
-struct in6_addr
- {
- union
- {
- uint8_t __u6_addr8[16];
- uint16_t __u6_addr16[8];
- uint32_t __u6_addr32[4];
- } __in6_u;
-#define s6_addr __in6_u.__u6_addr8
-#ifdef __USE_MISC
-# define s6_addr16 __in6_u.__u6_addr16
-# define s6_addr32 __in6_u.__u6_addr32
-#endif
- };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-extern const struct in6_addr in6addr_any; /* :: */
-extern const struct in6_addr in6addr_loopback; /* ::1 */
-#define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }
-#define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }
-
-#define INET_ADDRSTRLEN 16
-#define INET6_ADDRSTRLEN 46
-
-
-/* Structure describing an Internet socket address. */
-struct sockaddr_in
- {
- __SOCKADDR_COMMON (sin_);
- in_port_t sin_port; /* Port number. */
- struct in_addr sin_addr; /* Internet address. */
-
- /* Pad to size of `struct sockaddr'. */
- unsigned char sin_zero[sizeof (struct sockaddr) -
- __SOCKADDR_COMMON_SIZE -
- sizeof (in_port_t) -
- sizeof (struct in_addr)];
- };
-
-#if !__USE_KERNEL_IPV6_DEFS
-/* Ditto, for IPv6. */
-struct sockaddr_in6
- {
- __SOCKADDR_COMMON (sin6_);
- in_port_t sin6_port; /* Transport layer port # */
- uint32_t sin6_flowinfo; /* IPv6 flow information */
- struct in6_addr sin6_addr; /* IPv6 address */
- uint32_t sin6_scope_id; /* IPv6 scope-id */
- };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-#ifdef __USE_MISC
-/* IPv4 multicast request. */
-struct ip_mreq
- {
- /* IP multicast address of group. */
- struct in_addr imr_multiaddr;
-
- /* Local IP address of interface. */
- struct in_addr imr_interface;
- };
-
-struct ip_mreq_source
- {
- /* IP multicast address of group. */
- struct in_addr imr_multiaddr;
-
- /* IP address of interface. */
- struct in_addr imr_interface;
-
- /* IP address of source. */
- struct in_addr imr_sourceaddr;
- };
-#endif
-
-#if !__USE_KERNEL_IPV6_DEFS
-/* Likewise, for IPv6. */
-struct ipv6_mreq
- {
- /* IPv6 multicast address of group */
- struct in6_addr ipv6mr_multiaddr;
-
- /* local interface */
- unsigned int ipv6mr_interface;
- };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-#ifdef __USE_MISC
-/* Multicast group request. */
-struct group_req
- {
- /* Interface index. */
- uint32_t gr_interface;
-
- /* Group address. */
- struct sockaddr_storage gr_group;
- };
-
-struct group_source_req
- {
- /* Interface index. */
- uint32_t gsr_interface;
-
- /* Group address. */
- struct sockaddr_storage gsr_group;
-
- /* Source address. */
- struct sockaddr_storage gsr_source;
- };
-
-
-/* Full-state filter operations. */
-struct ip_msfilter
- {
- /* IP multicast address of group. */
- struct in_addr imsf_multiaddr;
-
- /* Local IP address of interface. */
- struct in_addr imsf_interface;
-
- /* Filter mode. */
- uint32_t imsf_fmode;
-
- /* Number of source addresses. */
- uint32_t imsf_numsrc;
- /* Source addresses. */
- struct in_addr imsf_slist[1];
- };
-
-#define IP_MSFILTER_SIZE(numsrc) (sizeof (struct ip_msfilter) \
- - sizeof (struct in_addr) \
- + (numsrc) * sizeof (struct in_addr))
-
-struct group_filter
- {
- /* Interface index. */
- uint32_t gf_interface;
-
- /* Group address. */
- struct sockaddr_storage gf_group;
-
- /* Filter mode. */
- uint32_t gf_fmode;
-
- /* Number of source addresses. */
- uint32_t gf_numsrc;
- /* Source addresses. */
- struct sockaddr_storage gf_slist[1];
-};
-
-#define GROUP_FILTER_SIZE(numsrc) (sizeof (struct group_filter) \
- - sizeof (struct sockaddr_storage) \
- + ((numsrc) \
- * sizeof (struct sockaddr_storage)))
-#endif
-
-/* Functions to convert between host and network byte order.
-
- Please note that these functions normally take `unsigned long int' or
- `unsigned short int' values as arguments and also return them. But
- this was a short-sighted decision since on different systems the types
- may have different representations but the values are always the same. */
-
-extern uint32_t ntohl (uint32_t __netlong) __THROW __attribute__ ((__const__));
-extern uint16_t ntohs (uint16_t __netshort)
- __THROW __attribute__ ((__const__));
-extern uint32_t htonl (uint32_t __hostlong)
- __THROW __attribute__ ((__const__));
-extern uint16_t htons (uint16_t __hostshort)
- __THROW __attribute__ ((__const__));
-
-#include <endian.h>
-
-/* Get machine dependent optimized versions of byte swapping functions. */
-#include <bits/byteswap.h>
-#include <bits/uintn-identity.h>
-
-#ifdef __OPTIMIZE__
-/* We can optimize calls to the conversion functions. Either nothing has
- to be done or we are using directly the byte-swapping functions which
- often can be inlined. */
-# if __BYTE_ORDER == __BIG_ENDIAN
-/* The host byte order is the same as network byte order,
- so these functions are all just identity. */
-# define ntohl(x) __uint32_identity (x)
-# define ntohs(x) __uint16_identity (x)
-# define htonl(x) __uint32_identity (x)
-# define htons(x) __uint16_identity (x)
-# else
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-# define ntohl(x) __bswap_32 (x)
-# define ntohs(x) __bswap_16 (x)
-# define htonl(x) __bswap_32 (x)
-# define htons(x) __bswap_16 (x)
-# endif
-# endif
-#endif
-
-#ifdef __GNUC__
-# define IN6_IS_ADDR_UNSPECIFIED(a) \
- (__extension__ \
- ({ const struct in6_addr *__a = (const struct in6_addr *) (a); \
- __a->__in6_u.__u6_addr32[0] == 0 \
- && __a->__in6_u.__u6_addr32[1] == 0 \
- && __a->__in6_u.__u6_addr32[2] == 0 \
- && __a->__in6_u.__u6_addr32[3] == 0; }))
-
-# define IN6_IS_ADDR_LOOPBACK(a) \
- (__extension__ \
- ({ const struct in6_addr *__a = (const struct in6_addr *) (a); \
- __a->__in6_u.__u6_addr32[0] == 0 \
- && __a->__in6_u.__u6_addr32[1] == 0 \
- && __a->__in6_u.__u6_addr32[2] == 0 \
- && __a->__in6_u.__u6_addr32[3] == htonl (1); }))
-
-# define IN6_IS_ADDR_LINKLOCAL(a) \
- (__extension__ \
- ({ const struct in6_addr *__a = (const struct in6_addr *) (a); \
- (__a->__in6_u.__u6_addr32[0] & htonl (0xffc00000)) == htonl (0xfe800000); }))
-
-# define IN6_IS_ADDR_SITELOCAL(a) \
- (__extension__ \
- ({ const struct in6_addr *__a = (const struct in6_addr *) (a); \
- (__a->__in6_u.__u6_addr32[0] & htonl (0xffc00000)) == htonl (0xfec00000); }))
-
-# define IN6_IS_ADDR_V4MAPPED(a) \
- (__extension__ \
- ({ const struct in6_addr *__a = (const struct in6_addr *) (a); \
- __a->__in6_u.__u6_addr32[0] == 0 \
- && __a->__in6_u.__u6_addr32[1] == 0 \
- && __a->__in6_u.__u6_addr32[2] == htonl (0xffff); }))
-
-# define IN6_IS_ADDR_V4COMPAT(a) \
- (__extension__ \
- ({ const struct in6_addr *__a = (const struct in6_addr *) (a); \
- __a->__in6_u.__u6_addr32[0] == 0 \
- && __a->__in6_u.__u6_addr32[1] == 0 \
- && __a->__in6_u.__u6_addr32[2] == 0 \
- && ntohl (__a->__in6_u.__u6_addr32[3]) > 1; }))
-
-# define IN6_ARE_ADDR_EQUAL(a,b) \
- (__extension__ \
- ({ const struct in6_addr *__a = (const struct in6_addr *) (a); \
- const struct in6_addr *__b = (const struct in6_addr *) (b); \
- __a->__in6_u.__u6_addr32[0] == __b->__in6_u.__u6_addr32[0] \
- && __a->__in6_u.__u6_addr32[1] == __b->__in6_u.__u6_addr32[1] \
- && __a->__in6_u.__u6_addr32[2] == __b->__in6_u.__u6_addr32[2] \
- && __a->__in6_u.__u6_addr32[3] == __b->__in6_u.__u6_addr32[3]; }))
-#else
-# define IN6_IS_ADDR_UNSPECIFIED(a) \
- (((const uint32_t *) (a))[0] == 0 \
- && ((const uint32_t *) (a))[1] == 0 \
- && ((const uint32_t *) (a))[2] == 0 \
- && ((const uint32_t *) (a))[3] == 0)
-
-# define IN6_IS_ADDR_LOOPBACK(a) \
- (((const uint32_t *) (a))[0] == 0 \
- && ((const uint32_t *) (a))[1] == 0 \
- && ((const uint32_t *) (a))[2] == 0 \
- && ((const uint32_t *) (a))[3] == htonl (1))
-
-# define IN6_IS_ADDR_LINKLOCAL(a) \
- ((((const uint32_t *) (a))[0] & htonl (0xffc00000)) \
- == htonl (0xfe800000))
-
-# define IN6_IS_ADDR_SITELOCAL(a) \
- ((((const uint32_t *) (a))[0] & htonl (0xffc00000)) \
- == htonl (0xfec00000))
-
-# define IN6_IS_ADDR_V4MAPPED(a) \
- ((((const uint32_t *) (a))[0] == 0) \
- && (((const uint32_t *) (a))[1] == 0) \
- && (((const uint32_t *) (a))[2] == htonl (0xffff)))
-
-# define IN6_IS_ADDR_V4COMPAT(a) \
- ((((const uint32_t *) (a))[0] == 0) \
- && (((const uint32_t *) (a))[1] == 0) \
- && (((const uint32_t *) (a))[2] == 0) \
- && (ntohl (((const uint32_t *) (a))[3]) > 1))
-
-# define IN6_ARE_ADDR_EQUAL(a,b) \
- ((((const uint32_t *) (a))[0] == ((const uint32_t *) (b))[0]) \
- && (((const uint32_t *) (a))[1] == ((const uint32_t *) (b))[1]) \
- && (((const uint32_t *) (a))[2] == ((const uint32_t *) (b))[2]) \
- && (((const uint32_t *) (a))[3] == ((const uint32_t *) (b))[3]))
-#endif
-
-#define IN6_IS_ADDR_MULTICAST(a) (((const uint8_t *) (a))[0] == 0xff)
-
-#ifdef __USE_MISC
-/* Bind socket to a privileged IP port. */
-extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __THROW;
-
-/* The IPv6 version of this function. */
-extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
- __THROW;
-#endif
-
-
-#define IN6_IS_ADDR_MC_NODELOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
- && ((((const uint8_t *) (a))[1] & 0xf) == 0x1))
-
-#define IN6_IS_ADDR_MC_LINKLOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
- && ((((const uint8_t *) (a))[1] & 0xf) == 0x2))
-
-#define IN6_IS_ADDR_MC_SITELOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
- && ((((const uint8_t *) (a))[1] & 0xf) == 0x5))
-
-#define IN6_IS_ADDR_MC_ORGLOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
- && ((((const uint8_t *) (a))[1] & 0xf) == 0x8))
-
-#define IN6_IS_ADDR_MC_GLOBAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
- && ((((const uint8_t *) (a))[1] & 0xf) == 0xe))
-
-
-#ifdef __USE_GNU
-struct cmsghdr; /* Forward declaration. */
-
-#if !__USE_KERNEL_IPV6_DEFS
-/* IPv6 packet information. */
-struct in6_pktinfo
- {
- struct in6_addr ipi6_addr; /* src/dst IPv6 address */
- unsigned int ipi6_ifindex; /* send/recv interface index */
- };
-
-/* IPv6 MTU information. */
-struct ip6_mtuinfo
- {
- struct sockaddr_in6 ip6m_addr; /* dst address including zone ID */
- uint32_t ip6m_mtu; /* path MTU in host byte order */
- };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-/* Obsolete hop-by-hop and Destination Options Processing (RFC 2292). */
-extern int inet6_option_space (int __nbytes)
- __THROW __attribute_deprecated__;
-extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp,
- int __type) __THROW __attribute_deprecated__;
-extern int inet6_option_append (struct cmsghdr *__cmsg,
- const uint8_t *__typep, int __multx,
- int __plusy) __THROW __attribute_deprecated__;
-extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen,
- int __multx, int __plusy)
- __THROW __attribute_deprecated__;
-extern int inet6_option_next (const struct cmsghdr *__cmsg,
- uint8_t **__tptrp)
- __THROW __attribute_deprecated__;
-extern int inet6_option_find (const struct cmsghdr *__cmsg,
- uint8_t **__tptrp, int __type)
- __THROW __attribute_deprecated__;
-
-
-/* Hop-by-Hop and Destination Options Processing (RFC 3542). */
-extern int inet6_opt_init (void *__extbuf, socklen_t __extlen) __THROW;
-extern int inet6_opt_append (void *__extbuf, socklen_t __extlen, int __offset,
- uint8_t __type, socklen_t __len, uint8_t __align,
- void **__databufp) __THROW;
-extern int inet6_opt_finish (void *__extbuf, socklen_t __extlen, int __offset)
- __THROW;
-extern int inet6_opt_set_val (void *__databuf, int __offset, void *__val,
- socklen_t __vallen) __THROW;
-extern int inet6_opt_next (void *__extbuf, socklen_t __extlen, int __offset,
- uint8_t *__typep, socklen_t *__lenp,
- void **__databufp) __THROW;
-extern int inet6_opt_find (void *__extbuf, socklen_t __extlen, int __offset,
- uint8_t __type, socklen_t *__lenp,
- void **__databufp) __THROW;
-extern int inet6_opt_get_val (void *__databuf, int __offset, void *__val,
- socklen_t __vallen) __THROW;
-
-
-/* Routing Header Option (RFC 3542). */
-extern socklen_t inet6_rth_space (int __type, int __segments) __THROW;
-extern void *inet6_rth_init (void *__bp, socklen_t __bp_len, int __type,
- int __segments) __THROW;
-extern int inet6_rth_add (void *__bp, const struct in6_addr *__addr) __THROW;
-extern int inet6_rth_reverse (const void *__in, void *__out) __THROW;
-extern int inet6_rth_segments (const void *__bp) __THROW;
-extern struct in6_addr *inet6_rth_getaddr (const void *__bp, int __index)
- __THROW;
-
-
-/* Multicast source filter support. */
-
-/* Get IPv4 source filter. */
-extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr,
- struct in_addr __group, uint32_t *__fmode,
- uint32_t *__numsrc, struct in_addr *__slist)
- __THROW;
-
-/* Set IPv4 source filter. */
-extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr,
- struct in_addr __group, uint32_t __fmode,
- uint32_t __numsrc,
- const struct in_addr *__slist)
- __THROW;
-
-
-/* Get source filter. */
-extern int getsourcefilter (int __s, uint32_t __interface_addr,
- const struct sockaddr *__group,
- socklen_t __grouplen, uint32_t *__fmode,
- uint32_t *__numsrc,
- struct sockaddr_storage *__slist) __THROW;
-
-/* Set source filter. */
-extern int setsourcefilter (int __s, uint32_t __interface_addr,
- const struct sockaddr *__group,
- socklen_t __grouplen, uint32_t __fmode,
- uint32_t __numsrc,
- const struct sockaddr_storage *__slist) __THROW;
-#endif /* use GNU */
-
-__END_DECLS
-
-#endif /* netinet/in.h */
diff --git a/inet/netinet/ip6.h b/inet/netinet/ip6.h
deleted file mode 100644
index dbced70502..0000000000
--- a/inet/netinet/ip6.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _NETINET_IP6_H
-#define _NETINET_IP6_H 1
-
-#include <inttypes.h>
-#include <netinet/in.h>
-
-struct ip6_hdr
- {
- union
- {
- struct ip6_hdrctl
- {
- uint32_t ip6_un1_flow; /* 4 bits version, 8 bits TC,
- 20 bits flow-ID */
- uint16_t ip6_un1_plen; /* payload length */
- uint8_t ip6_un1_nxt; /* next header */
- uint8_t ip6_un1_hlim; /* hop limit */
- } ip6_un1;
- uint8_t ip6_un2_vfc; /* 4 bits version, top 4 bits tclass */
- } ip6_ctlun;
- struct in6_addr ip6_src; /* source address */
- struct in6_addr ip6_dst; /* destination address */
- };
-
-#define ip6_vfc ip6_ctlun.ip6_un2_vfc
-#define ip6_flow ip6_ctlun.ip6_un1.ip6_un1_flow
-#define ip6_plen ip6_ctlun.ip6_un1.ip6_un1_plen
-#define ip6_nxt ip6_ctlun.ip6_un1.ip6_un1_nxt
-#define ip6_hlim ip6_ctlun.ip6_un1.ip6_un1_hlim
-#define ip6_hops ip6_ctlun.ip6_un1.ip6_un1_hlim
-
-/* Generic extension header. */
-struct ip6_ext
- {
- uint8_t ip6e_nxt; /* next header. */
- uint8_t ip6e_len; /* length in units of 8 octets. */
- };
-
-/* Hop-by-Hop options header. */
-struct ip6_hbh
- {
- uint8_t ip6h_nxt; /* next header. */
- uint8_t ip6h_len; /* length in units of 8 octets. */
- /* followed by options */
- };
-
-/* Destination options header */
-struct ip6_dest
- {
- uint8_t ip6d_nxt; /* next header */
- uint8_t ip6d_len; /* length in units of 8 octets */
- /* followed by options */
- };
-
-/* Routing header */
-struct ip6_rthdr
- {
- uint8_t ip6r_nxt; /* next header */
- uint8_t ip6r_len; /* length in units of 8 octets */
- uint8_t ip6r_type; /* routing type */
- uint8_t ip6r_segleft; /* segments left */
- /* followed by routing type specific data */
- };
-
-/* Type 0 Routing header */
-struct ip6_rthdr0
- {
- uint8_t ip6r0_nxt; /* next header */
- uint8_t ip6r0_len; /* length in units of 8 octets */
- uint8_t ip6r0_type; /* always zero */
- uint8_t ip6r0_segleft; /* segments left */
- uint8_t ip6r0_reserved; /* reserved field */
- uint8_t ip6r0_slmap[3]; /* strict/loose bit map */
- /* followed by up to 127 struct in6_addr */
- struct in6_addr ip6r0_addr[0];
- };
-
-/* Fragment header */
-struct ip6_frag
- {
- uint8_t ip6f_nxt; /* next header */
- uint8_t ip6f_reserved; /* reserved field */
- uint16_t ip6f_offlg; /* offset, reserved, and flag */
- uint32_t ip6f_ident; /* identification */
- };
-
-#if __BYTE_ORDER == __BIG_ENDIAN
-# define IP6F_OFF_MASK 0xfff8 /* mask out offset from _offlg */
-# define IP6F_RESERVED_MASK 0x0006 /* reserved bits in ip6f_offlg */
-# define IP6F_MORE_FRAG 0x0001 /* more-fragments flag */
-#else /* __BYTE_ORDER == __LITTLE_ENDIAN */
-# define IP6F_OFF_MASK 0xf8ff /* mask out offset from _offlg */
-# define IP6F_RESERVED_MASK 0x0600 /* reserved bits in ip6f_offlg */
-# define IP6F_MORE_FRAG 0x0100 /* more-fragments flag */
-#endif
-
-/* IPv6 options */
-struct ip6_opt
- {
- uint8_t ip6o_type;
- uint8_t ip6o_len;
- };
-
-/* The high-order 3 bits of the option type define the behavior
- * when processing an unknown option and whether or not the option
- * content changes in flight.
- */
-#define IP6OPT_TYPE(o) ((o) & 0xc0)
-#define IP6OPT_TYPE_SKIP 0x00
-#define IP6OPT_TYPE_DISCARD 0x40
-#define IP6OPT_TYPE_FORCEICMP 0x80
-#define IP6OPT_TYPE_ICMP 0xc0
-#define IP6OPT_TYPE_MUTABLE 0x20
-
-/* Special option types for padding. */
-#define IP6OPT_PAD1 0
-#define IP6OPT_PADN 1
-
-#define IP6OPT_JUMBO 0xc2
-#define IP6OPT_NSAP_ADDR 0xc3
-#define IP6OPT_TUNNEL_LIMIT 0x04
-#define IP6OPT_ROUTER_ALERT 0x05
-
-/* Jumbo Payload Option */
-struct ip6_opt_jumbo
- {
- uint8_t ip6oj_type;
- uint8_t ip6oj_len;
- uint8_t ip6oj_jumbo_len[4];
- };
-#define IP6OPT_JUMBO_LEN 6
-
-/* NSAP Address Option */
-struct ip6_opt_nsap
- {
- uint8_t ip6on_type;
- uint8_t ip6on_len;
- uint8_t ip6on_src_nsap_len;
- uint8_t ip6on_dst_nsap_len;
- /* followed by source NSAP */
- /* followed by destination NSAP */
- };
-
-/* Tunnel Limit Option */
-struct ip6_opt_tunnel
- {
- uint8_t ip6ot_type;
- uint8_t ip6ot_len;
- uint8_t ip6ot_encap_limit;
- };
-
-/* Router Alert Option */
-struct ip6_opt_router
- {
- uint8_t ip6or_type;
- uint8_t ip6or_len;
- uint8_t ip6or_value[2];
- };
-
-/* Router alert values (in network byte order) */
-#if __BYTE_ORDER == __BIG_ENDIAN
-# define IP6_ALERT_MLD 0x0000
-# define IP6_ALERT_RSVP 0x0001
-# define IP6_ALERT_AN 0x0002
-#else /* __BYTE_ORDER == __LITTLE_ENDIAN */
-# define IP6_ALERT_MLD 0x0000
-# define IP6_ALERT_RSVP 0x0100
-# define IP6_ALERT_AN 0x0200
-#endif
-
-#endif /* netinet/ip6.h */
diff --git a/inet/protocols/routed.h b/inet/protocols/routed.h
deleted file mode 100644
index adb1767dca..0000000000
--- a/inet/protocols/routed.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*-
- * Copyright (c) 1983, 1989, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)routed.h 8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _PROTOCOLS_ROUTED_H
-#define _PROTOCOLS_ROUTED_H 1
-
-#include <sys/socket.h>
-/*
- * Routing Information Protocol
- *
- * Derived from Xerox NS Routing Information Protocol
- * by changing 32-bit net numbers to sockaddr's and
- * padding stuff to 32-bit boundaries.
- */
-#define RIPVERSION 1
-
-struct netinfo {
- struct sockaddr rip_dst; /* destination net/host */
- int rip_metric; /* cost of route */
-};
-
-struct rip {
- unsigned char rip_cmd; /* request/response */
- unsigned char rip_vers; /* protocol version # */
- unsigned char rip_res1[2]; /* pad to 32-bit boundary */
- union {
- struct netinfo ru_nets[1]; /* variable length... */
- char ru_tracefile[1]; /* ditto ... */
- } ripun;
-#define rip_nets ripun.ru_nets
-#define rip_tracefile ripun.ru_tracefile
-};
-
-/*
- * Packet types.
- */
-#define RIPCMD_REQUEST 1 /* want info */
-#define RIPCMD_RESPONSE 2 /* responding to request */
-#define RIPCMD_TRACEON 3 /* turn tracing on */
-#define RIPCMD_TRACEOFF 4 /* turn it off */
-
-#define RIPCMD_MAX 5
-#ifdef RIPCMDS
-char *ripcmds[RIPCMD_MAX] =
- { "#0", "REQUEST", "RESPONSE", "TRACEON", "TRACEOFF" };
-#endif
-
-#define HOPCNT_INFINITY 16 /* per Xerox NS */
-#define MAXPACKETSIZE 512 /* max broadcast size */
-
-/*
- * Timer values used in managing the routing table.
- * Complete tables are broadcast every SUPPLY_INTERVAL seconds.
- * If changes occur between updates, dynamic updates containing only changes
- * may be sent. When these are sent, a timer is set for a random value
- * between MIN_WAITTIME and MAX_WAITTIME, and no additional dynamic updates
- * are sent until the timer expires.
- *
- * Every update of a routing entry forces an entry's timer to be reset.
- * After EXPIRE_TIME without updates, the entry is marked invalid,
- * but held onto until GARBAGE_TIME so that others may
- * see it "be deleted".
- */
-#define TIMER_RATE 30 /* alarm clocks every 30 seconds */
-
-#define SUPPLY_INTERVAL 30 /* time to supply tables */
-#define MIN_WAITTIME 2 /* min. interval to broadcast changes */
-#define MAX_WAITTIME 5 /* max. time to delay changes */
-
-#define EXPIRE_TIME 180 /* time to mark entry invalid */
-#define GARBAGE_TIME 240 /* time to garbage collect */
-
-#endif /* protocols/routed.h */
diff --git a/inet/protocols/rwhod.h b/inet/protocols/rwhod.h
deleted file mode 100644
index 446d6f97b8..0000000000
--- a/inet/protocols/rwhod.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)rwhod.h 8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _PROTOCOLS_RWHOD_H
-#define _PROTOCOLS_RWHOD_H 1
-
-#include <sys/types.h>
-
-/*
- * rwho protocol packet format.
- */
-struct outmp {
- char out_line[8]; /* tty name */
- char out_name[8]; /* user id */
- int32_t out_time; /* time on */
-};
-
-struct whod {
- char wd_vers; /* protocol version # */
- char wd_type; /* packet type, see below */
- char wd_pad[2];
- int wd_sendtime; /* time stamp by sender */
- int wd_recvtime; /* time stamp applied by receiver */
- char wd_hostname[32]; /* hosts's name */
- int wd_loadav[3]; /* load average as in uptime */
- int wd_boottime; /* time system booted */
- struct whoent {
- struct outmp we_utmp; /* active tty info */
- int we_idle; /* tty idle time */
- } wd_we[1024 / sizeof (struct whoent)];
-};
-
-#define WHODVERSION 1
-#define WHODTYPE_STATUS 1 /* host status */
-
-/* We used to define _PATH_RWHODIR here but it's now in <paths.h>. */
-#include <paths.h>
-
-#endif /* protocols/rwhod.h */
diff --git a/inet/protocols/talkd.h b/inet/protocols/talkd.h
deleted file mode 100644
index 09bd8a90ba..0000000000
--- a/inet/protocols/talkd.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)talkd.h 8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _PROTOCOLS_TALKD_H
-#define _PROTOCOLS_TALKD_H 1
-
-/*
- * This describes the protocol used by the talk server and clients.
- *
- * The talk server acts a repository of invitations, responding to
- * requests by clients wishing to rendezvous for the purpose of
- * holding a conversation. In normal operation, a client, the caller,
- * initiates a rendezvous by sending a CTL_MSG to the server of
- * type LOOK_UP. This causes the server to search its invitation
- * tables to check if an invitation currently exists for the caller
- * (to speak to the callee specified in the message). If the lookup
- * fails, the caller then sends an ANNOUNCE message causing the server
- * to broadcast an announcement on the callee's login ports requesting
- * contact. When the callee responds, the local server uses the
- * recorded invitation to respond with the appropriate rendezvous
- * address and the caller and callee client programs establish a
- * stream connection through which the conversation takes place.
- */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <stdint.h>
-#include <bits/types/struct_osockaddr.h>
-
-/*
- * Client->server request message format.
- */
-typedef struct {
- unsigned char vers; /* protocol version */
- unsigned char type; /* request type, see below */
- unsigned char answer; /* not used */
- unsigned char pad;
- uint32_t id_num; /* message id */
- struct osockaddr addr; /* old (4.3) style */
- struct osockaddr ctl_addr; /* old (4.3) style */
- int32_t pid; /* caller's process id */
-#define NAME_SIZE 12
- char l_name[NAME_SIZE];/* caller's name */
- char r_name[NAME_SIZE];/* callee's name */
-#define TTY_SIZE 16
- char r_tty[TTY_SIZE];/* callee's tty name */
-} CTL_MSG;
-
-/*
- * Server->client response message format.
- */
-typedef struct {
- unsigned char vers; /* protocol version */
- unsigned char type; /* type of request message, see below */
- unsigned char answer; /* response to request message, see below */
- unsigned char pad;
- uint32_t id_num; /* message id */
- struct osockaddr addr; /* address for establishing conversation */
-} CTL_RESPONSE;
-
-#define TALK_VERSION 1 /* protocol version */
-
-/* message type values */
-#define LEAVE_INVITE 0 /* leave invitation with server */
-#define LOOK_UP 1 /* check for invitation by callee */
-#define DELETE 2 /* delete invitation by caller */
-#define ANNOUNCE 3 /* announce invitation by caller */
-
-/* answer values */
-#define SUCCESS 0 /* operation completed properly */
-#define NOT_HERE 1 /* callee not logged in */
-#define FAILED 2 /* operation failed for unexplained reason */
-#define MACHINE_UNKNOWN 3 /* caller's machine name unknown */
-#define PERMISSION_DENIED 4 /* callee's tty doesn't permit announce */
-#define UNKNOWN_REQUEST 5 /* request has invalid type value */
-#define BADVERSION 6 /* request has invalid protocol version */
-#define BADADDR 7 /* request has invalid addr value */
-#define BADCTLADDR 8 /* request has invalid ctl_addr value */
-
-/*
- * Operational parameters.
- */
-#define MAX_LIFE 60 /* max time daemon saves invitations */
-/* RING_WAIT should be 10's of seconds less than MAX_LIFE */
-#define RING_WAIT 30 /* time to wait before resending invitation */
-
-#endif /* protocols/talkd.h */
diff --git a/inet/protocols/timed.h b/inet/protocols/timed.h
deleted file mode 100644
index cabdce44a6..0000000000
--- a/inet/protocols/timed.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)timed.h 8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _PROTOCOLS_TIMED_H
-#define _PROTOCOLS_TIMED_H 1
-
-#include <sys/types.h>
-#include <sys/time.h>
-
-/*
- * Time Synchronization Protocol
- */
-
-#define TSPVERSION 1
-#define ANYADDR NULL
-#define MAXHOSTNAMELEN 64
-
-struct tsp {
- unsigned char tsp_type;
- unsigned char tsp_vers;
- unsigned short tsp_seq;
- union {
- struct timeval tspu_time;
- char tspu_hopcnt;
- } tsp_u;
- char tsp_name[MAXHOSTNAMELEN];
-};
-
-#define tsp_time tsp_u.tspu_time
-#define tsp_hopcnt tsp_u.tspu_hopcnt
-
-/*
- * Command types.
- */
-#define TSP_ANY 0 /* match any types */
-#define TSP_ADJTIME 1 /* send adjtime */
-#define TSP_ACK 2 /* generic acknowledgement */
-#define TSP_MASTERREQ 3 /* ask for master's name */
-#define TSP_MASTERACK 4 /* acknowledge master request */
-#define TSP_SETTIME 5 /* send network time */
-#define TSP_MASTERUP 6 /* inform slaves that master is up */
-#define TSP_SLAVEUP 7 /* slave is up but not polled */
-#define TSP_ELECTION 8 /* advance candidature for master */
-#define TSP_ACCEPT 9 /* support candidature of master */
-#define TSP_REFUSE 10 /* reject candidature of master */
-#define TSP_CONFLICT 11 /* two or more masters present */
-#define TSP_RESOLVE 12 /* masters' conflict resolution */
-#define TSP_QUIT 13 /* reject candidature if master is up */
-#define TSP_DATE 14 /* reset the time (date command) */
-#define TSP_DATEREQ 15 /* remote request to reset the time */
-#define TSP_DATEACK 16 /* acknowledge time setting */
-#define TSP_TRACEON 17 /* turn tracing on */
-#define TSP_TRACEOFF 18 /* turn tracing off */
-#define TSP_MSITE 19 /* find out master's site */
-#define TSP_MSITEREQ 20 /* remote master's site request */
-#define TSP_TEST 21 /* for testing election algo */
-#define TSP_SETDATE 22 /* New from date command */
-#define TSP_SETDATEREQ 23 /* New remote for above */
-#define TSP_LOOP 24 /* loop detection packet */
-
-#define TSPTYPENUMBER 25
-
-#ifdef TSPTYPES
-char *tsptype[TSPTYPENUMBER] =
- { "ANY", "ADJTIME", "ACK", "MASTERREQ", "MASTERACK", "SETTIME", "MASTERUP",
- "SLAVEUP", "ELECTION", "ACCEPT", "REFUSE", "CONFLICT", "RESOLVE", "QUIT",
- "DATE", "DATEREQ", "DATEACK", "TRACEON", "TRACEOFF", "MSITE", "MSITEREQ",
- "TEST", "SETDATE", "SETDATEREQ", "LOOP" };
-#endif
-
-#endif /* protocols/timed.h */
diff --git a/inet/rcmd.c b/inet/rcmd.c
deleted file mode 100644
index e970123a9a..0000000000
--- a/inet/rcmd.c
+++ /dev/null
@@ -1,827 +0,0 @@
-/*
- * Copyright (C) 1998 WIDE Project.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the project nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-/*
- * Copyright (c) 1983, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/param.h>
-#include <sys/poll.h>
-#include <sys/socket.h>
-#include <sys/stat.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <alloca.h>
-#include <signal.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <unistd.h>
-#include <pwd.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include <ctype.h>
-#include <string.h>
-#include <libintl.h>
-#include <stdlib.h>
-#include <wchar.h>
-#include <sys/uio.h>
-#include <sigsetops.h>
-
-
-int __ivaliduser (FILE *, u_int32_t, const char *, const char *);
-static int __validuser2_sa (FILE *, struct sockaddr *, size_t,
- const char *, const char *, const char *);
-static int ruserok2_sa (struct sockaddr *ra, size_t ralen,
- int superuser, const char *ruser,
- const char *luser, const char *rhost);
-static int ruserok_sa (struct sockaddr *ra, size_t ralen,
- int superuser, const char *ruser,
- const char *luser);
-int iruserok_af (const void *raddr, int superuser, const char *ruser,
- const char *luser, sa_family_t af);
-int iruserok (u_int32_t raddr, int superuser, const char *ruser,
- const char *luser);
-
-libc_hidden_proto (iruserok_af)
-
-libc_freeres_ptr(static char *ahostbuf);
-
-int
-rcmd_af (char **ahost, u_short rport, const char *locuser, const char *remuser,
- const char *cmd, int *fd2p, sa_family_t af)
-{
- char paddr[INET6_ADDRSTRLEN];
- struct addrinfo hints, *res, *ai;
- union
- {
- struct sockaddr sa;
- struct sockaddr_storage ss;
- struct sockaddr_in sin;
- struct sockaddr_in6 sin6;
- } from;
- struct pollfd pfd[2];
- sigset_t mask, omask;
-
- pid_t pid;
- int s, lport, timo, error;
- char c;
- int refused;
- char num[8];
- ssize_t n;
-
- if (af != AF_INET && af != AF_INET6 && af != AF_UNSPEC)
- {
- __set_errno (EAFNOSUPPORT);
- return -1;
- }
-
- pid = __getpid();
-
- memset(&hints, '\0', sizeof(hints));
- hints.ai_flags = AI_CANONNAME;
- hints.ai_family = af;
- hints.ai_socktype = SOCK_STREAM;
- (void)__snprintf(num, sizeof(num), "%d", ntohs(rport));
- error = getaddrinfo(*ahost, num, &hints, &res);
- if (error) {
- if (error == EAI_NONAME && *ahost != NULL)
- __fxprintf(NULL, "%s: Unknown host\n", *ahost);
- else
- __fxprintf(NULL, "rcmd: getaddrinfo: %s\n",
- gai_strerror(error));
-
- return -1;
- }
-
- pfd[0].events = POLLIN;
- pfd[1].events = POLLIN;
-
- if (res->ai_canonname){
- free (ahostbuf);
- ahostbuf = __strdup (res->ai_canonname);
- if (ahostbuf == NULL) {
- __fxprintf(NULL, "%s",
- _("rcmd: Cannot allocate memory\n"));
- return -1;
- }
- *ahost = ahostbuf;
- } else
- *ahost = NULL;
- ai = res;
- refused = 0;
- __sigemptyset(&mask);
- __sigaddset(&mask, SIGURG);
- __sigprocmask (SIG_BLOCK, &mask, &omask);
- for (timo = 1, lport = IPPORT_RESERVED - 1;;) {
- char errbuf[200];
-
- s = rresvport_af(&lport, ai->ai_family);
- if (s < 0) {
- if (errno == EAGAIN)
- __fxprintf(NULL, "%s", _("\
-rcmd: socket: All ports in use\n"));
- else
- __fxprintf(NULL, "rcmd: socket: %m\n");
-
- __sigprocmask (SIG_SETMASK, &omask, 0);
- freeaddrinfo(res);
- return -1;
- }
- __fcntl(s, F_SETOWN, pid);
- if (__connect(s, ai->ai_addr, ai->ai_addrlen) >= 0)
- break;
- (void)__close(s);
- if (errno == EADDRINUSE) {
- lport--;
- continue;
- }
- if (errno == ECONNREFUSED)
- refused = 1;
- if (ai->ai_next != NULL) {
- int oerrno = errno;
- char *buf = NULL;
-
- getnameinfo(ai->ai_addr, ai->ai_addrlen,
- paddr, sizeof(paddr),
- NULL, 0,
- NI_NUMERICHOST);
-
- if (__asprintf (&buf, _("connect to address %s: "),
- paddr) >= 0)
- {
- __fxprintf(NULL, "%s", buf);
- free (buf);
- }
- __set_errno (oerrno);
- perror(0);
- ai = ai->ai_next;
- getnameinfo(ai->ai_addr, ai->ai_addrlen,
- paddr, sizeof(paddr),
- NULL, 0,
- NI_NUMERICHOST);
- if (__asprintf (&buf, _("Trying %s...\n"), paddr) >= 0)
- {
- __fxprintf (NULL, "%s", buf);
- free (buf);
- }
- continue;
- }
- if (refused && timo <= 16) {
- (void)__sleep(timo);
- timo *= 2;
- ai = res;
- refused = 0;
- continue;
- }
- freeaddrinfo(res);
- (void)__fxprintf(NULL, "%s: %s\n", *ahost,
- __strerror_r(errno, errbuf, sizeof (errbuf)));
- __sigprocmask (SIG_SETMASK, &omask, 0);
- return -1;
- }
- lport--;
- if (fd2p == 0) {
- __write(s, "", 1);
- lport = 0;
- } else {
- char num[8];
- int s2 = rresvport_af(&lport, ai->ai_family), s3;
- socklen_t len = ai->ai_addrlen;
-
- if (s2 < 0)
- goto bad;
- __listen(s2, 1);
- (void)__snprintf(num, sizeof(num), "%d", lport);
- if (__write(s, num, strlen(num)+1) != (ssize_t)strlen(num)+1) {
- char *buf = NULL;
-
- if (__asprintf (&buf, _("\
-rcmd: write (setting up stderr): %m\n")) >= 0)
- {
- __fxprintf(NULL, "%s", buf);
- free (buf);
- }
- (void)__close(s2);
- goto bad;
- }
- pfd[0].fd = s;
- pfd[1].fd = s2;
- __set_errno (0);
- if (__poll (pfd, 2, -1) < 1 || (pfd[1].revents & POLLIN) == 0){
- char *buf = NULL;
-
- if ((errno != 0
- && __asprintf(&buf, _("\
-rcmd: poll (setting up stderr): %m\n")) >= 0)
- || (errno == 0
- && __asprintf(&buf, _("\
-poll: protocol failure in circuit setup\n")) >= 0))
- {
- __fxprintf (NULL, "%s", buf);
- free (buf);
- }
- (void)__close(s2);
- goto bad;
- }
- s3 = TEMP_FAILURE_RETRY (accept(s2, &from.sa, &len));
- switch (from.sa.sa_family) {
- case AF_INET:
- rport = ntohs(from.sin.sin_port);
- break;
- case AF_INET6:
- rport = ntohs(from.sin6.sin6_port);
- break;
- default:
- rport = 0;
- break;
- }
- (void)__close(s2);
- if (s3 < 0) {
- (void)__fxprintf(NULL, "rcmd: accept: %m\n");
- lport = 0;
- goto bad;
- }
- *fd2p = s3;
-
- if (rport >= IPPORT_RESERVED || rport < IPPORT_RESERVED / 2){
- char *buf = NULL;
-
- if (__asprintf(&buf, _("\
-socket: protocol failure in circuit setup\n")) >= 0)
- {
- __fxprintf (NULL, "%s", buf);
- free (buf);
- }
- goto bad2;
- }
- }
- struct iovec iov[3] =
- {
- [0] = { .iov_base = (void *) locuser,
- .iov_len = strlen (locuser) + 1 },
- [1] = { .iov_base = (void *) remuser,
- .iov_len = strlen (remuser) + 1 },
- [2] = { .iov_base = (void *) cmd,
- .iov_len = strlen (cmd) + 1 }
- };
- (void) TEMP_FAILURE_RETRY (__writev (s, iov, 3));
- n = TEMP_FAILURE_RETRY (__read(s, &c, 1));
- if (n != 1) {
- char *buf = NULL;
-
- if ((n == 0
- && __asprintf(&buf, _("rcmd: %s: short read"),
- *ahost) >= 0)
- || (n != 0
- && __asprintf(&buf, "rcmd: %s: %m\n", *ahost) >= 0))
- {
- __fxprintf (NULL, "%s", buf);
- free (buf);
- }
- goto bad2;
- }
- if (c != 0) {
- while (__read(s, &c, 1) == 1) {
- (void)__write(STDERR_FILENO, &c, 1);
- if (c == '\n')
- break;
- }
- goto bad2;
- }
- __sigprocmask (SIG_SETMASK, &omask, 0);
- freeaddrinfo(res);
- return s;
-bad2:
- if (lport)
- (void)__close(*fd2p);
-bad:
- (void)__close(s);
- __sigprocmask (SIG_SETMASK, &omask, 0);
- freeaddrinfo(res);
- return -1;
-}
-libc_hidden_def (rcmd_af)
-
-int
-rcmd (char **ahost, u_short rport, const char *locuser, const char *remuser,
- const char *cmd, int *fd2p)
-{
- return rcmd_af (ahost, rport, locuser, remuser, cmd, fd2p, AF_INET);
-}
-
-int
-rresvport_af (int *alport, sa_family_t family)
-{
- union {
- struct sockaddr generic;
- struct sockaddr_in in;
- struct sockaddr_in6 in6;
- } ss;
- int s;
- size_t len;
- uint16_t *sport;
-
- switch(family){
- case AF_INET:
- len = sizeof(struct sockaddr_in);
- sport = &ss.in.sin_port;
- break;
- case AF_INET6:
- len = sizeof(struct sockaddr_in6);
- sport = &ss.in6.sin6_port;
- break;
- default:
- __set_errno (EAFNOSUPPORT);
- return -1;
- }
- /* NB: No SOCK_CLOEXEC for backwards compatibility. */
- s = __socket(family, SOCK_STREAM, 0);
- if (s < 0)
- return -1;
-
- memset (&ss, '\0', sizeof(ss));
-#ifdef SALEN
- ss.generic.__ss_len = len;
-#endif
- ss.generic.sa_family = family;
-
- /* Ignore invalid values. */
- if (*alport < IPPORT_RESERVED / 2)
- *alport = IPPORT_RESERVED / 2;
- else if (*alport >= IPPORT_RESERVED)
- *alport = IPPORT_RESERVED - 1;
-
- int start = *alport;
- do {
- *sport = htons((uint16_t) *alport);
- if (__bind(s, &ss.generic, len) >= 0)
- return s;
- if (errno != EADDRINUSE) {
- (void)__close(s);
- return -1;
- }
- if ((*alport)-- == IPPORT_RESERVED/2)
- *alport = IPPORT_RESERVED - 1;
- } while (*alport != start);
- (void)__close(s);
- __set_errno (EAGAIN);
- return -1;
-}
-libc_hidden_def (rresvport_af)
-
-int
-rresvport (int *alport)
-{
- return rresvport_af(alport, AF_INET);
-}
-
-int __check_rhosts_file = 1;
-char *__rcmd_errstr;
-
-int
-ruserok_af (const char *rhost, int superuser, const char *ruser,
- const char *luser, sa_family_t af)
-{
- struct addrinfo hints, *res, *res0;
- int gai;
- int ret;
-
- memset (&hints, '\0', sizeof(hints));
- hints.ai_family = af;
- gai = getaddrinfo(rhost, NULL, &hints, &res0);
- if (gai)
- return -1;
- ret = -1;
- for (res=res0; res; res=res->ai_next)
- if (ruserok2_sa(res->ai_addr, res->ai_addrlen,
- superuser, ruser, luser, rhost) == 0){
- ret = 0;
- break;
- }
- freeaddrinfo(res0);
- return (ret);
-}
-libc_hidden_def (ruserok_af)
-
-int
-ruserok (const char *rhost, int superuser, const char *ruser,
- const char *luser)
-{
- return ruserok_af(rhost, superuser, ruser, luser, AF_INET);
-}
-
-/* Extremely paranoid file open function. */
-static FILE *
-iruserfopen (const char *file, uid_t okuser)
-{
- struct stat64 st;
- char *cp = NULL;
- FILE *res = NULL;
-
- /* If not a regular file, if owned by someone other than user or
- root, if writeable by anyone but the owner, or if hardlinked
- anywhere, quit. */
- if (__lxstat64 (_STAT_VER, file, &st))
- cp = _("lstat failed");
- else if (!S_ISREG (st.st_mode))
- cp = _("not regular file");
- else
- {
- res = fopen (file, "rce");
- if (!res)
- cp = _("cannot open");
- else if (__fxstat64 (_STAT_VER, fileno (res), &st) < 0)
- cp = _("fstat failed");
- else if (st.st_uid && st.st_uid != okuser)
- cp = _("bad owner");
- else if (st.st_mode & (S_IWGRP|S_IWOTH))
- cp = _("writeable by other than owner");
- else if (st.st_nlink > 1)
- cp = _("hard linked somewhere");
- }
-
- /* If there were any problems, quit. */
- if (cp != NULL)
- {
- __rcmd_errstr = cp;
- if (res)
- fclose (res);
- return NULL;
- }
-
- /* No threads use this stream. */
- __fsetlocking (res, FSETLOCKING_BYCALLER);
-
- return res;
-}
-
-/*
- * New .rhosts strategy: We are passed an ip address. We spin through
- * hosts.equiv and .rhosts looking for a match. When the .rhosts only
- * has ip addresses, we don't have to trust a nameserver. When it
- * contains hostnames, we spin through the list of addresses the nameserver
- * gives us and look for a match.
- *
- * Returns 0 if ok, -1 if not ok.
- */
-static int
-ruserok2_sa (struct sockaddr *ra, size_t ralen, int superuser,
- const char *ruser, const char *luser, const char *rhost)
-{
- FILE *hostf = NULL;
- int isbad = -1;
-
- if (!superuser)
- hostf = iruserfopen (_PATH_HEQUIV, 0);
-
- if (hostf)
- {
- isbad = __validuser2_sa (hostf, ra, ralen, luser, ruser, rhost);
- fclose (hostf);
-
- if (!isbad)
- return 0;
- }
-
- if (__check_rhosts_file || superuser)
- {
- char *pbuf;
- struct passwd pwdbuf, *pwd;
- size_t dirlen;
- size_t buflen = __sysconf (_SC_GETPW_R_SIZE_MAX);
- char *buffer = __alloca (buflen);
- uid_t uid;
-
- if (__getpwnam_r (luser, &pwdbuf, buffer, buflen, &pwd) != 0
- || pwd == NULL)
- return -1;
-
- dirlen = strlen (pwd->pw_dir);
- pbuf = alloca (dirlen + sizeof "/.rhosts");
- __mempcpy (__mempcpy (pbuf, pwd->pw_dir, dirlen),
- "/.rhosts", sizeof "/.rhosts");
-
- /* Change effective uid while reading .rhosts. If root and
- reading an NFS mounted file system, can't read files that
- are protected read/write owner only. */
- uid = __geteuid ();
- seteuid (pwd->pw_uid);
- hostf = iruserfopen (pbuf, pwd->pw_uid);
-
- if (hostf != NULL)
- {
- isbad = __validuser2_sa (hostf, ra, ralen, luser, ruser, rhost);
- fclose (hostf);
- }
-
- seteuid (uid);
- return isbad;
- }
- return -1;
-}
-/*
- * ruserok_sa() is now discussed on ipng, so
- * currently disabled for external use
- */
-static int
-ruserok_sa (struct sockaddr *ra, size_t ralen, int superuser,
- const char *ruser, const char *luser)
-{
- return ruserok2_sa(ra, ralen, superuser, ruser, luser, "-");
-}
-
-/* This is the exported version. */
-int
-iruserok_af (const void *raddr, int superuser, const char *ruser,
- const char *luser, sa_family_t af)
-{
- union {
- struct sockaddr generic;
- struct sockaddr_in in;
- struct sockaddr_in6 in6;
- } ra;
- size_t ralen;
-
- memset (&ra, '\0', sizeof(ra));
- switch (af){
- case AF_INET:
- ra.in.sin_family = AF_INET;
- memcpy (&ra.in.sin_addr, raddr, sizeof(struct in_addr));
- ralen = sizeof(struct sockaddr_in);
- break;
- case AF_INET6:
- ra.in6.sin6_family = AF_INET6;
- memcpy (&ra.in6.sin6_addr, raddr, sizeof(struct in6_addr));
- ralen = sizeof(struct sockaddr_in6);
- break;
- default:
- return 0;
- }
- return ruserok_sa (&ra.generic, ralen, superuser, ruser, luser);
-}
-libc_hidden_def (iruserok_af)
-
-int
-iruserok (u_int32_t raddr, int superuser, const char *ruser, const char *luser)
-{
- return iruserok_af (&raddr, superuser, ruser, luser, AF_INET);
-}
-
-/*
- * XXX
- * Don't make static, used by lpd(8).
- *
- * This function is not used anymore. It is only present because lpd(8)
- * calls it (!?!). We simply call __invaliduser2() with an illegal rhost
- * argument. This means that netgroups won't work in .rhost/hosts.equiv
- * files. If you want lpd to work with netgroups, fix lpd to use ruserok()
- * or PAM.
- * Returns 0 if ok, -1 if not ok.
- */
-int
-__ivaliduser (FILE *hostf, u_int32_t raddr, const char *luser,
- const char *ruser)
-{
- struct sockaddr_in ra;
- memset(&ra, '\0', sizeof(ra));
- ra.sin_family = AF_INET;
- ra.sin_addr.s_addr = raddr;
- return __validuser2_sa(hostf, (struct sockaddr *)&ra, sizeof(ra),
- luser, ruser, "-");
-}
-
-
-/* Returns 1 on positive match, 0 on no match, -1 on negative match. */
-static int
-internal_function
-__checkhost_sa (struct sockaddr *ra, size_t ralen, char *lhost,
- const char *rhost)
-{
- struct addrinfo hints, *res0, *res;
- char raddr[INET6_ADDRSTRLEN];
- int match;
- int negate=1; /* Multiply return with this to get -1 instead of 1 */
-
- /* Check nis netgroup. */
- if (strncmp ("+@", lhost, 2) == 0)
- return innetgr (&lhost[2], rhost, NULL, NULL);
-
- if (strncmp ("-@", lhost, 2) == 0)
- return -innetgr (&lhost[2], rhost, NULL, NULL);
-
- /* -host */
- if (strncmp ("-", lhost,1) == 0) {
- negate = -1;
- lhost++;
- } else if (strcmp ("+",lhost) == 0) {
- return 1; /* asking for trouble, but ok.. */
- }
-
- /* Try for raw ip address first. */
- /* XXX */
- if (getnameinfo(ra, ralen,
- raddr, sizeof(raddr), NULL, 0,
- NI_NUMERICHOST) == 0
- && strcmp(raddr, lhost) == 0)
- return negate;
-
- /* Better be a hostname. */
- match = 0;
- memset(&hints, '\0', sizeof(hints));
- hints.ai_family = ra->sa_family;
- if (getaddrinfo(lhost, NULL, &hints, &res0) == 0){
- /* Spin through ip addresses. */
- for (res = res0; res; res = res->ai_next)
- {
- if (res->ai_family == ra->sa_family
- && !memcmp(res->ai_addr, ra, res->ai_addrlen))
- {
- match = 1;
- break;
- }
- }
- freeaddrinfo (res0);
- }
- return negate * match;
-}
-
-/* Returns 1 on positive match, 0 on no match, -1 on negative match. */
-static int
-internal_function
-__icheckuser (const char *luser, const char *ruser)
-{
- /*
- luser is user entry from .rhosts/hosts.equiv file
- ruser is user id on remote host
- */
-
- /* [-+]@netgroup */
- if (strncmp ("+@", luser, 2) == 0)
- return innetgr (&luser[2], NULL, ruser, NULL);
-
- if (strncmp ("-@", luser,2) == 0)
- return -innetgr (&luser[2], NULL, ruser, NULL);
-
- /* -user */
- if (strncmp ("-", luser, 1) == 0)
- return -(strcmp (&luser[1], ruser) == 0);
-
- /* + */
- if (strcmp ("+", luser) == 0)
- return 1;
-
- /* simple string match */
- return strcmp (ruser, luser) == 0;
-}
-
-/*
- * Returns 1 for blank lines (or only comment lines) and 0 otherwise
- */
-static int
-__isempty (char *p)
-{
- while (*p && isspace (*p)) {
- ++p;
- }
-
- return (*p == '\0' || *p == '#') ? 1 : 0 ;
-}
-
-/*
- * Returns 0 if positive match, -1 if _not_ ok.
- */
-static int
-__validuser2_sa (FILE *hostf, struct sockaddr *ra, size_t ralen,
- const char *luser, const char *ruser, const char *rhost)
-{
- const char *user;
- char *p;
- int hcheck, ucheck;
- char *buf = NULL;
- size_t bufsize = 0;
- int retval = -1;
-
- while (__getline (&buf, &bufsize, hostf) > 0) {
- buf[bufsize - 1] = '\0'; /* Make sure it's terminated. */
- p = buf;
-
- /* Skip empty or comment lines */
- if (__isempty (p)) {
- continue;
- }
-
- for (;*p && !isspace(*p); ++p) {
- *p = _tolower (*p);
- }
-
- /* Next we want to find the permitted name for the remote user. */
- if (*p == ' ' || *p == '\t') {
- /* <nul> terminate hostname and skip spaces */
- for (*p++='\0'; *p && isspace (*p); ++p);
-
- user = p; /* this is the user's name */
- while (*p && !isspace (*p))
- ++p; /* find end of user's name */
- } else
- user = p;
-
- *p = '\0'; /* <nul> terminate username (+host?) */
-
- /* buf -> host(?) ; user -> username(?) */
- if (*buf == '\0')
- break;
- if (*user == '\0')
- user = luser;
-
- /* First check the user part. In a naive implementation we
- would check the host part first, then the user. However,
- if we check the user first and reject the entry we will
- have saved doing any host lookups to normalize the comparison
- and that likely saves several DNS queries. Therefore we
- check the user first. */
- ucheck = __icheckuser (user, ruser);
-
- /* Either we found the user, or we didn't and this is a
- negative host check. We must do the negative host lookup
- in order to preserve the semantics of stopping on this line
- before processing others. */
- if (ucheck != 0 || *buf == '-') {
-
- /* Next check host part. */
- hcheck = __checkhost_sa (ra, ralen, buf, rhost);
-
- /* Negative '-host user(?)' match? */
- if (hcheck < 0)
- break;
-
- /* Positive 'host user' match? */
- if (hcheck > 0 && ucheck > 0) {
- retval = 0;
- break;
- }
-
- /* Negative 'host -user' match? */
- if (hcheck > 0 && ucheck < 0)
- break;
-
- /* Neither, go on looking for match. */
- }
- }
-
- free (buf);
-
- return retval;
-}
diff --git a/inet/rexec.c b/inet/rexec.c
deleted file mode 100644
index bda536723b..0000000000
--- a/inet/rexec.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-
-#include <alloca.h>
-#include <stdio.h>
-#include <netdb.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/uio.h>
-
-int rexecoptions;
-libc_freeres_ptr (static char *ahostbuf);
-
-int
-rexec_af (char **ahost, int rport, const char *name, const char *pass,
- const char *cmd, int *fd2p, sa_family_t af)
-{
- struct sockaddr_storage from;
- struct addrinfo hints, *res0;
- const char *orig_name = name;
- const char *orig_pass = pass;
- u_short port = 0;
- int s, timo = 1, s3;
- char c;
- int gai;
- char servbuff[NI_MAXSERV];
-
- __snprintf(servbuff, sizeof(servbuff), "%d", ntohs(rport));
- servbuff[sizeof(servbuff) - 1] = '\0';
-
- memset(&hints, '\0', sizeof(hints));
- hints.ai_family = af;
- hints.ai_socktype = SOCK_STREAM;
- hints.ai_flags = AI_CANONNAME;
- gai = getaddrinfo(*ahost, servbuff, &hints, &res0);
- if (gai){
- /* XXX: set errno? */
- return -1;
- }
-
- if (res0->ai_canonname){
- free (ahostbuf);
- ahostbuf = __strdup (res0->ai_canonname);
- if (ahostbuf == NULL) {
- perror ("rexec: strdup");
- return (-1);
- }
- *ahost = ahostbuf;
- } else {
- *ahost = NULL;
- __set_errno (ENOENT);
- return -1;
- }
- ruserpass(res0->ai_canonname, &name, &pass);
-retry:
- /* NB: No SOCK_CLOEXEC for backwards compatibility. */
- s = __socket(res0->ai_family, res0->ai_socktype, 0);
- if (s < 0) {
- perror("rexec: socket");
- return (-1);
- }
- if (__connect(s, res0->ai_addr, res0->ai_addrlen) < 0) {
- if (errno == ECONNREFUSED && timo <= 16) {
- (void) __close(s);
- __sleep(timo);
- timo *= 2;
- goto retry;
- }
- perror(res0->ai_canonname);
- return (-1);
- }
- if (fd2p == 0) {
- (void) __write(s, "", 1);
- port = 0;
- } else {
- char num[32];
- int s2;
- union
- {
- struct sockaddr_storage ss;
- struct sockaddr sa;
- } sa2;
- socklen_t sa2len;
-
- s2 = __socket(res0->ai_family, res0->ai_socktype, 0);
- if (s2 < 0) {
- (void) __close(s);
- return (-1);
- }
- __listen(s2, 1);
- sa2len = sizeof (sa2);
- if (__getsockname(s2, &sa2.sa, &sa2len) < 0) {
- perror("getsockname");
- (void) __close(s2);
- goto bad;
- } else if (sa2len != SA_LEN(&sa2.sa)) {
- __set_errno(EINVAL);
- (void) __close(s2);
- goto bad;
- }
- port = 0;
- if (!getnameinfo(&sa2.sa, sa2len,
- NULL, 0, servbuff, sizeof(servbuff),
- NI_NUMERICSERV))
- port = atoi(servbuff);
- (void) sprintf(num, "%u", port);
- (void) __write(s, num, strlen(num)+1);
- { socklen_t len = sizeof (from);
- s3 = TEMP_FAILURE_RETRY (accept(s2, (struct sockaddr *)&from,
- &len));
- __close(s2);
- if (s3 < 0) {
- perror("accept");
- port = 0;
- goto bad;
- }
- }
- *fd2p = s3;
- }
-
- struct iovec iov[3] =
- {
- [0] = { .iov_base = (void *) name, .iov_len = strlen (name) + 1 },
- /* should public key encypt the password here */
- [1] = { .iov_base = (void *) pass, .iov_len = strlen (pass) + 1 },
- [2] = { .iov_base = (void *) cmd, .iov_len = strlen (cmd) + 1 }
- };
- (void) TEMP_FAILURE_RETRY (__writev (s, iov, 3));
-
- /* We don't need the memory allocated for the name and the password
- in ruserpass anymore. */
- if (name != orig_name)
- free ((char *) name);
- if (pass != orig_pass)
- free ((char *) pass);
-
- if (__read(s, &c, 1) != 1) {
- perror(*ahost);
- goto bad;
- }
- if (c != 0) {
- while (__read(s, &c, 1) == 1) {
- (void) __write(2, &c, 1);
- if (c == '\n')
- break;
- }
- goto bad;
- }
- freeaddrinfo(res0);
- return (s);
-bad:
- if (port)
- (void) __close(*fd2p);
- (void) __close(s);
- freeaddrinfo(res0);
- return (-1);
-}
-libc_hidden_def (rexec_af)
-
-int
-rexec (char **ahost, int rport, const char *name, const char *pass,
- const char *cmd, int *fd2p)
-{
- return rexec_af(ahost, rport, name, pass, cmd, fd2p, AF_INET);
-}
diff --git a/inet/ruserpass.c b/inet/ruserpass.c
deleted file mode 100644
index 5b2747bc50..0000000000
--- a/inet/ruserpass.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * Copyright (c) 1985, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <ctype.h>
-#include <err.h>
-#include <errno.h>
-#include <netdb.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <libintl.h>
-
-/* #include "ftp_var.h" */
-
-static int token (void);
-static FILE *cfile;
-
-#define DEFAULT 1
-#define LOGIN 2
-#define PASSWD 3
-#define ACCOUNT 4
-#define MACDEF 5
-#define ID 10
-#define MACHINE 11
-
-static char tokval[100];
-
-static const char tokstr[] =
-{
-#define TOK_DEFAULT_IDX 0
- "default\0"
-#define TOK_LOGIN_IDX (TOK_DEFAULT_IDX + sizeof "default")
- "login\0"
-#define TOK_PASSWORD_IDX (TOK_LOGIN_IDX + sizeof "login")
- "password\0"
-#define TOK_PASSWD_IDX (TOK_PASSWORD_IDX + sizeof "password")
- "passwd\0"
-#define TOK_ACCOUNT_IDX (TOK_PASSWD_IDX + sizeof "passwd")
- "account\0"
-#define TOK_MACHINE_IDX (TOK_ACCOUNT_IDX + sizeof "account")
- "machine\0"
-#define TOK_MACDEF_IDX (TOK_MACHINE_IDX + sizeof "machine")
- "macdef"
-};
-
-static const struct toktab {
- int tokstr_off;
- int tval;
-} toktab[]= {
- { TOK_DEFAULT_IDX, DEFAULT },
- { TOK_LOGIN_IDX, LOGIN },
- { TOK_PASSWORD_IDX, PASSWD },
- { TOK_PASSWD_IDX, PASSWD },
- { TOK_ACCOUNT_IDX, ACCOUNT },
- { TOK_MACHINE_IDX, MACHINE },
- { TOK_MACDEF_IDX, MACDEF }
-};
-
-
-
-int
-ruserpass (const char *host, const char **aname, const char **apass)
-{
- char *hdir, *buf, *tmp;
- char myname[1024], *mydomain;
- int t, usedefault = 0;
- struct stat64 stb;
-
- hdir = __libc_secure_getenv("HOME");
- if (hdir == NULL) {
- /* If we can't get HOME, fail instead of trying ".",
- which is no improvement. This really should call
- getpwuid(getuid()). */
- /*hdir = ".";*/
- return -1;
- }
-
- buf = alloca (strlen (hdir) + 8);
-
- __stpcpy (__stpcpy (buf, hdir), "/.netrc");
- cfile = fopen(buf, "rce");
- if (cfile == NULL) {
- if (errno != ENOENT)
- warn("%s", buf);
- return (0);
- }
- /* No threads use this stream. */
- __fsetlocking (cfile, FSETLOCKING_BYCALLER);
- if (__gethostname(myname, sizeof(myname)) < 0)
- myname[0] = '\0';
- mydomain = __strchrnul(myname, '.');
-next:
- while ((t = token())) switch(t) {
-
- case DEFAULT:
- usedefault = 1;
- /* FALL THROUGH */
-
- case MACHINE:
- if (!usedefault) {
- if (token() != ID)
- continue;
- /*
- * Allow match either for user's input host name
- * or official hostname. Also allow match of
- * incompletely-specified host in local domain.
- */
- if (__strcasecmp(host, tokval) == 0)
- goto match;
-/* if (__strcasecmp(hostname, tokval) == 0)
- goto match;
- if ((tmp = strchr(hostname, '.')) != NULL &&
- __strcasecmp(tmp, mydomain) == 0 &&
- __strncasecmp(hostname, tokval, tmp-hostname) == 0 &&
- tokval[tmp - hostname] == '\0')
- goto match; */
- if ((tmp = strchr(host, '.')) != NULL &&
- __strcasecmp(tmp, mydomain) == 0 &&
- __strncasecmp(host, tokval, tmp - host) == 0 &&
- tokval[tmp - host] == '\0')
- goto match;
- continue;
- }
- match:
- while ((t = token()) && t != MACHINE && t != DEFAULT) switch(t) {
-
- case LOGIN:
- if (token()) {
- if (*aname == 0) {
- char *newp;
- newp = malloc((unsigned) strlen(tokval) + 1);
- if (newp == NULL)
- {
- warnx(_("out of memory"));
- goto bad;
- }
- *aname = strcpy(newp, tokval);
- } else {
- if (strcmp(*aname, tokval))
- goto next;
- }
- }
- break;
- case PASSWD:
- if (strcmp(*aname, "anonymous") &&
- fstat64(fileno(cfile), &stb) >= 0 &&
- (stb.st_mode & 077) != 0) {
- warnx(_("Error: .netrc file is readable by others."));
- warnx(_("Remove password or make file unreadable by others."));
- goto bad;
- }
- if (token() && *apass == 0) {
- char *newp;
- newp = malloc((unsigned) strlen(tokval) + 1);
- if (newp == NULL)
- {
- warnx(_("out of memory"));
- goto bad;
- }
- *apass = strcpy(newp, tokval);
- }
- break;
- case ACCOUNT:
- break;
- case MACDEF:
- break;
- default:
- warnx(_("Unknown .netrc keyword %s"), tokval);
- break;
- }
- goto done;
- }
-done:
- (void) fclose(cfile);
- return (0);
-bad:
- (void) fclose(cfile);
- return (-1);
-}
-libc_hidden_def (ruserpass)
-
-static int
-token (void)
-{
- char *cp;
- int c;
- int i;
-
- if (feof_unlocked(cfile) || ferror_unlocked(cfile))
- return (0);
- while ((c = getc_unlocked(cfile)) != EOF &&
- (c == '\n' || c == '\t' || c == ' ' || c == ','))
- continue;
- if (c == EOF)
- return (0);
- cp = tokval;
- if (c == '"') {
- while ((c = getc_unlocked(cfile)) != EOF && c != '"') {
- if (c == '\\')
- c = getc_unlocked(cfile);
- *cp++ = c;
- }
- } else {
- *cp++ = c;
- while ((c = getc_unlocked(cfile)) != EOF
- && c != '\n' && c != '\t' && c != ' ' && c != ',') {
- if (c == '\\')
- c = getc_unlocked(cfile);
- *cp++ = c;
- }
- }
- *cp = 0;
- if (tokval[0] == 0)
- return (0);
- for (i = 0; i < (int) (sizeof (toktab) / sizeof (toktab[0])); ++i)
- if (!strcmp(&tokstr[toktab[i].tokstr_off], tokval))
- return toktab[i].tval;
- return (ID);
-}
diff --git a/inet/setipv4sourcefilter.c b/inet/setipv4sourcefilter.c
deleted file mode 100644
index 08e8300c12..0000000000
--- a/inet/setipv4sourcefilter.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Set source filter. Stub version.
- Copyright (C) 2004-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdint.h>
-#include <netinet/in.h>
-
-
-int
-setipv4sourcefilter (int s, struct in_addr interface, struct in_addr group,
- uint32_t fmode, uint32_t numsrc,
- const struct in_addr *slist)
-{
- __set_errno (ENOSYS);
- return -1;
-}
-stub_warning (setipv4sourcefilter)
diff --git a/inet/setsourcefilter.c b/inet/setsourcefilter.c
deleted file mode 100644
index e65674737f..0000000000
--- a/inet/setsourcefilter.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Set source filter. Stub version.
- Copyright (C) 2004-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdint.h>
-#include <netinet/in.h>
-
-
-int
-setsourcefilter (int s, uint32_t interface, const struct sockaddr *group,
- socklen_t grouplen, uint32_t fmode, uint32_t numsrc,
- const struct sockaddr_storage *slist)
-{
- __set_errno (ENOSYS);
- return -1;
-}
-stub_warning (setsourcefilter)
diff --git a/inet/test-hnto-types.c b/inet/test-hnto-types.c
deleted file mode 100644
index b9770352ca..0000000000
--- a/inet/test-hnto-types.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Test netinet/in.h endian-conversion macros always return the correct type.
- Copyright (C) 2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <netinet/in.h>
-#include <stdint.h>
-
-int i;
-uint16_t u16;
-uint32_t u32;
-
-int
-do_test (void)
-{
- /* This is a compilation test. */
- extern __typeof (htons (i)) u16;
- extern __typeof (ntohs (i)) u16;
- extern __typeof (htonl (i)) u32;
- extern __typeof (ntohl (i)) u32;
- (void) u16;
- (void) u32;
- return 0;
-}
-
-#include <support/test-driver.c>
diff --git a/inet/test-ifaddrs.c b/inet/test-ifaddrs.c
deleted file mode 100644
index 2baf9ad3a3..0000000000
--- a/inet/test-ifaddrs.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Test listing of network interface addresses.
- Copyright (C) 2002-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ifaddrs.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-static int failures;
-
-static const char *
-addr_string (struct sockaddr *sa, char *buf, size_t size)
-{
- if (sa == NULL)
- return "<none>";
-
- switch (sa->sa_family)
- {
- case AF_INET:
- return inet_ntop (AF_INET, &((struct sockaddr_in *) sa)->sin_addr,
- buf, size);
- case AF_INET6:
- return inet_ntop (AF_INET6, &((struct sockaddr_in6 *) sa)->sin6_addr,
- buf, size);
-#ifdef AF_LINK
- case AF_LINK:
- return "<link>";
-#endif
- case AF_UNSPEC:
- return "---";
-
-#ifdef AF_PACKET
- case AF_PACKET:
- return "<packet>";
-#endif
-
- default:
- ++failures;
- printf ("sa_family=%d %08x\n", sa->sa_family,
- *(int*)&((struct sockaddr_in *) sa)->sin_addr.s_addr);
- return "<unexpected sockaddr family>";
- }
-}
-
-
-static int
-do_test (void)
-{
- struct ifaddrs *ifaces, *ifa;
-
- if (getifaddrs (&ifaces) < 0)
- {
- if (errno != ENOSYS)
- {
- printf ("Couldn't get any interfaces: %s.\n", strerror (errno));
- exit (1);
- }
- /* The function is simply not implemented. */
- exit (0);
- }
-
- puts ("\
-Name Flags Address Netmask Broadcast/Destination");
-
- for (ifa = ifaces; ifa != NULL; ifa = ifa->ifa_next)
- {
- char abuf[64], mbuf[64], dbuf[64];
- printf ("%-15s%#.4x %-15s %-15s %-15s\n",
- ifa->ifa_name, ifa->ifa_flags,
- addr_string (ifa->ifa_addr, abuf, sizeof (abuf)),
- addr_string (ifa->ifa_netmask, mbuf, sizeof (mbuf)),
- addr_string (ifa->ifa_broadaddr, dbuf, sizeof (dbuf)));
- }
-
- freeifaddrs (ifaces);
-
- return failures ? 1 : 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/test-inet6_opt.c b/inet/test-inet6_opt.c
deleted file mode 100644
index a7ebf006c6..0000000000
--- a/inet/test-inet6_opt.c
+++ /dev/null
@@ -1,211 +0,0 @@
-#include <netinet/in.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdint.h>
-
-#define OPT_X 42
-#define OPT_Y 43
-#define OPT_Z 44
-
-static void *
-encode_inet6_opt (socklen_t *elp)
-{
- void *eb = NULL;
- socklen_t el;
- int cl;
- void *db;
- int offset;
- uint8_t val1;
- uint16_t val2;
- uint32_t val4;
- uint64_t val8;
-
- *elp = 0;
-#define CHECK() \
- if (cl == -1) \
- { \
- printf ("cl == -1 on line %d\n", __LINE__); \
- free (eb); \
- return NULL; \
- }
-
- /* Estimate the length */
- cl = inet6_opt_init (NULL, 0);
- CHECK ();
- cl = inet6_opt_append (NULL, 0, cl, OPT_X, 12, 8, NULL);
- CHECK ();
- cl = inet6_opt_append (NULL, 0, cl, OPT_Y, 7, 4, NULL);
- CHECK ();
- cl = inet6_opt_append (NULL, 0, cl, OPT_Z, 7, 1, NULL);
- CHECK ();
- cl = inet6_opt_finish (NULL, 0, cl);
- CHECK ();
- el = cl;
-
- eb = malloc (el + 8);
- if (eb == NULL)
- {
- puts ("malloc failed");
- return NULL;
- }
- /* Canary. */
- memcpy (eb + el, "deadbeef", 8);
-
- cl = inet6_opt_init (eb, el);
- CHECK ();
-
- cl = inet6_opt_append (eb, el, cl, OPT_X, 12, 8, &db);
- CHECK ();
- val4 = 0x12345678;
- offset = inet6_opt_set_val (db, 0, &val4, sizeof (val4));
- val8 = 0x0102030405060708LL;
- inet6_opt_set_val (db, offset, &val8, sizeof (val8));
-
- cl = inet6_opt_append (eb, el, cl, OPT_Y, 7, 4, &db);
- CHECK ();
- val1 = 0x01;
- offset = inet6_opt_set_val (db, 0, &val1, sizeof (val1));
- val2 = 0x1331;
- offset = inet6_opt_set_val (db, offset, &val2, sizeof (val2));
- val4 = 0x01020304;
- inet6_opt_set_val (db, offset, &val4, sizeof (val4));
-
- cl = inet6_opt_append (eb, el, cl, OPT_Z, 7, 1, &db);
- CHECK ();
- inet6_opt_set_val (db, 0, (void *) "abcdefg", 7);
-
- cl = inet6_opt_finish (eb, el, cl);
- CHECK ();
-
- if (memcmp (eb + el, "deadbeef", 8) != 0)
- {
- puts ("Canary corrupted");
- free (eb);
- return NULL;
- }
- *elp = el;
- return eb;
-}
-
-int
-decode_inet6_opt (void *eb, socklen_t el)
-{
- int ret = 0;
- int seq = 0;
- int cl = 0;
- int offset;
- uint8_t type;
- socklen_t len;
- uint8_t val1;
- uint16_t val2;
- uint32_t val4;
- uint64_t val8;
- void *db;
- char buf[8];
-
- while ((cl = inet6_opt_next (eb, el, cl, &type, &len, &db)) != -1)
- switch (type)
- {
- case OPT_X:
- if (seq++ != 0)
- {
- puts ("OPT_X is not first");
- ret = 1;
- }
- if (len != 12)
- {
- printf ("OPT_X's length %d != 12\n", len);
- ret = 1;
- }
- offset = inet6_opt_get_val (db, 0, &val4, sizeof (val4));
- if (val4 != 0x12345678)
- {
- printf ("OPT_X's val4 %x != 0x12345678\n", val4);
- ret = 1;
- }
- offset = inet6_opt_get_val (db, offset, &val8, sizeof (val8));
- if (offset != len || val8 != 0x0102030405060708LL)
- {
- printf ("OPT_X's val8 %llx != 0x0102030405060708\n",
- (long long) val8);
- ret = 1;
- }
- break;
- case OPT_Y:
- if (seq++ != 1)
- {
- puts ("OPT_Y is not second");
- ret = 1;
- }
- if (len != 7)
- {
- printf ("OPT_Y's length %d != 7\n", len);
- ret = 1;
- }
- offset = inet6_opt_get_val (db, 0, &val1, sizeof (val1));
- if (val1 != 0x01)
- {
- printf ("OPT_Y's val1 %x != 0x01\n", val1);
- ret = 1;
- }
- offset = inet6_opt_get_val (db, offset, &val2, sizeof (val2));
- if (val2 != 0x1331)
- {
- printf ("OPT_Y's val2 %x != 0x1331\n", val2);
- ret = 1;
- }
- offset = inet6_opt_get_val (db, offset, &val4, sizeof (val4));
- if (offset != len || val4 != 0x01020304)
- {
- printf ("OPT_Y's val4 %x != 0x01020304\n", val4);
- ret = 1;
- }
- break;
- case OPT_Z:
- if (seq++ != 2)
- {
- puts ("OPT_Z is not third");
- ret = 1;
- }
- if (len != 7)
- {
- printf ("OPT_Z's length %d != 7\n", len);
- ret = 1;
- }
- offset = inet6_opt_get_val (db, 0, buf, 7);
- if (offset != len || memcmp (buf, "abcdefg", 7) != 0)
- {
- buf[7] = '\0';
- printf ("OPT_Z's buf \"%s\" != \"abcdefg\"\n", buf);
- ret = 1;
- }
- break;
- default:
- printf ("Unknown option %d\n", type);
- ret = 1;
- break;
- }
- if (seq != 3)
- {
- puts ("Didn't see all of OPT_X, OPT_Y and OPT_Z");
- ret = 1;
- }
- return ret;
-}
-
-static int
-do_test (void)
-{
- void *eb;
- socklen_t el;
- eb = encode_inet6_opt (&el);
- if (eb == NULL)
- return 1;
- if (decode_inet6_opt (eb, el))
- return 1;
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/test_ifindex.c b/inet/test_ifindex.c
deleted file mode 100644
index 06cdb78ef5..0000000000
--- a/inet/test_ifindex.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Test interface name <-> index conversions.
- Copyright (C) 1997-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Philip Blundell <Philip.Blundell@pobox.com>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <net/if.h>
-
-static int
-do_test (void)
-{
- int failures = 0;
- struct if_nameindex *idx = if_nameindex (), *p;
- if (idx == NULL)
- {
- if (errno != ENOSYS)
- {
- printf ("Couldn't get any interfaces.\n");
- exit (1);
- }
- /* The function is simply not implemented. */
- exit (0);
- }
-
- printf ("Idx Name | Idx Name\n");
-
- for (p = idx; p->if_index || p->if_name; ++p)
- {
- char buf[IFNAMSIZ];
- unsigned int ni;
- int result;
- printf ("%3d %15s | ", p->if_index, p->if_name);
- printf ("%3d", ni = if_nametoindex (p->if_name));
- printf ("%15s", if_indextoname (p->if_index, buf));
- result = (ni != p->if_index || (strcmp (buf, p->if_name)));
- if (ni == p->if_index)
- /* We have to make sure that this is not an alias with the
- same interface number. */
- if (p->if_index == if_nametoindex (buf))
- result = 0;
- printf ("%10s", result ? "fail" : "okay");
- printf ("\n");
- failures += result;
- }
- if_freenameindex (idx);
- return failures ? 1 : 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-checks-posix.c b/inet/tst-checks-posix.c
deleted file mode 100644
index cdcb5cb3aa..0000000000
--- a/inet/tst-checks-posix.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Test IPv6 classification macros in POSIX mode.
- Copyright (C) 2016-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* Process tst-checks.c in POSIX mode. */
-#undef _GNU_SOURCE
-#define _POSIX_C_SOURCE 200112L
-
-#include "tst-checks.c"
diff --git a/inet/tst-checks.c b/inet/tst-checks.c
deleted file mode 100644
index 1a4785d96e..0000000000
--- a/inet/tst-checks.c
+++ /dev/null
@@ -1,172 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <netinet/in.h>
-
-
-static int
-do_test (void)
-{
- int result = 0;
- char buf[16];
- memset (buf, '\0', 16);
-
- if (! IN6_IS_ADDR_UNSPECIFIED (buf))
- {
- puts ("positive IN6_IS_ADDR_UNSPECIFIED failed");
- result = 1;
- }
- for (size_t i = 0; i < 16; ++i)
- {
- buf[i] = 1;
- if (IN6_IS_ADDR_UNSPECIFIED (buf))
- {
- printf ("negative IN6_IS_ADDR_UNSPECIFIED with byte %zu failed\n",
- i);
- result = 1;
- }
- buf[i] = 0;
- }
-
- if (IN6_IS_ADDR_LOOPBACK (buf))
- {
- puts ("negative IN6_IS_ADDR_UNSPECIFIED failed");
- result = 1;
- }
- buf[15] = 1;
- if (! IN6_IS_ADDR_LOOPBACK (buf))
- {
- puts ("positive IN6_IS_ADDR_UNSPECIFIED failed");
- result = 1;
- }
- buf[15] = 0;
-
- buf[0] = 0xfe;
- buf[1] = 0x80;
- if (! IN6_IS_ADDR_LINKLOCAL (buf))
- {
- puts ("positive IN6_IS_ADDR_LINKLOCAL failed");
- result = 1;
- }
- for (size_t i = 1; i < 16; ++i)
- {
- buf[i] ^= 1;
- if (! IN6_IS_ADDR_LINKLOCAL (buf))
- {
- printf ("positive IN6_IS_ADDR_LINKLOCAL byte %zu failed\n", i);
- result = 1;
- }
- buf[i] ^= 1;
- }
- buf[0] = 0xff;
- buf[1] = 0x80;
- if (IN6_IS_ADDR_LINKLOCAL (buf))
- {
- puts ("negative IN6_IS_ADDR_LINKLOCAL failed");
- result = 1;
- }
- buf[0] = 0xfe;
- buf[1] = 0xc0;
- if (IN6_IS_ADDR_LINKLOCAL (buf))
- {
- puts ("negative IN6_IS_ADDR_LINKLOCAL #2 failed");
- result = 1;
- }
-
- buf[0] = 0xfe;
- buf[1] = 0xc0;
- if (! IN6_IS_ADDR_SITELOCAL (buf))
- {
- puts ("positive IN6_IS_ADDR_SITELOCAL failed");
- result = 1;
- }
- for (size_t i = 1; i < 16; ++i)
- {
- buf[i] ^= 1;
- if (! IN6_IS_ADDR_SITELOCAL (buf))
- {
- printf ("positive IN6_IS_ADDR_SITELOCAL byte %zu failed\n", i);
- result = 1;
- }
- buf[i] ^= 1;
- }
- buf[0] = 0xff;
- buf[1] = 0x80;
- if (IN6_IS_ADDR_SITELOCAL (buf))
- {
- puts ("negative IN6_IS_ADDR_SITELOCAL failed");
- result = 1;
- }
- buf[0] = 0xf8;
- buf[1] = 0xc0;
- if (IN6_IS_ADDR_SITELOCAL (buf))
- {
- puts ("negative IN6_IS_ADDR_SITELOCAL #2 failed");
- result = 1;
- }
-
- memset (buf, '\0', 16);
- buf[10] = 0xff;
- buf[11] = 0xff;
- if (! IN6_IS_ADDR_V4MAPPED (buf))
- {
- puts ("positive IN6_IS_ADDR_V4MAPPED failed");
- result = 1;
- }
- for (size_t i = 12; i < 16; ++i)
- {
- buf[i] ^= 1;
- if (! IN6_IS_ADDR_V4MAPPED (buf))
- {
- printf ("positive IN6_IS_ADDR_V4MAPPED byte %zu failed\n", i);
- result = 1;
- }
- buf[i] ^= 1;
- }
- for (size_t i = 0; i < 12; ++i)
- {
- buf[i] ^= 1;
- if (IN6_IS_ADDR_V4MAPPED (buf))
- {
- printf ("negative IN6_IS_ADDR_V4MAPPED byte %zu failed\n", i);
- result = 1;
- }
- buf[i] ^= 1;
- }
-
- memset (buf, '\0', 16);
- for (size_t i = 12; i < 16; ++i)
- {
- buf[i] ^= 2;
- if (! IN6_IS_ADDR_V4COMPAT (buf))
- {
- printf ("positive IN6_IS_ADDR_V4COMPAT byte %zu failed\n", i);
- result = 1;
- }
- buf[i] ^= 2;
- }
- for (size_t i = 0; i < 12; ++i)
- {
- buf[i] ^= 1;
- if (IN6_IS_ADDR_V4COMPAT (buf))
- {
- printf ("negative IN6_IS_ADDR_V4COMPAT byte %zu failed\n", i);
- result = 1;
- }
- buf[i] ^= 1;
- }
- if (IN6_IS_ADDR_V4COMPAT (buf))
- {
- puts ("negative IN6_IS_ADDR_V4COMPAT #2 failed");
- result = 1;
- }
- buf[15] = 1;
- if (IN6_IS_ADDR_V4COMPAT (buf))
- {
- puts ("negative IN6_IS_ADDR_V4COMPAT #3 failed");
- result = 1;
- }
-
- return result;
-}
-
-#include <support/test-driver.c>
diff --git a/inet/tst-deadline.c b/inet/tst-deadline.c
deleted file mode 100644
index ed04345c35..0000000000
--- a/inet/tst-deadline.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/* Tests for computing deadlines for timeouts.
- Copyright (C) 2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <inet/net-internal.h>
-#include <limits.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <support/check.h>
-
-/* Find the maximum value which can be represented in a time_t. */
-static time_t
-time_t_max (void)
-{
- _Static_assert (0 > (time_t) -1, "time_t is signed");
- uintmax_t current = 1;
- while (true)
- {
- uintmax_t next = current * 2;
- /* This cannot happen because time_t is signed. */
- TEST_VERIFY_EXIT (next > current);
- ++next;
- if ((time_t) next < 0 || next != (uintmax_t) (time_t) next)
- /* Value cannot be represented in time_t. Return the previous
- value. */
- return current;
- current = next;
- }
-}
-
-static int
-do_test (void)
-{
- {
- struct deadline_current_time current_time = __deadline_current_time ();
- TEST_VERIFY (current_time.current.tv_sec >= 0);
- current_time = __deadline_current_time ();
- /* Due to CLOCK_MONOTONIC, either seconds or nanoseconds are
- greater than zero. This is also true for the gettimeofday
- fallback. */
- TEST_VERIFY (current_time.current.tv_sec >= 0);
- TEST_VERIFY (current_time.current.tv_sec > 0
- || current_time.current.tv_nsec > 0);
- }
-
- /* Check basic computations of deadlines. */
- struct deadline_current_time current_time = { { 1, 123456789 } };
- struct deadline deadline = __deadline_from_timeval
- (current_time, (struct timeval) { 0, 1 });
- TEST_VERIFY (deadline.absolute.tv_sec == 1);
- TEST_VERIFY (deadline.absolute.tv_nsec == 123457789);
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 1);
-
- deadline = __deadline_from_timeval
- (current_time, ((struct timeval) { 0, 2 }));
- TEST_VERIFY (deadline.absolute.tv_sec == 1);
- TEST_VERIFY (deadline.absolute.tv_nsec == 123458789);
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 1);
-
- deadline = __deadline_from_timeval
- (current_time, ((struct timeval) { 1, 0 }));
- TEST_VERIFY (deadline.absolute.tv_sec == 2);
- TEST_VERIFY (deadline.absolute.tv_nsec == 123456789);
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 1000);
-
- /* Check if timeouts are correctly rounded up to the next
- millisecond. */
- for (int i = 0; i < 999999; ++i)
- {
- ++current_time.current.tv_nsec;
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 1000);
- }
-
- /* A full millisecond has elapsed, so the time to the deadline is
- now less than 1000. */
- ++current_time.current.tv_nsec;
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 999);
-
- /* Check __deadline_to_ms carry-over. */
- current_time = (struct deadline_current_time) { { 9, 123456789 } };
- deadline = (struct deadline) { { 10, 122456789 } };
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 999);
- deadline = (struct deadline) { { 10, 122456790 } };
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 1000);
- deadline = (struct deadline) { { 10, 123456788 } };
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 1000);
- deadline = (struct deadline) { { 10, 123456789 } };
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 1000);
-
- /* Check __deadline_to_ms overflow. */
- deadline = (struct deadline) { { INT_MAX - 1, 1 } };
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == INT_MAX);
-
- /* Check __deadline_to_ms for elapsed deadlines. */
- current_time = (struct deadline_current_time) { { 9, 123456789 } };
- deadline.absolute = current_time.current;
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 0);
- current_time = (struct deadline_current_time) { { 9, 123456790 } };
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 0);
- current_time = (struct deadline_current_time) { { 10, 0 } };
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 0);
- current_time = (struct deadline_current_time) { { 10, 123456788 } };
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 0);
- current_time = (struct deadline_current_time) { { 10, 123456789 } };
- TEST_VERIFY (__deadline_to_ms (current_time, deadline) == 0);
-
- /* Check carry-over in __deadline_from_timeval. */
- current_time = (struct deadline_current_time) { { 9, 998000001 } };
- for (int i = 0; i < 2000; ++i)
- {
- deadline = __deadline_from_timeval
- (current_time, (struct timeval) { 1, i });
- TEST_VERIFY (deadline.absolute.tv_sec == 10);
- TEST_VERIFY (deadline.absolute.tv_nsec == 998000001 + i * 1000);
- }
- for (int i = 2000; i < 3000; ++i)
- {
- deadline = __deadline_from_timeval
- (current_time, (struct timeval) { 2, i });
- TEST_VERIFY (deadline.absolute.tv_sec == 12);
- TEST_VERIFY (deadline.absolute.tv_nsec == 1 + (i - 2000) * 1000);
- }
-
- /* Check infinite deadlines. */
- deadline = __deadline_from_timeval
- ((struct deadline_current_time) { { 0, 1000 * 1000 * 1000 - 1000 } },
- (struct timeval) { time_t_max (), 1 });
- TEST_VERIFY (__deadline_is_infinite (deadline));
- deadline = __deadline_from_timeval
- ((struct deadline_current_time) { { 0, 1000 * 1000 * 1000 - 1001 } },
- (struct timeval) { time_t_max (), 1 });
- TEST_VERIFY (!__deadline_is_infinite (deadline));
- deadline = __deadline_from_timeval
- ((struct deadline_current_time)
- { { time_t_max (), 1000 * 1000 * 1000 - 1000 } },
- (struct timeval) { 0, 1 });
- TEST_VERIFY (__deadline_is_infinite (deadline));
- deadline = __deadline_from_timeval
- ((struct deadline_current_time)
- { { time_t_max () / 2 + 1, 0 } },
- (struct timeval) { time_t_max () / 2 + 1, 0 });
- TEST_VERIFY (__deadline_is_infinite (deadline));
-
- /* Check __deadline_first behavior. */
- deadline = __deadline_first
- ((struct deadline) { { 1, 2 } },
- (struct deadline) { { 1, 3 } });
- TEST_VERIFY (deadline.absolute.tv_sec == 1);
- TEST_VERIFY (deadline.absolute.tv_nsec == 2);
- deadline = __deadline_first
- ((struct deadline) { { 1, 3 } },
- (struct deadline) { { 1, 2 } });
- TEST_VERIFY (deadline.absolute.tv_sec == 1);
- TEST_VERIFY (deadline.absolute.tv_nsec == 2);
- deadline = __deadline_first
- ((struct deadline) { { 1, 2 } },
- (struct deadline) { { 2, 1 } });
- TEST_VERIFY (deadline.absolute.tv_sec == 1);
- TEST_VERIFY (deadline.absolute.tv_nsec == 2);
- deadline = __deadline_first
- ((struct deadline) { { 1, 2 } },
- (struct deadline) { { 2, 4 } });
- TEST_VERIFY (deadline.absolute.tv_sec == 1);
- TEST_VERIFY (deadline.absolute.tv_nsec == 2);
- deadline = __deadline_first
- ((struct deadline) { { 2, 4 } },
- (struct deadline) { { 1, 2 } });
- TEST_VERIFY (deadline.absolute.tv_sec == 1);
- TEST_VERIFY (deadline.absolute.tv_nsec == 2);
-
- return 0;
-}
-
-#include <support/test-driver.c>
diff --git a/inet/tst-ether_aton.c b/inet/tst-ether_aton.c
deleted file mode 100644
index eba350ed3a..0000000000
--- a/inet/tst-ether_aton.c
+++ /dev/null
@@ -1,60 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <netinet/ether.h>
-
-static int
-do_test (void)
-{
- struct ether_addr *valp, val;
- int result, r;
- char hostname[32], buf[64], *p;
-
- valp = ether_aton ("12:34:56:78:9a:bc");
-
- printf ("ether_aton (\"12:34:56:78:9a:bc\") = %hhx:%hhx:%hhx:%hhx:%hhx:%hhx\n",
- valp->ether_addr_octet[0],
- valp->ether_addr_octet[1],
- valp->ether_addr_octet[2],
- valp->ether_addr_octet[3],
- valp->ether_addr_octet[4],
- valp->ether_addr_octet[5]);
-
- result = (valp->ether_addr_octet[0] != 0x12
- || valp->ether_addr_octet[1] != 0x34
- || valp->ether_addr_octet[2] != 0x56
- || valp->ether_addr_octet[3] != 0x78
- || valp->ether_addr_octet[4] != 0x9a
- || valp->ether_addr_octet[5] != 0xbc);
-
- if ((r = ether_line ("0:c0:f0:46:5f:97 host.ether.com \t# comment",
- &val, hostname)) == 0)
- {
- ether_ntoa_r (&val, buf);
- p = strchr (buf, '\0');
- *p++ = ' ';
- strcpy (p, hostname);
-
- printf ("ether_line (\"0:c0:f0:46:5f:97 host.ether.com\") = \"%s\"\n",
- buf);
-
- result |= strcmp ("0:c0:f0:46:5f:97 host.ether.com", buf) != 0;
- }
- else
- {
- printf ("ether_line (\"0:c0:f0:46:5f:97 host.ether.com\") = %d\n", r);
- result |= 1;
- }
-
- r = ether_line ("0:c0:2:d0 foo.bar ", &val, hostname);
- printf ("ether_line (\"0:c0:2:d0 foo.bar \") = %d\n", r);
- result |= r != -1;
-
- r = ether_line ("0:c0:2:d0:1a:2a ", &val, hostname);
- printf ("ether_line (\"0:c0:2:d0:1a:2a \") = %d\n", r);
- result |= r != -1;
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-ether_line.c b/inet/tst-ether_line.c
deleted file mode 100644
index ff0560b16a..0000000000
--- a/inet/tst-ether_line.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <netinet/ether.h>
-
-
-static int
-do_test (void)
-{
- struct ether_addr a;
- char buf[1000];
- if (ether_line ("00:01:02:03:04:05 aaaaa \n", &a, buf) != 0)
- {
- puts ("ether_line failed");
- return 1;
- }
-
- int res = 0;
- int i;
- for (i = 0; i < ETH_ALEN; ++i)
- {
- printf ("%02x%s",
- (int) a.ether_addr_octet[i], i + 1 == ETH_ALEN ? "" : ":");
- if (a.ether_addr_octet[i] != i)
- {
- printf ("octet %d is %d, expected %d\n",
- i, (int) a.ether_addr_octet[i], i);
- res = 1;
- }
- }
-
- printf (" \"%s\"\n", buf);
- res |= strcmp (buf, "aaaaa") != 0;
-
- return res;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-gethnm.c b/inet/tst-gethnm.c
deleted file mode 100644
index dd3a547811..0000000000
--- a/inet/tst-gethnm.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Based on a test case by grd@algonet.se. */
-
-#include <netdb.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-static int
-do_test (void)
-{
- struct hostent *ent;
- struct in_addr hostaddr;
- int result = 0;
-
- inet_aton ("127.0.0.1", (struct in_addr *) &hostaddr.s_addr);
- ent = gethostbyaddr (&hostaddr, sizeof (hostaddr), AF_INET);
- if (ent == NULL)
- puts ("gethostbyaddr (...) == NULL");
- else
- {
- puts ("Using gethostbyaddr(..):");
- printf ("h_name: %s\n", ent->h_name);
-
- if (ent->h_aliases == NULL)
- puts ("ent->h_aliases == NULL");
- else
- printf ("h_aliases[0]: %s\n", ent->h_aliases[0]);
- }
-
- ent = gethostbyname ("127.0.0.1");
- if (ent == NULL)
- {
- puts ("gethostbyname (\"127.0.0.1\") == NULL");
- result = 1;
- }
- else
- {
- printf ("\nNow using gethostbyname(..):\n");
- printf ("h_name: %s\n", ent->h_name);
- if (strcmp (ent->h_name, "127.0.0.1") != 0)
- {
- puts ("ent->h_name != \"127.0.0.1\"");
- result = 1;
- }
-
- if (ent->h_aliases == NULL)
- {
- puts ("ent->h_aliases == NULL");
- result = 1;
- }
- else
- {
- printf ("h_aliases[0]: %s\n", ent->h_aliases[0]);
- result |= ent->h_aliases[0] != NULL;
- }
- }
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-getni1.c b/inet/tst-getni1.c
deleted file mode 100644
index 3960f7112e..0000000000
--- a/inet/tst-getni1.c
+++ /dev/null
@@ -1,36 +0,0 @@
-#include <netdb.h>
-#include <stdio.h>
-#include <sys/socket.h>
-
-static int
-do_test (void)
-{
- int retval = 0;
-
- struct sockaddr_in s;
- s.sin_family = AF_INET;
- s.sin_port = 80;
- s.sin_addr.s_addr = INADDR_LOOPBACK;
- int r = getnameinfo((struct sockaddr *) &s, sizeof (s), NULL, 0, NULL, 0,
- NI_NUMERICHOST | NI_NUMERICSERV);
- printf("r = %d\n", r);
- if (r != 0)
- {
- puts ("failed without NI_NAMEREQD");
- retval = 1;
- }
-
- r = getnameinfo((struct sockaddr *) &s, sizeof (s), NULL, 0, NULL, 0,
- NI_NUMERICHOST | NI_NUMERICSERV | NI_NAMEREQD);
- printf("r = %d\n", r);
- if (r != EAI_NONAME)
- {
- puts ("did not fail with EAI_NONAME with NI_NAMEREQD set");
- retval = 1;
- }
-
- return retval;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-getni2.c b/inet/tst-getni2.c
deleted file mode 100644
index 66e78062ba..0000000000
--- a/inet/tst-getni2.c
+++ /dev/null
@@ -1,41 +0,0 @@
-#include <netdb.h>
-#include <stdio.h>
-#include <sys/socket.h>
-
-static int
-do_test (void)
-{
- int retval = 0;
-
- struct sockaddr_in6 s;
- s.sin6_family = AF_INET6;
- s.sin6_port = htons (80);
- s.sin6_flowinfo = 0;
- s.sin6_addr = (struct in6_addr) IN6ADDR_ANY_INIT;
- s.sin6_scope_id = 0;
- char buf[1000];
- buf[0] = '\0';
- int r = getnameinfo((struct sockaddr *) &s, sizeof (s), buf, sizeof (buf),
- NULL, 0, NI_NUMERICSERV);
- printf("r = %d, buf = \"%s\"\n", r, buf);
- if (r != 0)
- {
- puts ("failed without NI_NAMEREQD");
- retval = 1;
- }
-
- buf[0] = '\0';
- r = getnameinfo((struct sockaddr *) &s, sizeof (s), buf, sizeof (buf),
- NULL, 0, NI_NUMERICSERV | NI_NAMEREQD);
- printf("r = %d, buf = \"%s\"\n", r, buf);
- if (r != EAI_NONAME)
- {
- puts ("did not fail with EAI_NONAME with NI_NAMEREQD set");
- retval = 1;
- }
-
- return retval;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-inet6_rth.c b/inet/tst-inet6_rth.c
deleted file mode 100644
index 549d717c7d..0000000000
--- a/inet/tst-inet6_rth.c
+++ /dev/null
@@ -1,192 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <netinet/ip6.h>
-
-static int
-do_test (void)
-{
- int res = 0;
- char buf[1000];
- void *p = inet6_rth_init (buf, 24, IPV6_RTHDR_TYPE_0, 0);
- if (p == NULL)
- {
- puts ("first inet6_rth_init failed");
- res = 1;
- }
- else if (inet6_rth_add (p, &in6addr_any) == 0)
- {
- puts ("first inet6_rth_add succeeded");
- res = 1;
- }
-
- p = inet6_rth_init (buf, 24, IPV6_RTHDR_TYPE_0, 1);
- if (p == NULL)
- {
- puts ("second inet6_rth_init failed");
- res = 1;
- }
- else if (inet6_rth_add (p, &in6addr_any) != 0)
- {
- puts ("second inet6_rth_add failed");
- res = 1;
- }
-
- for (int nseg = 4; nseg < 6; ++nseg)
- {
- printf ("nseg = %d\n", nseg);
-
- p = inet6_rth_init (buf, sizeof (buf), IPV6_RTHDR_TYPE_0, nseg);
- if (p == NULL)
- {
- puts ("third inet6_rth_init failed");
- res = 1;
- }
- else
- {
- struct in6_addr tmp;
- memset (&tmp, '\0', sizeof (tmp));
-
- for (int i = 0; i < nseg; ++i)
- {
- tmp.s6_addr[0] = i;
- if (inet6_rth_add (p, &tmp) != 0)
- {
- printf ("call %d of third inet6_rth_add failed\n", i + 1);
- res = 1;
- goto out;
- }
- }
- ((struct ip6_rthdr0 *) p)->ip6r0_segleft = 0;
- if (inet6_rth_segments (p) != nseg)
- {
- puts ("\
-inet6_rth_segments returned wrong value after loop with third inet6_rth_add");
- res = 1;
- goto out;
- }
-
- union
- {
- char buffer[1000];
- struct ip6_rthdr0 rthdr0;
- } buf2;
- if (inet6_rth_reverse (p, buf2.buffer) != 0)
- {
- puts ("first inet6_rth_reverse call failed");
- res = 1;
- goto out;
- }
- if (buf2.rthdr0.ip6r0_segleft != nseg)
- {
- puts ("segleft after first inet6_rth_reverse wrong");
- res = 1;
- }
-
- if (inet6_rth_segments (p) != inet6_rth_segments (buf2.buffer))
- {
- puts ("number of seconds after first inet6_rth_reverse differs");
- res = 1;
- goto out;
- }
-
- for (int i = 0; i < nseg; ++i)
- {
- struct in6_addr *addr = inet6_rth_getaddr (buf2.buffer, i);
- if (addr == NULL)
- {
- printf ("call %d of first inet6_rth_getaddr failed\n",
- i + 1);
- res = 1;
- }
- else if (addr->s6_addr[0] != nseg - 1 - i
- || memcmp (&addr->s6_addr[1], &in6addr_any.s6_addr[1],
- sizeof (in6addr_any)
- - sizeof (in6addr_any.s6_addr[0])) != 0)
- {
- char addrbuf[100];
- inet_ntop (AF_INET6, addr, addrbuf, sizeof (addrbuf));
- printf ("\
-address %d after first inet6_rth_reverse wrong (%s)\n",
- i + 1, addrbuf);
- res = 1;
- }
- }
- out:
- ;
- }
-
- p = inet6_rth_init (buf, sizeof (buf), IPV6_RTHDR_TYPE_0, nseg);
- if (p == NULL)
- {
- puts ("fourth inet6_rth_init failed");
- res = 1;
- }
- else
- {
- struct in6_addr tmp;
- memset (&tmp, '\0', sizeof (tmp));
-
- for (int i = 0; i < nseg; ++i)
- {
- tmp.s6_addr[0] = i;
- if (inet6_rth_add (p, &tmp) != 0)
- {
- printf ("call %d of fourth inet6_rth_add failed\n", i + 1);
- res = 1;
- goto out2;
- }
- }
- ((struct ip6_rthdr0 *) p)->ip6r0_segleft = 0;
- if (inet6_rth_segments (p) != nseg)
- {
- puts ("\
-inet6_rth_segments returned wrong value after loop with fourth inet6_rth_add");
- res = 1;
- goto out2;
- }
-
- if (inet6_rth_reverse (p, p) != 0)
- {
- puts ("second inet6_rth_reverse call failed");
- res = 1;
- goto out2;
- }
- if (((struct ip6_rthdr0 *) p)->ip6r0_segleft != nseg)
- {
- puts ("segleft after second inet6_rth_reverse wrong");
- res = 1;
- }
-
- for (int i = 0; i < nseg; ++i)
- {
- struct in6_addr *addr = inet6_rth_getaddr (p, i);
- if (addr == NULL)
- {
- printf ("call %d of second inet6_rth_getaddr failed\n",
- i + 1);
- res = 1;
- }
- else if (addr->s6_addr[0] != nseg - 1 - i
- || memcmp (&addr->s6_addr[1], &in6addr_any.s6_addr[1],
- sizeof (in6addr_any)
- - sizeof (in6addr_any.s6_addr[0])) != 0)
- {
- char addrbuf[100];
- inet_ntop (AF_INET6, addr, addrbuf, sizeof (addrbuf));
- printf ("\
-address %d after second inet6_rth_reverse wrong (%s)\n",
- i + 1, addrbuf);
- res = 1;
- }
- }
- out2:
- ;
- }
- }
-
- return res;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-inet6_scopeid_pton.c b/inet/tst-inet6_scopeid_pton.c
deleted file mode 100644
index 2178c5b4d2..0000000000
--- a/inet/tst-inet6_scopeid_pton.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Tests for __inet6_scopeid_pton.
- Copyright (C) 2016-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <arpa/inet.h>
-#include <inttypes.h>
-#include <net-internal.h>
-#include <net/if.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-/* An interface which is known to the system. */
-static const char *interface_name;
-static uint32_t interface_index;
-
-/* Initiale the variables above. */
-static void
-setup_interface (void)
-{
- struct if_nameindex *list = if_nameindex ();
- if (list != NULL && list[0].if_index != 0 && list[0].if_name[0] != '\0')
- {
- interface_name = list[0].if_name;
- interface_index = list[0].if_index;
- }
-}
-
-/* Convert ADDRESS to struct in6_addr. */
-static struct in6_addr
-from_string (const char *address)
-{
- struct in6_addr addr;
- if (inet_pton (AF_INET6, address, &addr) != 1)
- {
- printf ("error: inet_pton (\"%s\") failed\n", address);
- exit (1);
- }
- return addr;
-}
-
-/* Check a single address were we expected a failure. */
-static void
-expect_failure (const char *address, const char *scope)
-{
- struct in6_addr addr = from_string (address);
- uint32_t result = 1234;
- if (__inet6_scopeid_pton (&addr, scope, &result) == 0)
- {
- printf ("error: unexpected success for %s%%%s\n",
- address, scope);
- exit (1);
- }
- if (result != 1234)
- {
- printf ("error: unexpected result update for %s%%%s\n",
- address, scope);
- exit (1);
- }
-}
-
-/* Check a single address were we expected a success. */
-static void
-expect_success (const char *address, const char *scope, uint32_t expected)
-{
- struct in6_addr addr = from_string (address);
- uint32_t actual = expected + 1;
- if (__inet6_scopeid_pton (&addr, scope, &actual) != 0)
- {
- printf ("error: unexpected failure for %s%%%s\n",
- address, scope);
- exit (1);
- }
- if (actual != expected)
- {
- printf ("error: unexpected result for for %s%%%s\n",
- address, scope);
- printf (" expected: %" PRIu32 "\n", expected);
- printf (" actual: %" PRIu32 "\n", actual);
- exit (1);
- }
-}
-
-static int
-do_test (void)
-{
- setup_interface ();
-
- static const char *test_addresses[]
- = { "::", "::1", "2001:db8::1", NULL };
- for (int i = 0; test_addresses[i] != NULL; ++i)
- {
- expect_success (test_addresses[i], "0", 0);
- expect_success (test_addresses[i], "5555", 5555);
-
- expect_failure (test_addresses[i], "");
- expect_failure (test_addresses[i], "-1");
- expect_failure (test_addresses[i], "-99");
- expect_failure (test_addresses[i], "037777777777");
- expect_failure (test_addresses[i], "0x");
- expect_failure (test_addresses[i], "0x1");
- }
-
- if (interface_name != NULL)
- {
- expect_success ("fe80::1", interface_name, interface_index);
- expect_success ("ff02::1", interface_name, interface_index);
- expect_failure ("::", interface_name);
- expect_failure ("::1", interface_name);
- expect_failure ("ff01::1", interface_name);
- expect_failure ("2001:db8::1", interface_name);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-network.c b/inet/tst-network.c
deleted file mode 100644
index 825b0cbc48..0000000000
--- a/inet/tst-network.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Test for inet_network.
- Copyright (C) 2000-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj@suse.de>, 2000.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-struct
-{
- const char *network;
- uint32_t number;
-} tests [] =
-{
- {"1.0.0.0", 0x1000000},
- {"1.0.0", 0x10000},
- {"1.0", 0x100},
- {"1", 0x1},
- {"192.168.0.0", 0xC0A80000},
- {"0", 0},
- {"0x0", 0},
- /* Now some invalid addresses. */
- {"0x", INADDR_NONE},
- {"1 bar", INADDR_NONE}, /* Bug 15277. */
- {"141.30.225.2800", INADDR_NONE},
- {"141.76.1.1.1", INADDR_NONE},
- {"141.76.1.11.", INADDR_NONE},
- {"1410", INADDR_NONE},
- {"1.1410", INADDR_NONE},
- {"1.1410.", INADDR_NONE},
- {"1.1410", INADDR_NONE},
- {"141.76.1111", INADDR_NONE},
- {"141.76.1111.", INADDR_NONE}
-};
-
-
-static int
-do_test (void)
-{
- int errors = 0;
- size_t i;
- uint32_t res;
-
- for (i = 0; i < sizeof (tests) / sizeof (tests[0]); ++i)
- {
- printf ("Testing: %s\n", tests[i].network);
- res = inet_network (tests[i].network);
-
- if (res != tests[i].number)
- {
- ++errors;
- printf ("Test failed for inet_network (\"%s\"):\n",
- tests[i].network);
- printf ("Expected return value %u (0x%x) but got %u (0x%x).\n",
- tests[i].number, tests[i].number, res, res);
- }
-
- }
-
- return errors != 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-ntoa.c b/inet/tst-ntoa.c
deleted file mode 100644
index ef82d4d537..0000000000
--- a/inet/tst-ntoa.c
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-
-static int
-test (unsigned int inaddr, const char *expected)
-{
- struct in_addr addr;
- char *res;
- int fail;
-
- addr.s_addr = htonl (inaddr);
- res = inet_ntoa (addr);
- fail = strcmp (res, expected);
-
- printf ("%#010x -> \"%s\" -> %s%s\n", inaddr, res,
- fail ? "fail, expected" : "ok", fail ? expected : "");
-
- return fail;
-}
-
-
-static int
-do_test (void)
-{
- int result = 0;
-
- result |= test (INADDR_LOOPBACK, "127.0.0.1");
- result |= test (INADDR_BROADCAST, "255.255.255.255");
- result |= test (INADDR_ANY, "0.0.0.0");
- result |= test (0xc0060746, "192.6.7.70");
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/inet/tst-sockaddr.c b/inet/tst-sockaddr.c
deleted file mode 100644
index dccc3dac0c..0000000000
--- a/inet/tst-sockaddr.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Tests for socket address type definitions.
- Copyright (C) 2016-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <netinet/in.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-
-/* This is a copy of the previous definition of struct
- sockaddr_storage. It is not equal to the old value of _SS_SIZE
- (128) on all architectures. We must stay compatible with the old
- definition. */
-
-#define OLD_REFERENCE_SIZE 128
-#define OLD_PADSIZE (OLD_REFERENCE_SIZE - (2 * sizeof (__ss_aligntype)))
-struct sockaddr_storage_old
- {
- __SOCKADDR_COMMON (old_);
- __ss_aligntype old_align;
- char old_padding[OLD_PADSIZE];
- };
-
-static bool errors;
-
-static void
-check (bool ok, const char *message)
-{
- if (!ok)
- {
- printf ("error: failed check: %s\n", message);
- errors = true;
- }
-}
-
-static int
-do_test (void)
-{
- check (OLD_REFERENCE_SIZE >= _SS_SIZE,
- "old target size is not smaller than actual size");
- check (sizeof (struct sockaddr_storage_old)
- == sizeof (struct sockaddr_storage),
- "old and new sizes match");
- check (__alignof (struct sockaddr_storage_old)
- == __alignof (struct sockaddr_storage),
- "old and new alignment matches");
- check (offsetof (struct sockaddr_storage_old, old_family)
- == offsetof (struct sockaddr_storage, ss_family),
- "old and new family offsets match");
- check (sizeof (struct sockaddr_storage) == _SS_SIZE,
- "struct sockaddr_storage size");
-
- /* Check for lack of holes in the struct definition. */
- check (offsetof (struct sockaddr_storage, __ss_padding)
- == __SOCKADDR_COMMON_SIZE,
- "implicit padding before explicit padding");
- check (offsetof (struct sockaddr_storage, __ss_align)
- == __SOCKADDR_COMMON_SIZE
- + sizeof (((struct sockaddr_storage) {}).__ss_padding),
- "implicit padding before explicit padding");
-
- /* Check for POSIX compatibility requirements between struct
- sockaddr_storage and struct sockaddr_un. */
- check (sizeof (struct sockaddr_storage) >= sizeof (struct sockaddr_un),
- "sockaddr_storage is at least as large as sockaddr_un");
- check (__alignof (struct sockaddr_storage)
- >= __alignof (struct sockaddr_un),
- "sockaddr_storage is at least as aligned as sockaddr_un");
- check (offsetof (struct sockaddr_storage, ss_family)
- == offsetof (struct sockaddr_un, sun_family),
- "family offsets match");
-
- /* Check that the compiler preserves bit patterns in aggregate
- copies. Based on <https://gcc.gnu.org/PR71120>. */
- check (sizeof (struct sockaddr_storage) >= sizeof (struct sockaddr_in),
- "sockaddr_storage is at least as large as sockaddr_in");
- {
- struct sockaddr_storage addr;
- memset (&addr, 0, sizeof (addr));
- {
- struct sockaddr_in *sinp = (struct sockaddr_in *)&addr;
- sinp->sin_family = AF_INET;
- sinp->sin_addr.s_addr = htonl (INADDR_LOOPBACK);
- sinp->sin_port = htons (80);
- }
- struct sockaddr_storage copy;
- copy = addr;
-
- struct sockaddr_storage *p = malloc (sizeof (*p));
- if (p == NULL)
- {
- printf ("error: malloc: %m\n");
- return 1;
- }
- *p = copy;
- const struct sockaddr_in *sinp = (const struct sockaddr_in *)p;
- check (sinp->sin_family == AF_INET, "sin_family");
- check (sinp->sin_addr.s_addr == htonl (INADDR_LOOPBACK), "sin_addr");
- check (sinp->sin_port == htons (80), "sin_port");
- free (p);
- }
-
- return errors;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"