update from main archive 961001
authordrepper <drepper>
Wed, 2 Oct 1996 01:37:02 +0000 (01:37 +0000)
committerdrepper <drepper>
Wed, 2 Oct 1996 01:37:02 +0000 (01:37 +0000)
17 files changed:
posix/sys/types.h
pwd/getpw.c
resolv/base64.c
resolv/gethnamaddr.c
resolv/getnetnamadr.c
resolv/inet_neta.c
resolv/netdb.h
resolv/res_debug.c
resolv/res_mkquery.c
resolv/res_query.c
stdio-common/getline.c
stdio-common/reg-printf.c
stdio-common/scanf.c
stdio-common/tmpnam.c
stdio-common/tstgetln.c
stdio-common/vfprintf.c
stdio-common/vfscanf.c

index 55b6fd0..234936d 100644 (file)
@@ -30,31 +30,37 @@ __BEGIN_DECLS
 #include <gnu/types.h>
 
 #ifdef __USE_BSD
-#define u_char __u_char
-#define u_short __u_short
-#define u_int __u_int
-#define u_long __u_long
-#define quad_t __quad_t
-#define u_quad_t __u_quad_t
-#define        fsid_t __fsid_t
+typedef __u_char u_char;
+typedef __u_short u_short;
+typedef __u_int u_int;
+typedef __u_long u_long;
+typedef __quad_t quad_t;
+typedef __u_quad_t u_quad_t;
+typedef __fsid_t fsid_t;
 #endif
 
-#define dev_t __dev_t
-#define gid_t __gid_t
-#define ino_t __ino_t
-#define mode_t __mode_t
-#define nlink_t __nlink_t
-#define off_t __off_t
-#define loff_t __loff_t
-#define pid_t __pid_t
-#define uid_t __uid_t
-#ifndef        ssize_t
-#define        ssize_t __ssize_t
+typedef __dev_t dev_t;
+typedef __gid_t gid_t;
+typedef __ino_t ino_t;
+typedef __mode_t mode_t;
+typedef __nlink_t nlink_t;
+typedef __off_t off_t;
+typedef __loff_t loff_t;
+typedef __pid_t pid_t;
+typedef __uid_t uid_t;
+
+#ifndef ssize_t
+typedef __ssize_t ssize_t;
+#define ssize_t ssize_t
 #endif
 
 #ifdef __USE_BSD
-#define daddr_t __daddr_t
-#define caddr_t __caddr_t
+typedef __daddr_t daddr_t;
+typedef __caddr_t caddr_t;
+#endif
+
+#ifdef  __USE_SVID
+typedef __key_t key_t;
 #endif
 
 #define        __need_time_t
@@ -84,8 +90,8 @@ typedef       unsigned int u_int32_t;
 #ifdef __GNUC__
 typedef long long int int64_t;
 typedef unsigned long long int u_int64_t;
-typedef int register_t __attribute__ ((__mode__ (word)));
 #endif
+typedef int register_t;
 
 #else
 
index 0bd2ab9..402fafd 100644 (file)
@@ -24,8 +24,11 @@ Cambridge, MA 02139, USA.  */
 /* Re-construct the password-file line for the given uid
    in the given buffer.  This knows the format that the caller
    will expect, but this need not be the format of the password file.  */
+
+int __getpw __P ((__uid_t uid, char *buf));
+
 int
-getpw (uid, buf)
+__getpw (uid, buf)
      __uid_t uid;
      register char *buf;
 {
@@ -47,3 +50,4 @@ getpw (uid, buf)
 
   return 0;
 }
+weak_alias (__getpw, getpw)
index 8b01de3..31cd181 100644 (file)
@@ -280,7 +280,7 @@ b64_pton(src, target, targsize)
 
                case 2:         /* Valid, means one byte of info */
                        /* Skip any number of spaces. */
-                       for (NULL; ch != '\0'; ch = *src++)
+                       for ( ; ch != '\0'; ch = *src++)
                                if (!isspace(ch))
                                        break;
                        /* Make sure there is another trailing = sign. */
@@ -295,7 +295,7 @@ b64_pton(src, target, targsize)
                         * We know this char is an =.  Is there anything but
                         * whitespace after it?
                         */
-                       for (NULL; ch != '\0'; ch = *src++)
+                       for ( ; ch != '\0'; ch = *src++)
                                if (!isspace(ch))
                                        return (-1);
 
index fb51e31..1cae1f7 100644 (file)
@@ -145,7 +145,7 @@ dprintf(msg, num)
                int save = errno;
 
                printf(msg, num);
