diff options
Diffstat (limited to 'lib/libc/net/herror.c')
-rw-r--r-- | lib/libc/net/herror.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/lib/libc/net/herror.c b/lib/libc/net/herror.c index 0366b04..f22f519 100644 --- a/lib/libc/net/herror.c +++ b/lib/libc/net/herror.c @@ -31,14 +31,14 @@ * SUCH DAMAGE. * - * Portions Copyright (c) 1993 by Digital Equipment Corporation. - * + * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies, and that * the name of Digital Equipment Corporation not be used in advertising or * publicity pertaining to distribution of the document or software without * specific, written prior permission. - * + * * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT @@ -53,7 +53,7 @@ #if defined(LIBC_SCCS) && !defined(lint) static char sccsid[] = "@(#)herror.c 8.1 (Berkeley) 6/4/93"; -static char rcsid[] = "$Id: herror.c,v 4.9.1.1 1993/05/02 23:14:35 vixie Rel $"; +static char rcsid[] = "$Id$"; #endif /* LIBC_SCCS and not lint */ #include <sys/types.h> @@ -62,14 +62,14 @@ static char rcsid[] = "$Id: herror.c,v 4.9.1.1 1993/05/02 23:14:35 vixie Rel $"; #include <unistd.h> #include <string.h> -char *h_errlist[] = { - "Error 0", +const char *h_errlist[] = { + "Resolver Error 0 (no error)", "Unknown host", /* 1 HOST_NOT_FOUND */ "Host name lookup failure", /* 2 TRY_AGAIN */ "Unknown server error", /* 3 NO_RECOVERY */ "No address associated with name", /* 4 NO_ADDRESS */ }; -int h_nerr = { sizeof(h_errlist)/sizeof(h_errlist[0]) }; +int h_nerr = { sizeof h_errlist / sizeof h_errlist[0] }; extern int h_errno; @@ -92,8 +92,7 @@ herror(s) v->iov_len = 2; v++; } - v->iov_base = (u_int)h_errno < h_nerr ? - h_errlist[h_errno] : "Unknown error"; + v->iov_base = (char *)hstrerror(h_errno); v->iov_len = strlen(v->iov_base); v++; v->iov_base = "\n"; @@ -101,9 +100,13 @@ herror(s) writev(STDERR_FILENO, iov, (v - iov) + 1); } -char * +const char * hstrerror(err) int err; { - return (u_int)err < h_nerr ? h_errlist[err] : "Unknown resolver error"; + if (err < 0) + return ("Resolver internal error"); + else if (err < h_nerr) + return (h_errlist[err]); + return ("Unknown resolver error"); } |