home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / network / resolv_1 / h / resolv
Text File  |  1994-08-07  |  3KB  |  84 lines

  1. /*
  2.  * Copyright (c) 1983, 1987, 1989 The 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.  *    @(#)resolv.h    5.10 (Berkeley) 6/1/90
  20.  */
  21. #define u_short short
  22. #define u_long  long
  23.  
  24. /*
  25.  * Error return codes from gethostbyname() and gethostbyaddr()
  26.  * (left in extern int h_errno).
  27.  */
  28.  
  29. #define    HOST_NOT_FOUND    1 /* Authoritative Answer Host not found */
  30. #define    TRY_AGAIN    2 /* Non-Authoritive Host not found, or SERVERFAIL */
  31. #define    NO_RECOVERY    3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
  32. #define    NO_DATA        4 /* Valid name, no data record of requested type */
  33. #define    NO_ADDRESS    NO_DATA        /* no address, look for MX record */
  34.  
  35. /*
  36.  * Global defines and variables for resolver stub.
  37.  */
  38. #define    MAXNS        3        /* max # name servers we'll track */
  39. #define    MAXDFLSRCH    3        /* # default domain levels to try */
  40. #define    MAXDNSRCH    6        /* max # domains in search path */
  41. #define MAXDNAME    256        /* maximum domain name */
  42. #define    LOCALDOMAINPARTS 2        /* min levels in name that is "local" */
  43.  
  44. #define    RES_TIMEOUT    5        /* min. seconds between retries */
  45.  
  46. struct state {
  47.     int    retrans;         /* retransmition time interval */
  48.     int    retry;            /* number of times to retransmit */
  49.     long    options;        /* option flags - see below. */
  50.     int    nscount;        /* number of name servers */
  51.     struct    sockaddr_in nsaddr_list[MAXNS];    /* address of name server */
  52. #define    nsaddr    nsaddr_list[0]        /* for backward compatibility */
  53.     u_short    id;            /* current packet id */
  54.     char    defdname[MAXDNAME];    /* default domain */
  55.     char    *dnsrch[MAXDNSRCH+1];    /* components of domain to search */
  56. };
  57.  
  58. /*
  59.  * Resolver options
  60.  */
  61. #define RES_INIT    0x0001        /* address initialized */
  62. #define RES_DEBUG    0x0002        /* print debug messages */
  63. #define RES_AAONLY    0x0004        /* authoritative answers only */
  64. #define RES_USEVC    0x0008        /* use virtual circuit */
  65. #define RES_PRIMARY    0x0010        /* query primary server only */
  66. #define RES_IGNTC    0x0020        /* ignore trucation errors */
  67. #define RES_RECURSE    0x0040        /* recursion desired */
  68. #define RES_DEFNAMES    0x0080        /* use default domain name */
  69. #define RES_STAYOPEN    0x0100        /* Keep TCP socket open */
  70. #define RES_DNSRCH    0x0200        /* search up local domain tree */
  71.  
  72. #define RES_DEFAULT    (RES_RECURSE | RES_DEFNAMES | RES_DNSRCH)
  73.  
  74. extern struct state _res;
  75.  
  76. extern char *p_cdname(char *, char *, FILE *);
  77. extern char *p_rr(char *, char *, FILE *);
  78. extern char *p_type(int);
  79. extern char *p_class(int);
  80. extern char *p_time(u_long);
  81.  
  82. extern struct hostent *_gethostbyname(char *);
  83. extern struct hostent *_gethostbyaddr(char *, int, int);
  84.