-               errno = save;
+               __set_errno (save);
        }
 }
 #else
@@ -195,12 +195,12 @@ getanswer(answer, anslen, qname, qtype)
        buflen = sizeof hostbuf;
        cp = answer->buf + HFIXEDSZ;
        if (qdcount != 1) {
-               h_errno = NO_RECOVERY;
+               __set_h_errno (NO_RECOVERY);
                return (NULL);
        }
        n = dn_expand(answer->buf, eom, cp, bp, buflen);
        if ((n < 0) || !(*name_ok)(bp)) {
-               h_errno = NO_RECOVERY;
+               __set_h_errno (NO_RECOVERY);
                return (NULL);
        }
        cp += n + QFIXEDSZ;
@@ -330,7 +330,7 @@ getanswer(answer, anslen, qname, qtype)
                                buflen -= n;
                                map_v4v6_hostent(&host, &bp, &buflen);
                        }
-                       h_errno = NETDB_SUCCESS;
+                       __set_h_errno (NETDB_SUCCESS);
                        return (&host);
 #endif
                case T_A:
@@ -403,11 +403,11 @@ getanswer(answer, anslen, qname, qtype)
                }
                if (_res.options & RES_USE_INET6)
                        map_v4v6_hostent(&host, &bp, &buflen);
-               h_errno = NETDB_SUCCESS;
+               __set_h_errno (NETDB_SUCCESS);
                return (&host);
        }
  try_again:
-       h_errno = TRY_AGAIN;
+       __set_h_errno (TRY_AGAIN);
        return (NULL);
 }
 
@@ -418,7 +418,7 @@ gethostbyname(name)
        struct hostent *hp;
 
        if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
-               h_errno = NETDB_INTERNAL;
+               __set_h_errno (NETDB_INTERNAL);
                return (NULL);
        }
        if (_res.options & RES_USE_INET6) {
@@ -441,7 +441,7 @@ gethostbyname2(name, af)
        extern struct hostent *_gethtbyname2();
 
        if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
-               h_errno = NETDB_INTERNAL;
+               __set_h_errno (NETDB_INTERNAL);
                return (NULL);
        }
 
@@ -455,7 +455,7 @@ gethostbyname2(name, af)
                type = T_AAAA;
                break;
        default:
-               h_errno = NETDB_INTERNAL;
+               __set_h_errno (NETDB_INTERNAL);
                errno = EAFNOSUPPORT;
                return (NULL);
        }
@@ -486,7 +486,7 @@ gethostbyname2(name, af)
                                 * done a lookup.
                                 */
                                if (inet_pton(af, name, host_addr) <= 0) {
-                                       h_errno = HOST_NOT_FOUND;
+                                       __set_h_errno (HOST_NOT_FOUND);
                                        return (NULL);
                                }
                                strncpy(hostbuf, name, MAXDNAME);
@@ -501,7 +501,7 @@ gethostbyname2(name, af)
                                host.h_addr_list = h_addr_ptrs;
                                if (_res.options & RES_USE_INET6)
                                        map_v4v6_hostent(&host, &bp, &len);
-                               h_errno = NETDB_SUCCESS;
+                               __set_h_errno (NETDB_SUCCESS);
                                return (&host);
                        }
                        if (!isdigit(*cp) && *cp != '.')
@@ -518,7 +518,7 @@ gethostbyname2(name, af)
                                 * done a lookup.
                                 */
                                if (inet_pton(af, name, host_addr) <= 0) {
-                                       h_errno = HOST_NOT_FOUND;
+                                       __set_h_errno (HOST_NOT_FOUND);
                                        return (NULL);
                                }
                                strncpy(hostbuf, name, MAXDNAME);
@@ -531,7 +531,7 @@ gethostbyname2(name, af)
                                h_addr_ptrs[0] = (char *)host_addr;
                                h_addr_ptrs[1] = NULL;
                                host.h_addr_list = h_addr_ptrs;
-                               h_errno = NETDB_SUCCESS;
+                               __set_h_errno (NETDB_SUCCESS);
                                return (&host);
                        }
                        if (!isxdigit(*cp) && *cp != ':' && *cp != '.')
@@ -568,7 +568,7 @@ gethostbyaddr(addr, len, af)
        extern struct hostent *_gethtbyaddr();
 
        if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
