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