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