-               h_errno = NETDB_INTERNAL;
+               __set_h_errno (NETDB_INTERNAL);
                return (NULL);
        }
        if (af == AF_INET6 && len == IN6ADDRSZ &&
@@ -588,13 +588,13 @@ gethostbyaddr(addr, len, af)
                size = IN6ADDRSZ;
                break;
        default:
-               errno = EAFNOSUPPORT;
-               h_errno = NETDB_INTERNAL;
+               __set_errno (EAFNOSUPPORT);
+               __set_h_errno (NETDB_INTERNAL);
                return (NULL);
        }
        if (size != len) {
-               errno = EINVAL;
-               h_errno = NETDB_INTERNAL;
+               __set_errno (EINVAL);
+               __set_h_errno (NETDB_INTERNAL);
                return (NULL);
        }
        switch (af) {
@@ -642,7 +642,7 @@ gethostbyaddr(addr, len, af)
                       "gethostbyaddr: No A record for %s (verifying [%s])",
                       hname2, inet_ntoa(*((struct in_addr *)addr)));
                _res.options = old_options;
-               h_errno = HOST_NOT_FOUND;
+               __set_h_errno (HOST_NOT_FOUND);
                return (NULL);
            }
            _res.options = old_options;
@@ -653,7 +653,7 @@ gethostbyaddr(addr, len, af)
                syslog(LOG_NOTICE|LOG_AUTH,
                       "gethostbyaddr: A record of %s != PTR record [%s]",
                       hname2, inet_ntoa(*((struct in_addr *)addr)));
-               h_errno = HOST_NOT_FOUND;
+               __set_h_errno (HOST_NOT_FOUND);
                return (NULL);
            }
        }
@@ -668,7 +668,7 @@ gethostbyaddr(addr, len, af)
                hp->h_addrtype = AF_INET6;
                hp->h_length = IN6ADDRSZ;
        }
-       h_errno = NETDB_SUCCESS;
+       __set_h_errno (NETDB_SUCCESS);
        return (hp);
 }
 
@@ -700,12 +700,12 @@ _gethtent()
        int af, len;
 
        if (!hostf && !(hostf = fopen(_PATH_HOSTS, "r" ))) {
-               h_errno = NETDB_INTERNAL;
+               __set_h_errno (NETDB_INTERNAL);
                return (NULL);
        }
  again:
        if (!(p = fgets(hostbuf, sizeof hostbuf, hostf))) {
-               h_errno = HOST_NOT_FOUND;
+               __set_h_errno (HOST_NOT_FOUND);
                return (NULL);
        }
        if (*p == '#')
@@ -760,7 +760,7 @@ _gethtent()
 
                map_v4v6_hostent(&host, &bp, &buflen);
        }
-       h_errno = NETDB_SUCCESS;
+       __set_h_errno (NETDB_SUCCESS);
        return (&host);
 }
 
index 8e503da..6f5bf00 100644 (file)
@@ -127,9 +127,9 @@ static      char *net_aliases[MAXALIASES], netbuf[BUFSIZ+1];
        cp = answer->buf + HFIXEDSZ;
        if (!qdcount) {
                if (hp->aa)
-                       h_errno = HOST_NOT_FOUND;
+                       __set_h_errno (HOST_NOT_FOUND);
                else
-                       h_errno = TRY_AGAIN;
+                       __set_h_errno (TRY_AGAIN);
                return (NULL);
        }
        while (qdcount-- > 0)
@@ -197,7 +197,7 @@ static      char *net_aliases[MAXALIASES], netbuf[BUFSIZ+1];
                net_entry.n_aliases++;
                return (&net_entry);
        }
-       h_errno = TRY_AGAIN;
+       __set_h_errno (TRY_AGAIN);
        return (NULL);
 }
 
@@ -267,7 +267,7 @@ getnetbyname(net)
        struct netent *net_entry;
 
        if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
-               h_errno = NETDB_INTERNAL;
+               __set_h_errno (NETDB_INTERNAL);
                return (NULL);
        }
        strcpy(&qbuf[0], net);
index 27908d4..324c01b 100644 (file)
@@ -26,6 +26,7 @@ static const char rcsid[] = "$Id$";
 
 #include <errno.h>
 #include <stdio.h>
+#include <string.h>
 
 #ifdef SPRINTF_CHAR
 # define SPRINTF(x) strlen(sprintf/**/x)
index 1269443..954085f 100644 (file)
@@ -52,6 +52,12 @@ extern int __h_errno;
 
 /* Use a macro to access always the thread specific `h_errno' variable.  */
 #define h_errno (*__h_errno_location ())
