]> git.sur5r.net Git - openldap/blob - clients/ud/ud.h
Don't include portable.h. Headers can and should assume portable.h
[openldap] / clients / ud / ud.h
1 /*
2  * Copyright (c) 1991, 1992, 1993 
3  * Regents of the University of Michigan.  All rights reserved.
4  *
5  * Redistribution and use in source and binary forms are permitted
6  * provided that this notice is preserved and that due credit is given
7  * to the University of Michigan at Ann Arbor. The name of the University
8  * may not be used to endorse or promote products derived from this
9  * software without specific prior written permission. This software
10  * is provided ``as is'' without express or implied warranty.
11  */
12
13 #ifdef DOS
14 #define MAX_VALUES      8
15 #else
16 #define MAX_VALUES      1000
17 #endif /* !DOS */
18
19 /*****************************************************************************
20  **
21  **             Limits which ud imposes.  Also subject to change.
22  **
23  *****************************************************************************/
24  
25 /*
26  *  Names are parsed somewhat like 'awk' parses them.  This is the
27  *  maximum number of components we store away.
28  *
29  *  The isnamesepartor() macro should return TRUE if x is equal to one of the
30  *  characters that delimits name fields.  The ignorechar() macro should
31  *  return TRUE if it is equal to a character that should be ignored when
32  *  parsing names.
33  */
34 #define MAX_NAME_COMPS          8
35 #define isnamesepartor(x)       (isspace(x))
36 #define isignorechar(x)         (((x) == '.') || ((x) == '_'))
37
38 /*
39  *  Quite often a search will turn up more than one match.  When it does we
40  *  print out a list of the matches, and ask the user to select the one that
41  *  s/he wants.  This defines how many we will save and show.
42  */
43 #define MAX_NUM_NAMES           128
44
45 /*
46  *  When a user displays a group, we will automatically print out this many
47  *  members and subscribers.  If the number is greater than this, we will
48  *  prompt the user before printing them.
49  */
50 #define TOO_MANY_TO_PRINT       16
51
52 /*
53  *  This is the default size of a tty if we can't figure out the actual size.
54  */
55 #define DEFAULT_TTY_HEIGHT      24
56 #define DEFAULT_TTY_WIDTH       80
57
58 /*
59  *  The number of attributes we know about must be less than this number.
60  *  Don't add lots of attributes to the list in globals.c without checking
61  *  this number too.
62  */
63 #define MAX_ATTRS       64
64
65 /*****************************************************************************
66  **
67  **             No user servicable parts beyond this point.
68  **
69  *****************************************************************************/
70
71 /*
72  *  Generic buffer sizes.
73  */
74 #define SMALL_BUF_SIZE           16
75 #define MED_BUF_SIZE            128
76 #define LARGE_BUF_SIZE          512
77
78 /*
79  *  Used to specify the operation in x_group().
80  */
81 #define G_JOIN          0
82 #define G_RESIGN        1
83
84 /*
85  *  Authentication method we will be using.
86  */
87 #ifdef HAVE_KERBEROS
88 #define UD_AUTH_METHOD          LDAP_AUTH_KRBV4
89 #else
90 #define UD_AUTH_METHOD          LDAP_AUTH_SIMPLE
91 #endif
92
93 /*
94  *  TRUE and FALSE - just in case we need them.
95  */
96 #ifndef TRUE
97 #define TRUE  1
98 #define FALSE 0
99 #endif
100
101 /*
102  *  Bound status.
103  */
104 #define UD_NOT_BOUND    0       /* bound only as the default defined above */
105 #define UD_BOUND        1       /* bound as an actual Directory entity */
106
107 /* 
108  *  Debug masks.
109  */
110 #define D_TRACE         0x0001
111 #define D_FIND          0x0002
112 #define D_GROUPS        0x0004
113 #define D_MODIFY        0x0008
114 #define D_PARSE         0x0010
115 #define D_PRINT         0x0020
116 #define D_AUTHENTICAT   0x0040
117 #define D_INITIALIZE    0x0080
118
119 /*
120  *  Used in the flags field of an attribute structure.
121  */
122 #define ATTR_FLAG_NONE          0x0000
123 #define ATTR_FLAG_PERSON        0x0001
124 #define ATTR_FLAG_GROUP         0x0002
125 #define ATTR_FLAG_PERSON_MOD    0x0010
126 #define ATTR_FLAG_GROUP_MOD     0x0020
127 #define ATTR_FLAG_MAY_EDIT      0x0040
128 #define ATTR_FLAG_SEARCH        0x0100
129 #define ATTR_FLAG_READ          0x0200
130 #define ATTR_FLAG_IS_A_DATE     0x0800
131 #define ATTR_FLAG_IS_A_DN       0x1000
132 #define ATTR_FLAG_IS_A_URL      0x2000
133 #define ATTR_FLAG_IS_A_BOOL     0x4000
134 #define ATTR_FLAG_IS_MULTILINE  0x8000
135
136 LDAP_BEGIN_DECL
137
138 /*
139  *  These are the structures we use when parsing an answer we get from the LDAP
140  *  server.
141  */
142 struct attribute {
143         char *quipu_name;
144         char *output_string;
145         void (*mod_func)();
146         unsigned short flags;
147         int number_of_values;
148         char **values;
149 };
150
151 struct entry {
152         char may_join;
153         int  subscriber_count;
154         char *DN;
155         char *name;
156         struct attribute attrs[MAX_ATTRS];
157 };
158
159 LDAP_END_DECL