Commit Graph

9 Commits

Author SHA1 Message Date
Joseph Myers
b168057aaa Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Joseph Myers
7f994279e9 Fix getifaddrs, freeifaddrs namespace (bug 17668).
Various objects in glibc bring in ifaddrs.o (via references to
__netlink_*) and thereby getifaddrs and freeifaddrs, which are not
part of any standard supported by glibc.  These should be weak aliases
of __getifaddrs and __freeifaddrs; this patch makes them so.

(The path by which these functions are brought in is Linux-specific,
but it seems less confusing to make all versions of these functions
weak aliases rather than only the Linux-specific versions that
definitely need it.)

Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by this patch).

	[BZ #17668]
	* inet/ifaddrs.c (getifaddrs): Rename to __getifaddrs and define
	as weak alias of __getifaddrs.  Use libc_hidden_weak.
	(freeifaddrs): Rename to __freeifaddrs and define as weak alias of
	__freeifaddrs.  Use libc_hidden_weak.
	* sysdeps/gnu/ifaddrs.c (getifaddrs): Rename to __getifaddrs and
	define as weak alias of __getifaddrs.  Use libc_hidden_weak.
	(freeifaddrs): Rename to __freeifaddrs and define as weak alias of
	__freeifaddrs.  Use libc_hidden_weak.
	* sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs): Rename to
	__getifaddrs and define as weak alias of __getifaddrs.  Use
	libc_hidden_weak.
	(freeifaddrs): Rename to __freeifaddrs and define as weak alias of
	__freeifaddrs.  Use libc_hidden_weak.
	* conform/Makefile (test-xfail-XOPEN2K/net/if.h/linknamespace):
	Remove variable.
	(test-xfail-POSIX2008/net/if.h/linknamespace): Likewise.
	(test-xfail-XOPEN2K8/net/if.h/linknamespace): Likewise.
2014-12-02 23:11:09 +00:00
Allan McRae
d4697bc93d Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Joseph Myers
568035b787 Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
Paul Eggert
59ba27a63a Replace FSF snail mail address with URLs. 2012-02-09 23:18:22 +00:00
Ulrich Drepper
925c3c5c71 Update.
2003-04-24  Ulrich Drepper  <drepper@redhat.com>

	* include/ifaddrs.h: New file.
	* include/netdb.h: Move definitions of AI_V4MAPPED, AI_ALL, and
	AI_ADDRCONFIG...
	* resolv/netdb.h: ...here.
	* sysdeps/gnu/ifaddrs.c. Use libc_hidden_def where appropriate.
	* sysdeps/unix/sysv/linux/ifaddrs.c: Likewise.
	* sysdeps/posix/getaddrinfo.c: Implement AI_V4MAPPED, AI_ALL, and
	AI_ADDRCONFIG.
2003-04-24 23:45:17 +00:00
Roland McGrath
6938e63f71 * inet/test-ifaddrs.c (main: addr_string): Handle null SA.
Grok AF_LINK if defined.
	From Momchil Velikov <velco@fadata.bg>.

	* sysdeps/gnu/ifaddrs.c (getifaddrs): If ioctl fails for netmask,
	brdaddr, or dstaddr, just set those pointers to null and don't fail.
	Reported by Momchil Velikov <velco@fadata.bg>.

	* sysdeps/generic/ifreq.h (__if_nextreq) [_HAVE_SA_LEN]: If sa_len
	is > sizeof IFR->ifa_addr, advance past the whole longer length.
	(__ifreq): Count up NIFS that way too.
	Reported by Momchil Velikov <velco@fadata.bg>.

	* sysdeps/mach/hurd/lchmod.c: Include <fcntl.h>.
2002-11-26 03:29:06 +00:00
Roland McGrath
9db6ee8d2f * sysdeps/generic/ifreq.h (__if_nextreq): New function.
* sysdeps/unix/sysv/linux/ifreq.h (__if_nextreq): New function.
	* sysdeps/mach/hurd/ifreq.h (__if_nextreq): New function.
	* sysdeps/gnu/ifaddrs.c (getifaddrs): Use __if_nextreq
	for iterating through the list of interfaces.
	* resolv/res_hconf.c (_res_hconf_reorder_addrs): Likewise.

	* sysdeps/unix/grantpt.c (pts_name): Set errno when __ptsname_r fails.
	Reported by Bruno Haible <bruno@clisp.org>.
2002-09-20 20:34:06 +00:00
Roland McGrath
7f1deee65e Added <ifaddrs.h> interface with functions getifaddrs', freeifaddrs'.
This implementation supports only IPv4.
	* inet/ifaddrs.h: New file.
	* sysdeps/generic/ifaddrs.c: New file.
	* sysdeps/gnu/ifaddrs.c: New file.
	* inet/test-ifaddrs.c: New file.
	* inet/Makefile (routines): Add ifaddrs.
	(headers): Add ifaddrs.h here.
	(tests): Add test-ifaddrs.
	* inet/Versions (GLIBC_2.3): New set, add getifaddrs and freeifaddrs.

	* resolv/res_hconf.c (_res_hconf_reorder_addrs): Use an explicit
	socket call to get an AF_INET socket, instead of using __opensock.
	The SIOCGIFNETMASK ioctl will work only with a PF_INET socket.

	* sysdeps/generic/ifreq.h (__ifreq): Take third argument SOCKFD,
	if not -1 use it instead of calling __opensock.
	* sysdeps/unix/sysv/linux/ifreq.h (__ifreq): Likewise.
	* sysdeps/mach/hurd/ifreq.h (__ifreq): Take new argument and ignore it.
	* resolv/res_hconf.c (_res_hconf_reorder_addrs): Pass new argument.

	* sysdeps/mach/hurd/ifreq.h: New file.
	* sysdeps/generic/ifreq.h (__if_freereq): Take second argument NUM_IFS.
	* sysdeps/unix/sysv/linux/ifreq.h (__if_freereq): Likewise.
	* resolv/res_hconf.c (_res_hconf_reorder_addrs): Update caller.
2002-07-24 22:56:44 +00:00