#ifndef CONFIG_H
#define CONFIG_H
+#include<ac/string.h>
+
typedef struct ConfigTable {
char *name;
char *what;
void *notify;
} ConfigTable;
+/* search entries are returned according to this order */
typedef enum {
Cft_Abstract = 0,
Cft_Global,
+ Cft_Module,
Cft_Schema,
Cft_Backend,
Cft_Database,
Cft_Overlay,
- Cft_Include,
- Cft_Module,
Cft_Misc /* backend/overlay defined */
} ConfigType;
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 */
#define SLAP_CONFIG_ADD 0x4000 /* config file add vs LDAP add */
int op;
int type; /* ConfigTable.arg_type & ARGS_USERLAND */
+ Operation *ca_op;
BackendDB *be;
BackendInfo *bi;
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.