]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - resolv/herror.c
tunables: report sbrk() failure
[thirdparty/glibc.git] / resolv / herror.c
index d53a0b5b0eb2c9ffe85dc2eb5bdba02d0147476e..45c0a5dbdaf6eb1c5751ea88be2079c59d181077 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (c) 1987, 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:
@@ -13,7 +13,7 @@
  * 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
  * SOFTWARE.
  */
 
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sccsid[] = "@(#)herror.c     8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$BINDId: herror.c,v 8.11 1999/10/13 16:39:39 vixie Exp $";
-#endif /* LIBC_SCCS and not lint */
-
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/uio.h>
@@ -62,15 +57,16 @@ static const char rcsid[] = "$BINDId: herror.c,v 8.11 1999/10/13 16:39:39 vixie
 #include <unistd.h>
 
 #include <libintl.h>
+#include <not-cancel.h>
 
-const char *h_errlist[] = {
+const char *const h_errlist[] = {
        N_("Resolver Error 0 (no error)"),
        N_("Unknown host"),                     /* 1 HOST_NOT_FOUND */
        N_("Host name lookup failure"),         /* 2 TRY_AGAIN */
        N_("Unknown server error"),             /* 3 NO_RECOVERY */
        N_("No address associated with name"),  /* 4 NO_ADDRESS */
 };
-int    h_nerr = { sizeof h_errlist / sizeof h_errlist[0] };
+const int      h_nerr = { sizeof h_errlist / sizeof h_errlist[0] };
 
 /*
  * herror --
@@ -79,22 +75,21 @@ int h_nerr = { sizeof h_errlist / sizeof h_errlist[0] };
 void
 herror(const char *s) {
        struct iovec iov[4], *v = iov;
-       extern int * __h_errno();
 
        if (s != NULL && *s != '\0') {
                v->iov_base = (/*noconst*/ char *)s;
                v->iov_len = strlen(s);
                v++;
-               v->iov_base = ": ";
+               v->iov_base = (char *) ": ";
                v->iov_len = 2;
                v++;
        }
        v->iov_base = (char *)hstrerror(h_errno);
        v->iov_len = strlen(v->iov_base);
        v++;
-       v->iov_base = "\n";
+       v->iov_base = (char *) "\n";
        v->iov_len = 1;
-       __writev(STDERR_FILENO, iov, (v - iov) + 1);
+       __writev_nocancel_nostatus(STDERR_FILENO, iov, (v - iov) + 1);
 }
 
 /*
@@ -109,3 +104,4 @@ hstrerror(int err) {
                return _(h_errlist[err]);
        return _("Unknown resolver error");
 }
+libc_hidden_def (hstrerror)