home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / NETWORK / ISP / bind.4.8.3.lzh / BIND483 / RES / herror.c.org < prev    next >
Text File  |  1994-02-01  |  2KB  |  64 lines

  1. /*
  2.  * Copyright (c) 1987 Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms are permitted
  6.  * provided that: (1) source distributions retain this entire copyright
  7.  * notice and comment, and (2) distributions including binaries display
  8.  * the following acknowledgement:  ``This product includes software
  9.  * developed by the University of California, Berkeley and its contributors''
  10.  * in the documentation or other materials provided with the distribution
  11.  * and in all advertising materials mentioning features or use of this
  12.  * software. Neither the name of the University nor the names of its
  13.  * contributors may be used to endorse or promote products derived
  14.  * from this software without specific prior written permission.
  15.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  16.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  17.  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  18.  */
  19.  
  20. #if defined(LIBC_SCCS) && !defined(lint)
  21. static char sccsid[] = "@(#)herror.c    6.5 (Berkeley) 6/1/90";
  22. #endif /* LIBC_SCCS and not lint */
  23.  
  24. #include <types.h>
  25. #include <uio.h>
  26.  
  27. char    *h_errlist[] = {
  28.     "Error 0",
  29.     "Unknown host",                /* 1 HOST_NOT_FOUND */
  30.     "Host name lookup failure",        /* 2 TRY_AGAIN */
  31.     "Unknown server error",            /* 3 NO_RECOVERY */
  32.     "No address associated with name",    /* 4 NO_ADDRESS */
  33. };
  34. int    h_nerr = { sizeof(h_errlist)/sizeof(h_errlist[0]) };
  35.  
  36. extern int    h_errno;
  37.  
  38. /*
  39.  * herror --
  40.  *    print the error indicated by the h_errno value.
  41.  */
  42. herror(s)
  43.     char *s;
  44. {
  45.     struct iovec iov[4];
  46.     register struct iovec *v = iov;
  47.  
  48.     if (s && *s) {
  49.         v->iov_base = s;
  50.         v->iov_len = strlen(s);
  51.         v++;
  52.         v->iov_base = ": ";
  53.         v->iov_len = 2;
  54.         v++;
  55.     }
  56.     v->iov_base = (u_int)h_errno < h_nerr ?
  57.         h_errlist[h_errno] : "Unknown error";
  58.     v->iov_len = strlen(v->iov_base);
  59.     v++;
  60.     v->iov_base = "\n";
  61.     v->iov_len = 1;
  62.     writev(2, iov, (v - iov) + 1);
  63. }
  64.