2 * Copyright (c) 1991, 1992, 1993
3 * Regents of the University of Michigan. All rights reserved.
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.
15 #define strncasecmp(a, b, n) strnicmp(a, b, n)
16 #define strcasecmp(a, b) stricmp(a, b)
19 #define MAX_VALUES 1000
20 #endif /* end of DOS ifdef */
22 /*****************************************************************************
24 ** Limits which ud imposes. Also subject to change.
26 *****************************************************************************/
29 * Names are parsed somewhat like 'awk' parses them. This is the
30 * maximum number of components we store away.
32 * The isnamesepartor() macro should return TRUE if x is equal to one of the
33 * characters that delimits name fields. The ignorechar() macro should
34 * return TRUE if it is equal to a character that should be ignored when
37 #define MAX_NAME_COMPS 8
38 #define isnamesepartor(x) (isspace(x))
39 #define isignorechar(x) (((x) == '.') || ((x) == '_'))
42 * Quite often a search will turn up more than one match. When it does we
43 * print out a list of the matches, and ask the user to select the one that
44 * s/he wants. This defines how many we will save and show.
46 #define MAX_NUM_NAMES 128
49 * When a user displays a group, we will automatically print out this many
50 * members and subscribers. If the number is greater than this, we will
51 * prompt the user before printing them.
53 #define TOO_MANY_TO_PRINT 16
56 * This is the default size of a tty if we can't figure out the actual size.
58 #define DEFAULT_TTY_HEIGHT 24
59 #define DEFAULT_TTY_WIDTH 80
62 * The number of attributes we know about must be less than this number.
63 * Don't add lots of attributes to the list in globals.c without checking
68 /*****************************************************************************
70 ** No user servicable parts beyond this point.
72 *****************************************************************************/
75 * Generic buffer sizes.
77 #define SMALL_BUF_SIZE 16
78 #define MED_BUF_SIZE 128
79 #define LARGE_BUF_SIZE 512
82 * Used to specify the operation in x_group().
88 * Authentication method we will be using.
91 #define UD_AUTH_METHOD LDAP_AUTH_KRBV4
93 #define UD_AUTH_METHOD LDAP_AUTH_SIMPLE
97 * TRUE and FALSE - just in case we need them.
107 #define UD_NOT_BOUND 0 /* bound only as the default defined above */
108 #define UD_BOUND 1 /* bound as an actual Directory entity */
113 #define D_TRACE 0x0001
114 #define D_FIND 0x0002
115 #define D_GROUPS 0x0004
116 #define D_MODIFY 0x0008
117 #define D_PARSE 0x0010
118 #define D_PRINT 0x0020
119 #define D_AUTHENTICAT 0x0040
120 #define D_INITIALIZE 0x0080
123 * Used in the flags field of an attribute structure.
125 #define ATTR_FLAG_NONE 0x0000
126 #define ATTR_FLAG_PERSON 0x0001
127 #define ATTR_FLAG_GROUP 0x0002
128 #define ATTR_FLAG_PERSON_MOD 0x0010
129 #define ATTR_FLAG_GROUP_MOD 0x0020
130 #define ATTR_FLAG_MAY_EDIT 0x0040
131 #define ATTR_FLAG_SEARCH 0x0100
132 #define ATTR_FLAG_READ 0x0200
133 #define ATTR_FLAG_IS_A_DATE 0x0800
134 #define ATTR_FLAG_IS_A_DN 0x1000
135 #define ATTR_FLAG_IS_A_URL 0x2000
136 #define ATTR_FLAG_IS_A_BOOL 0x4000
137 #define ATTR_FLAG_IS_MULTILINE 0x8000
140 * These are the structures we use when parsing an answer we get from the LDAP
147 unsigned short flags;
148 int number_of_values;
154 int subscriber_count;
157 struct attribute attrs[MAX_ATTRS];