xref: /netbsd-src/external/bsd/libbind/dist/tests/res.h (revision 5bbd2a12505d72a8177929a37b5cee489d0a1cfd)
1 /*	$NetBSD: res.h,v 1.1.1.2 2012/09/09 16:08:11 christos Exp $	*/
2 
3 /*
4  * Copyright (C) 2009  Internet Systems Consortium, Inc. ("ISC")
5  *
6  * Permission to use, copy, modify, and/or distribute this software for any
7  * purpose with or without fee is hereby granted, provided that the above
8  * copyright notice and this permission notice appear in all copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
11  * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
12  * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
13  * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
14  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
15  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 /*
20  *	@(#)res.h	5.10 (Berkeley) 6/1/90
21  *	Id: res.h,v 1.3 2009/03/03 23:49:07 tbox Exp
22  */
23 
24 /*
25  *******************************************************************************
26  *
27  *  res.h --
28  *
29  *	Definitions used by modules of the name server lookup program.
30  *
31  *	Copyright (c) 1985
32  *	Andrew Cherenson
33  *	U.C. Berkeley
34  *	CS298-26  Fall 1985
35  *
36  *******************************************************************************
37  */
38 
39 #define TRUE	1
40 #define FALSE	0
41 typedef int Boolean;
42 
43 #define MAXALIASES	35
44 #define MAXADDRS	35
45 #define MAXDOMAINS	35
46 #define MAXSERVERS	10
47 
48 /*
49  *  Define return statuses in addtion to the ones defined in namserv.h
50  *   let SUCCESS be a synonym for NOERROR
51  *
52  *	TIME_OUT	- a socket connection timed out.
53  *	NO_INFO		- the server didn't find any info about the host.
54  *	ERROR		- one of the following types of errors:
55  *			   dn_expand, res_mkquery failed
56  *			   bad command line, socket operation failed, etc.
57  *	NONAUTH		- the server didn't have the desired info but
58  *			  returned the name(s) of some servers who should.
59  *	NO_RESPONSE	- the server didn't respond.
60  *
61  */
62 
63 #ifdef ERROR
64 #undef ERROR
65 #endif
66 
67 #define  SUCCESS		0
68 #define  TIME_OUT		-1
69 #define  NO_INFO		-2
70 #define  ERROR			-3
71 #define  NONAUTH		-4
72 #define  NO_RESPONSE		-5
73 
74 /*
75  *  Define additional options for the resolver state structure.
76  *
77  *   RES_DEBUG2		more verbose debug level
78  */
79 
80 #define RES_DEBUG2	0x00400000
81 
82 /*
83  *  Maximum length of server, host and file names.
84  */
85 
86 #define NAME_LEN 256
87 
88 
89 /*
90  * Modified struct hostent from <netdb.h>
91  *
92  * "Structures returned by network data base library.  All addresses
93  * are supplied in host order, and returned in network order (suitable
94  * for use in system calls)."
95  */
96 
97 typedef struct {
98 	int     addrType;
99 	int     addrLen;
100 	char    *addr;
101 } AddrInfo;
102 
103 typedef struct	{
104 	char	*name;		/* official name of host */
105 	char	**domains;	/* domains it serves */
106 	AddrInfo **addrList;	/* list of addresses from name server */
107 } ServerInfo;
108 
109 typedef struct	{
110 	char	*name;		/* official name of host */
111 	char	**aliases;	/* alias list */
112 	AddrInfo **addrList;	/* list of addresses from name server */
113 	ServerInfo **servers;
114 } HostInfo;
115 
116 /*
117  *  External routines:
118  */
119 
120 extern int pickString(const char *, char *, size_t);
121 extern int matchString(const char *, const char *);
122 extern int StringToType(char *, int, FILE *);
123 extern int StringToClass(char *, int, FILE *);
124 
125