+
+/* Retain some binary compatibility with old libraries by having both the
+   global variable and the per-thread variable set on error.  */
+#define __set_h_errno(x) (h_errno = __h_errno = (x))
+#else
+#define __set_h_errno(x) (h_errno = (x))
 #endif
 
 /* Possible values left in `h_errno'.  */
@@ -326,6 +332,31 @@ extern struct protoent *getprotobynumber_r __P ((int __proto,
 #endif /* reentrant */
 
 
+/* Establish network group NETGROUP for enumeration.  */
+extern int setnetgrent __P ((__const char *__netgroup));
+
+/* Free all space allocated by previous `setnetgrent' call.  */
+extern void endnetgrent __P ((void));
+
+/* Get next member of netgroup established by last `setnetgrent' call
+   and return pointers to elements in HOSTP, USERP, and DOMAINP.  */
+extern int getnetgrent __P ((char **__hostp, char **__userp,
+                            char **__domainp));
+
+/* Test whether NETGROUP contains the triple (HOST,USER,DOMAIN).  */
+extern int innetgr __P ((__const char *__netgroup, __const char *__host,
+                        __const char *__user, __const char *domain));
+
+#ifdef __USE_REENTRANT
+/* Reentrant version of `getnetgrent' where result is placed in BUFFER.  */
+extern int __getnetgrent_r __P ((char **__hostp, char **__userp,
+                                char **__domainp,
+                                char *__buffer, int __buflen));
+extern int getnetgrent_r __P ((char **__hostp, char **__userp,
+                              char **__domainp,
+                              char *__buffer, int __buflen));
+#endif
+
 __END_DECLS
 
 #endif /* netdb.h */
index 842e63c..cc6f84f 100644 (file)
@@ -496,7 +496,7 @@ __p_rr(cp, msg, file)
        char base64_key[MAX_KEY_BASE64];
 
        if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
-               h_errno = NETDB_INTERNAL;
+               __set_h_errno (NETDB_INTERNAL);
                return (NULL);
        }
        cp = __p_fqnname(cp, msg, MAXCDNAME, rrname, sizeof rrname);
index 505c391..d894a8b 100644 (file)
@@ -97,7 +97,7 @@ res_mkquery(op, dname, class, type, data, datalen, newrr_in, buf, buflen)
        u_char *dnptrs[20], **dpp, **lastdnptr;
 
        if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
-               h_errno = NETDB_INTERNAL;
+               __set_h_errno (NETDB_INTERNAL);
                return (-1);
        }
 #ifdef DEBUG
index ac50a9c..3ddeb20 100644 (file)
@@ -113,7 +113,7 @@ res_query(name, class, type, answer, anslen)
        hp->rcode = NOERROR;    /* default */
 
        if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
-               h_errno = NETDB_INTERNAL;
+               __set_h_errno (NETDB_INTERNAL);
                return (-1);
        }
 #ifdef DEBUG
@@ -128,7 +128,7 @@ res_query(name, class, type, answer, anslen)
                if (_res.options & RES_DEBUG)
                        printf(";; res_query: mkquery failed\n");
 #endif
-               h_errno = NO_RECOVERY;
+               __set_h_errno (NO_RECOVERY);
                return (n);
        }
        n = res_send(buf, n, answer, anslen);
@@ -137,7 +137,7 @@ res_query(name, class, type, answer, anslen)
                if (_res.options & RES_DEBUG)
                        printf(";; res_query: send error\n");
 #endif
-               h_errno = TRY_AGAIN;
+               __set_h_errno (TRY_AGAIN);
                return (n);
        }
 
@@ -149,19 +149,19 @@ res_query(name, class, type, answer, anslen)
 #endif
                switch (hp->rcode) {
                case NXDOMAIN:
-                       h_errno = HOST_NOT_FOUND;
+                       __set_h_errno (HOST_NOT_FOUND);
                        break;
                case SERVFAIL:
-                       h_errno = TRY_AGAIN;
+                       __set_h_errno (TRY_AGAIN);
                        break;
                case NOERROR:
-                       h_errno = NO_DATA;
+                       __set_h_errno (NO_DATA);
                        break;
                case FORMERR:
                case NOTIMP:
                case REFUSED:
                default:
-                       h_errno = NO_RECOVERY;
+                       __set_h_errno (NO_RECOVERY);
                        break;
                }
                return (-1);
@@ -189,11 +189,11 @@ res_search(name, class, type, answer, anslen)
        int got_nodata = 0, got_servfail = 0, tried_as_is = 0;
 
        if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
