2 * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
3 * Copyright (c) 1996,1999 by Internet Software Consortium.
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
9 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
15 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 * $Id: gen_p.h,v 1.3 2005/04/27 04:56:23 sra Exp $
24 * We hope to create a complete set of thread-safe entry points someday,
25 * which will mean a set of getXbyY() functions that take as an argument
26 * a pointer to the map class, which will have a pointer to the private
27 * data, which will be used preferentially to the static variables that
28 * are necessary to support the "classic" interface. This "classic"
29 * interface will then be reimplemented as stubs on top of the thread
30 * safe modules, and will keep the map class pointers as their only
31 * static data. HOWEVER, we are not there yet. So while we will call
32 * the just-barely-converted map class methods with map class pointers,
33 * right now they probably all still use statics. We're not fooling
34 * anybody, and we're not trying to (yet).
37 #ifndef _GEN_P_H_INCLUDED
38 #define _GEN_P_H_INCLUDED
41 * These are the access methods.
44 irs_lcl
, /*%< Local. */
45 irs_dns
, /*%< DNS or Hesiod. */
46 irs_nis
, /*%< Sun NIS ("YP"). */
47 irs_irp
, /*%< IR protocol. */
52 * These are the map types.
55 irs_gr
, /*%< "group" */
56 irs_pw
, /*%< "passwd" */
57 irs_sv
, /*%< "services" */
58 irs_pr
, /*%< "protocols" */
59 irs_ho
, /*%< "hosts" */
60 irs_nw
, /*%< "networks" */
61 irs_ng
, /*%< "netgroup" */
66 * This is an accessor instance.
80 * This is a search rule for some map type.
83 struct irs_rule
* next
;
84 struct irs_inst
* inst
;
87 #define IRS_MERGE 0x0001 /*%< Don't stop if acc. has data? */
88 #define IRS_CONTINUE 0x0002 /*%< Don't stop if acc. has no data? */
90 * This is the private data for a search access class.
94 struct irs_rule
* map_rules
[(int)irs_nmap
];
95 struct irs_inst accessors
[(int)irs_nacc
];
96 struct __res_state
* res
;
97 void (*free_res
) __P((void *));
104 extern struct irs_acc
* irs_gen_acc
__P((const char *, const char *conf_file
));
105 extern struct irs_gr
* irs_gen_gr
__P((struct irs_acc
*));
106 extern struct irs_pw
* irs_gen_pw
__P((struct irs_acc
*));
107 extern struct irs_sv
* irs_gen_sv
__P((struct irs_acc
*));
108 extern struct irs_pr
* irs_gen_pr
__P((struct irs_acc
*));
109 extern struct irs_ho
* irs_gen_ho
__P((struct irs_acc
*));
110 extern struct irs_nw
* irs_gen_nw
__P((struct irs_acc
*));
111 extern struct irs_ng
* irs_gen_ng
__P((struct irs_acc
*));
113 #endif /*_IRS_P_H_INCLUDED*/