#ifndef CONFIG_H
#define CONFIG_H
+#include<ac/string.h>
+
typedef struct ConfigTable {
char *name;
char *what;
typedef enum {
Cft_Abstract = 0,
Cft_Global,
- Cft_Include,
Cft_Module,
Cft_Schema,
Cft_Backend,
#define ARG_STRING 0x00005000
#define ARG_BERVAL 0x00006000
#define ARG_DN 0x00007000
+#define ARG_UINT 0x00008000
#define ARGS_SYNTAX 0xffff0000
#define ARG_IGNORED 0x00080000
typedef int (ConfigDriver)(struct config_args_s *c);
+typedef struct config_reply_s {
+ int err;
+ char msg[SLAP_TEXT_BUFLEN];
+} ConfigReply;
+
typedef struct config_args_s {
int argc;
char **argv;
const char *fname;
int lineno;
char log[MAXPATHLEN + STRLENOF(": line 18446744073709551615") + 1];
- char msg[SLAP_TEXT_BUFLEN];
+#define cr_msg reply.msg
+ ConfigReply reply;
int depth;
int valx; /* multi-valued value index */
/* parsed first val for simple cases */
union {
int v_int;
+ unsigned v_uint;
long v_long;
ber_len_t v_ber_t;
char *v_string;
Entry *ca_entry; /* entry being modified */
void *private; /* anything */
ConfigDriver *cleanup;
+ ConfigType table; /* which config table did we come from */
} ConfigArgs;
/* If lineno is zero, we have an actual LDAP Add request from a client.
#define CONFIG_ONLINE_ADD(ca) (!((ca)->lineno))
#define value_int values.v_int
+#define value_uint values.v_uint
#define value_long values.v_long
#define value_ber_t values.v_ber_t
#define value_string values.v_string