about summary refs log tree commit diff
path: root/sysdeps/unix
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-09-20 20:34:06 +0000
committerRoland McGrath <roland@gnu.org>2002-09-20 20:34:06 +0000
commit9db6ee8d2fa48ade4451c0de80980b7f242c0f17 (patch)
tree2054d18cc95669fa2d6686cb9565a07407d26a84 /sysdeps/unix
parentdab9837091a70e6ed6ea0d6474e0508ea6fccde5 (diff)
downloadglibc-9db6ee8d2fa48ade4451c0de80980b7f242c0f17.tar.gz
glibc-9db6ee8d2fa48ade4451c0de80980b7f242c0f17.tar.xz
glibc-9db6ee8d2fa48ade4451c0de80980b7f242c0f17.zip
* 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>.
Diffstat (limited to 'sysdeps/unix')
-rw-r--r--sysdeps/unix/grantpt.c3
-rw-r--r--sysdeps/unix/sysv/linux/ifreq.h6
2 files changed, 8 insertions, 1 deletions
diff --git a/sysdeps/unix/grantpt.c b/sysdeps/unix/grantpt.c
index 5f27ce91e3..98d601cf67 100644
--- a/sysdeps/unix/grantpt.c
+++ b/sysdeps/unix/grantpt.c
@@ -55,7 +55,8 @@ pts_name (int fd, char **pts, size_t buf_len)
 		/* ptsname_r returns with ENOTTY to indicate
 		   a descriptor not referring to a pty master.
 		   For this condition, grantpt must return EINVAL.  */
-		errno = EINVAL;
+		rv = EINVAL;
+	      errno = rv;	/* Not necessarily set by __ptsname_r.  */
 	      break;
 	    }
 
diff --git a/sysdeps/unix/sysv/linux/ifreq.h b/sysdeps/unix/sysv/linux/ifreq.h
index 9d42664444..f498e5c32a 100644
--- a/sysdeps/unix/sysv/linux/ifreq.h
+++ b/sysdeps/unix/sysv/linux/ifreq.h
@@ -105,6 +105,12 @@ __ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd)
   *ifreqs = realloc (ifc.ifc_buf, nifs * sizeof (struct ifreq));
 }
 
+static inline struct ifreq *
+__if_nextreq (struct ifreq *ifr)
+{
+  return ifr + 1;
+}
+
 static inline void
 __if_freereq (struct ifreq *ifreqs, int num_ifs)
 {