|
|
1.1 root 1: /* attrvalue.h - */
2:
3: /*
4: * $Header: /f/osi/h/quipu/RCS/attrvalue.h,v 7.0 89/11/23 21:56:22 mrose Rel $
5: *
6: *
7: *
8: * $Log: attrvalue.h,v $
9: * Revision 7.0 89/11/23 21:56:22 mrose
10: * Release 6.0
11: *
12: */
13:
14: /*
15: * NOTICE
16: *
17: * Acquisition, use, and distribution of this module and related
18: * materials are subject to the restrictions of a license agreement.
19: * Consult the Preface in the User's Manual for the full terms of
20: * this agreement.
21: *
22: */
23:
24:
25: #ifndef ATTRVALUE
26: #define ATTRVALUE
27: #include "quipu/name.h"
28:
29: typedef struct avseqcomp { /* attribute may have multiple values */
30: /* respresents SET OF AttributeValue */
31: attrVal avseq_av;
32: struct avseqcomp *avseq_next;
33: } avseqcomp, *AV_Sequence;
34:
35: #define NULLAV ((AV_Sequence) 0)
36: #define avs_comp_alloc() (AV_Sequence) smalloc(sizeof(avseqcomp))
37:
38: #define avs_cmp_comp(x,y) AttrV_cmp (&x->avseq_av ,&y->avseq_av)
39: AV_Sequence avs_comp_new ();
40: AV_Sequence avs_comp_cpy ();
41: AV_Sequence avs_cpy ();
42: AV_Sequence avs_merge ();
43: AV_Sequence str2avs ();
44:
45: typedef struct attrcomp { /* A sequence of attributes */
46: /* represents Attribute */
47: /* and SET OF Attribute */
48: attrType attr_type;
49: AV_Sequence attr_value;
50: struct attrcomp *attr_link;
51: /* ACL is NOT for use by DUA */
52: /* this must be done by use of ACL */
53: /* attribute */
54: struct acl_info *attr_acl;
55: } attrcomp, *Attr_Sequence;
56:
57: #define NULLATTR ((Attr_Sequence) 0)
58: #define as_comp_alloc() (Attr_Sequence) smalloc(sizeof(attrcomp))
59: #define as_comp_cmp(x,y) (((oid_cmp (&x->attr_type ,&y->attr_type) == OK) && (avs_cmp (x->attr_value ,y->attr_value) == OK)) ? OK : NOTOK)
60:
61: Attr_Sequence as_comp_new ();
62: Attr_Sequence as_comp_cpy ();
63: Attr_Sequence as_cpy ();
64: Attr_Sequence as_find_type ();
65: Attr_Sequence as_merge ();
66: Attr_Sequence str2as();
67:
68:
69: /* ACL is defined here as it is */
70: /* referenced. it is only used by */
71: /* DSA */
72: /* represents ACLInfo defined by INCA */
73: struct acl_info {
74: u_char acl_categories;
75: #define ACL_NONE 0
76: #define ACL_DETECT 1
77: #define ACL_COMPARE 2
78: #define ACL_READ 3
79: #define ACL_ADD 4
80: #define ACL_WRITE 5
81: u_char acl_selector_type;
82: #define ACL_ENTRY 0
83: #define ACL_OTHER 1
84: #define ACL_PREFIX 2
85: #define ACL_GROUP 3
86: struct dn_seq *acl_name; /* prefix and group only */
87: struct acl_info *acl_next;
88: };
89:
90: #define NULLACL_INFO (struct acl_info *) NULL
91: #define acl_info_alloc() (struct acl_info *) smalloc (sizeof (struct acl_info))
92: #define acl_info_fill(w,x,y,z) w -> acl_categories = x ; \
93: w -> acl_selector_type = y; \
94: w -> acl_name = z;
95: struct acl_info *acl_info_new ();
96: struct acl_info *acl_info_cpy();
97: struct acl_info *acl_default();
98: struct acl_info *acl_dflt();
99:
100: struct mailbox {
101: char * mtype;
102: char * mbox;
103: };
104:
105: struct fax {
106: char *number;
107: PE bits;
108: };
109:
110: struct postaddr {
111: char addrtype; /* 1 == T61, 2 == Printstr */
112: char * addrcomp;
113: struct postaddr * pa_next;
114: };
115:
116: struct telex {
117: char * telexnumber;
118: char * countrycode;
119: char * answerback;
120: };
121:
122: struct teletex {
123: char *terminal;
124: char *graphic;
125: char *control;
126: char *page;
127: char *misc;
128: char *t_private;
129: };
130:
131: struct pref_deliv {
132: int deliv;
133: struct pref_deliv * pd_next;
134: };
135:
136:
137: struct Guide {
138: OID objectClass;
139: struct Criteria * criteria;
140: };
141:
142: struct Criteria {
143: u_char offset;
144: #define Criteria_type 1
145: #define Criteria_and 2
146: #define Criteria_or 3
147: #define Criteria_not 4
148:
149: union {
150: struct CriteriaItem *type;
151: struct and_or_set {
152: struct Criteria *and_or_comp;
153: struct and_or_set *and_or_next;
154: } *and_or;
155: struct Criteria *not;
156: } un;
157: };
158:
159: struct CriteriaItem {
160: u_char offset;
161: #define choice_equality 1
162: #define choice_substrings 2
163: #define choice_greaterOrEqual 3
164: #define choice_lessOrEqual 4
165: #define choice_approximateMatch 5
166: AttributeType attrib;
167: };
168:
169:
170: /* Upper bounds */
171: #define UB_POSTAL_LINE 6
172: #define UB_POSTAL_STRING 30
173: #define UB_TELETEX_TERMINAL_ID 1024
174: #define UB_TELEPHONE_NUMBER 32
175: #define UB_TELEX_NUMBER 14
176: #define UB_ANSWERBACK 8
177: #define UB_COUNTRY_CODE 4
178: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.