Initial revision
[kopensolaris-gnu/glibc.git] / resolv / resolv.h
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
22 /*
23  * Resolver configuration file.
24  * Normally not present, but may contain the address of the
25  * inital name server(s) to query and the domain search list.
26  */
27
28 #ifndef _PATH_RESCONF
29 #define _PATH_RESCONF        "/etc/resolv.conf"
30 #endif
31
32 /*
33  * Global defines and variables for resolver stub.
34  */
35 #define MAXNS           3               /* max # name servers we'll track */
36 #define MAXDFLSRCH      3               /* # default domain levels to try */
37 #define MAXDNSRCH       6               /* max # domains in search path */
38 #define LOCALDOMAINPARTS 2              /* min levels in name that is "local" */
39
40 #define RES_TIMEOUT     5               /* min. seconds between retries */
41
42 struct state {
43         int     retrans;                /* retransmition time interval */
44         int     retry;                  /* number of times to retransmit */
45         long    options;                /* option flags - see below. */
46         int     nscount;                /* number of name servers */
47         struct  sockaddr_in nsaddr_list[MAXNS]; /* address of name server */
48 #define nsaddr  nsaddr_list[0]          /* for backward compatibility */
49         u_short id;                     /* current packet id */
50         char    defdname[MAXDNAME];     /* default domain */
51         char    *dnsrch[MAXDNSRCH+1];   /* components of domain to search */
52 };
53
54 /*
55  * Resolver options
56  */
57 #define RES_INIT        0x0001          /* address initialized */
58 #define RES_DEBUG       0x0002          /* print debug messages */
59 #define RES_AAONLY      0x0004          /* authoritative answers only */
60 #define RES_USEVC       0x0008          /* use virtual circuit */
61 #define RES_PRIMARY     0x0010          /* query primary server only */
62 #define RES_IGNTC       0x0020          /* ignore trucation errors */
63 #define RES_RECURSE     0x0040          /* recursion desired */
64 #define RES_DEFNAMES    0x0080          /* use default domain name */
65 #define RES_STAYOPEN    0x0100          /* Keep TCP socket open */
66 #define RES_DNSRCH      0x0200          /* search up local domain tree */
67
68 #define RES_DEFAULT     (RES_RECURSE | RES_DEFNAMES | RES_DNSRCH)
69
70 extern struct state _res;
71 extern char *p_cdname(), *p_rr(), *p_type(), *p_class(), *p_time();