]>
git.saurik.com Git - apple/libinfo.git/blob - dns.subproj/herror.c
   2  * Copyright (c) 2018 Apple Inc. All rights reserved. 
   5  * ++Copyright++ 1987, 1993 
   7  * Copyright (c) 1987, 1993 
   8  *    The Regents of the University of California.  All rights reserved. 
  10  * Redistribution and use in source and binary forms, with or without 
  11  * modification, are permitted provided that the following conditions 
  13  * 1. Redistributions of source code must retain the above copyright 
  14  *    notice, this list of conditions and the following disclaimer. 
  15  * 2. Redistributions in binary form must reproduce the above copyright 
  16  *    notice, this list of conditions and the following disclaimer in the 
  17  *    documentation and/or other materials provided with the distribution. 
  18  * 3. All advertising materials mentioning features or use of this software 
  19  *    must display the following acknowledgement: 
  20  *      This product includes software developed by the University of 
  21  *      California, Berkeley and its contributors. 
  22  * 4. Neither the name of the University nor the names of its contributors 
  23  *    may be used to endorse or promote products derived from this software 
  24  *    without specific prior written permission. 
  26  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 
  27  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
  28  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
  29  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 
  30  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
  31  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
  32  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
  33  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
  34  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
  35  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
  38  * Portions Copyright (c) 1993 by Digital Equipment Corporation. 
  40  * Permission to use, copy, modify, and distribute this software for any 
  41  * purpose with or without fee is hereby granted, provided that the above 
  42  * copyright notice and this permission notice appear in all copies, and that 
  43  * the name of Digital Equipment Corporation not be used in advertising or 
  44  * publicity pertaining to distribution of the document or software without 
  45  * specific, written prior permission. 
  47  * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL 
  48  * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES 
  49  * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT 
  50  * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 
  51  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 
  52  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 
  53  * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 
  59 #if defined(LIBC_SCCS) && !defined(lint) 
  60 static char sccsid
[] = "@(#)herror.c    8.1 (Berkeley) 6/4/93"; 
  61 static char rcsid
[] = "$Id: herror.c,v 1.4 2003/04/10 20:21:16 majka Exp $"; 
  62 #endif /* LIBC_SCCS and not lint */ 
  64 #include "libinfo_common.h" 
  66 #include <sys/param.h> 
  72 const char * const h_errlist
[] = { 
  73         "Resolver Error 0 (no error)", 
  74         "Unknown host",                         /* 1 HOST_NOT_FOUND */ 
  75         "Host name lookup failure",             /* 2 TRY_AGAIN */ 
  76         "Unknown server error",                 /* 3 NO_RECOVERY */ 
  77         "No address associated with name",      /* 4 NO_ADDRESS */ 
  79 const int h_nerr 
= { sizeof h_errlist 
/ sizeof h_errlist
[0] }; 
  86  *      print the error indicated by the h_errno value. 
  93         register struct iovec 
*v 
= iov
; 
  96                 v
->iov_base 
= (char *)s
; 
  97                 v
->iov_len 
= strlen(s
); 
 103         v
->iov_base 
= (char *)hstrerror(h_errno
); 
 104         v
->iov_len 
= strlen(v
->iov_base
); 
 108         writev(STDERR_FILENO
, iov
, (v 
- iov
) + 1); 
 116                 return ("Resolver internal error"); 
 117         else if (err 
< h_nerr
) 
 118                 return ((char *)h_errlist
[err
]); 
 119         return ("Unknown resolver error");