gen_p.h (7c478bd95313f5f23a4c958a745db2134aa03244) gen_p.h (9525b14bcdeb5b5f6f95ab27c2f48f18bd2ec829)
1/*
1/*
2 * Copyright 1997-2002 Sun Microsystems, Inc. All rights reserved.
3 * Use is subject to license terms.
4 */
5
6/*
2 * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
7 * Copyright (c) 1996,1999 by Internet Software Consortium.
8 *
9 * Permission to use, copy, modify, and distribute this software for any
10 * purpose with or without fee is hereby granted, provided that the above
11 * copyright notice and this permission notice appear in all copies.
12 *
3 * Copyright (c) 1996,1999 by Internet Software Consortium.
4 *
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.
8 *
13 * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
14 * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
15 * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
16 * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
17 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
18 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
19 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
20 * SOFTWARE.
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.
21 */
22
16 */
17
23#pragma ident "%Z%%M% %I% %E% SMI"
24
25/*
18/*
26 * $Id: gen_p.h,v 1.11 2001/05/29 05:48:39 marka Exp $
19 * $Id: gen_p.h,v 1.3 2005/04/27 04:56:23 sra Exp $
27 */
28
20 */
21
29/* Notes:
22/*! \file
23 * Notes:
30 * We hope to create a complete set of thread-safe entry points someday,
31 * which will mean a set of getXbyY() functions that take as an argument
32 * a pointer to the map class, which will have a pointer to the private
33 * data, which will be used preferentially to the static variables that
34 * are necessary to support the "classic" interface. This "classic"
35 * interface will then be reimplemented as stubs on top of the thread
36 * safe modules, and will keep the map class pointers as their only
37 * static data. HOWEVER, we are not there yet. So while we will call
38 * the just-barely-converted map class methods with map class pointers,
39 * right now they probably all still use statics. We're not fooling
40 * anybody, and we're not trying to (yet).
41 */
42
43#ifndef _GEN_P_H_INCLUDED
44#define _GEN_P_H_INCLUDED
45
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).
35 */
36
37#ifndef _GEN_P_H_INCLUDED
38#define _GEN_P_H_INCLUDED
39
46/*
40/*%
47 * These are the access methods.
48 */
49enum irs_acc_id {
41 * These are the access methods.
42 */
43enum irs_acc_id {
50 irs_lcl, /* Local. */
51 irs_dns, /* DNS or Hesiod. */
52 irs_nis, /* Sun NIS ("YP"). */
53 irs_irp, /* IR protocol. */
44 irs_lcl, /*%< Local. */
45 irs_dns, /*%< DNS or Hesiod. */
46 irs_nis, /*%< Sun NIS ("YP"). */
47 irs_irp, /*%< IR protocol. */
54 irs_nacc
55};
56
48 irs_nacc
49};
50
57/*
51/*%
58 * These are the map types.
59 */
60enum irs_map_id {
52 * These are the map types.
53 */
54enum irs_map_id {
61 irs_gr, /* "group" */
62 irs_pw, /* "passwd" */
63 irs_sv, /* "services" */
64 irs_pr, /* "protocols" */
65 irs_ho, /* "hosts" */
66 irs_nw, /* "networks" */
67 irs_ng, /* "netgroup" */
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" */
68 irs_nmap
69};
70
62 irs_nmap
63};
64
71/*
65/*%
72 * This is an accessor instance.
73 */
74struct irs_inst {
75 struct irs_acc *acc;
76 struct irs_gr * gr;
77 struct irs_pw * pw;
78 struct irs_sv * sv;
79 struct irs_pr * pr;
80 struct irs_ho * ho;
81 struct irs_nw * nw;
82 struct irs_ng * ng;
83};
84
66 * This is an accessor instance.
67 */
68struct irs_inst {
69 struct irs_acc *acc;
70 struct irs_gr * gr;
71 struct irs_pw * pw;
72 struct irs_sv * sv;
73 struct irs_pr * pr;
74 struct irs_ho * ho;
75 struct irs_nw * nw;
76 struct irs_ng * ng;
77};
78
85/*
79/*%
86 * This is a search rule for some map type.
87 */
88struct irs_rule {
89 struct irs_rule * next;
90 struct irs_inst * inst;
91 int flags;
92};
80 * This is a search rule for some map type.
81 */
82struct irs_rule {
83 struct irs_rule * next;
84 struct irs_inst * inst;
85 int flags;
86};
93#define IRS_MERGE 0x0001 /* Don't stop if acc. has data? */
94#define IRS_CONTINUE 0x0002 /* Don't stop if acc. has no data? */
95
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? */
96/*
97 * This is the private data for a search access class.
98 */
99struct gen_p {
100 char * options;
101 struct irs_rule * map_rules[(int)irs_nmap];
102 struct irs_inst accessors[(int)irs_nacc];
103 struct __res_state * res;

--- 17 unchanged lines hidden ---
89/*
90 * This is the private data for a search access class.
91 */
92struct gen_p {
93 char * options;
94 struct irs_rule * map_rules[(int)irs_nmap];
95 struct irs_inst accessors[(int)irs_nacc];
96 struct __res_state * res;

--- 17 unchanged lines hidden ---