-               h_errno = NETDB_INTERNAL;
+               __set_h_errno (NETDB_INTERNAL);
                return (-1);
        }
        __set_errno (0);
-       h_errno = HOST_NOT_FOUND;       /* default, if we never query */
+       __set_h_errno (HOST_NOT_FOUND); /* default, if we never query */
        dots = 0;
        for (cp = name; *cp; cp++)
                dots += (*cp == '.');
@@ -253,7 +253,7 @@ res_search(name, class, type, answer, anslen)
                         * fully-qualified.
                         */
                        if (errno == ECONNREFUSED) {
-                               h_errno = TRY_AGAIN;
+                               __set_h_errno (TRY_AGAIN);
                                return (-1);
                        }
 
@@ -302,11 +302,11 @@ res_search(name, class, type, answer, anslen)
         * the last DNSRCH we did.
         */
        if (saved_herrno != -1)
-               h_errno = saved_herrno;
+               __set_h_errno (saved_herrno);
        else if (got_nodata)
-               h_errno = NO_DATA;
+               __set_h_errno (NO_DATA);
        else if (got_servfail)
-               h_errno = TRY_AGAIN;
+               __set_h_errno (TRY_AGAIN);
        return (-1);
 }
 
@@ -326,7 +326,7 @@ res_querydomain(name, domain, class, type, answer, anslen)
        int n;
 
        if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
-               h_errno = NETDB_INTERNAL;
+               __set_h_errno (NETDB_INTERNAL);
                return (-1);
        }
 #ifdef DEBUG
index 7e78547..518398e 100644 (file)
@@ -23,6 +23,7 @@ Cambridge, MA 02139, USA.  */
 
 #ifdef USE_IN_LIBIO
 # include "../libio/libioP.h"
+# undef ssize_t
 # define ssize_t _IO_ssize_t
 # define __getdelim _IO_getdelim
 #endif
index 2cb086d..519eec2 100644 (file)
@@ -26,6 +26,9 @@ printf_arginfo_function *__printf_arginfo_table[UCHAR_MAX + 1];
 
 printf_function **__printf_function_table;
 
+int __register_printf_function __P ((int, printf_function,
+                                     printf_arginfo_function));
+
 /* Register FUNC to be called to format SPEC specifiers.  */
 int
 __register_printf_function (spec, converter, arginfo)
index 8e9b90f..29c9efb 100644 (file)
@@ -23,6 +23,7 @@ Cambridge, MA 02139, USA.  */
    use the protected form here.  In stdio it is called `__vscanf' and
    in libio `_IO_vscanf'.  */
 #ifdef USE_IN_LIBIO
+# include <libioP.h>
 # define VSCANF _IO_vscanf
 #else
 # define VSCANF __vscanf
index 44397bc..0f2199e 100644 (file)
@@ -29,7 +29,7 @@ tmpnam (char *s)
   /* By using two buffers we manage to be thread safe in the case
      where S != NULL.  */
   static char buf[L_tmpnam];
-  char *tmpbuf[L_tmpnam];
+  char tmpbuf[L_tmpnam];
   char *result;
 
   /* In the following call we use the buffer pointed to by S if
index a35be27..a76317e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995, 1996 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
@@ -16,15 +16,15 @@ License along with the GNU C Library; see the file COPYING.LIB.  If
 not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
-#include <ansidecl.h>
 #include <stdio.h>
 
 #ifdef USE_IN_LIBIO
+# undef ssize_t
 # define ssize_t _IO_ssize_t
 #endif
 
 int
-DEFUN_VOID(main)
+main ()
 {
   char *buf = NULL;
   size_t size = 0;
index f47eaa2..7714c0e 100644 (file)
@@ -87,6 +87,7 @@ ssize_t __wprintf_pad __P ((FILE *, wchar_t pad, size_t n));
 # define PUTC(C, F)    _IO_putc_unlocked (C, F)
 # define vfprintf      _IO_vfprintf
 # define FILE          _IO_FILE
+# undef va_list
 # define va_list       _IO_va_list
 # undef        BUFSIZ
 # define BUFSIZ                _IO_BUFSIZ
index ee2c922..5564e2b 100644 (file)
@@ -51,6 +51,7 @@ Cambridge, MA 02139, USA.  */
 # include <libioP.h>
 # include <libio.h>
 
+# undef va_list
 # define va_list       _IO_va_list
 # define ungetc(c, s)  (--read_in, _IO_ungetc (c, s))
 # define inchar()      ((c = _IO_getc_unlocked (s)), (void) ++read_in, c)