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