X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fconfig.h;h=e99d00954785e8061c5fbe6ddc17be0cf9307ecc;hb=1939ed3fc29d0d1c01a0a9390d2c51ac2a85260f;hp=6b14c07aa0c08c942316067b5bb9b1effb925ae7;hpb=da1c57ff3e21be04b48da89d45f8d5498b840398;p=openldap diff --git a/servers/slapd/config.h b/servers/slapd/config.h index 6b14c07aa0..e99d009547 100644 --- a/servers/slapd/config.h +++ b/servers/slapd/config.h @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2005 The OpenLDAP Foundation. + * Copyright 1998-2006 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -14,6 +14,9 @@ * . */ +#ifndef CONFIG_H +#define CONFIG_H + typedef struct ConfigTable { char *name; char *what; @@ -40,19 +43,19 @@ typedef enum { } ConfigType; #define ARGS_USERLAND 0x00000fff -#define ARGS_TYPES 0x000ff000 -#define ARGS_POINTER 0x0003f000 -#define ARGS_NUMERIC 0x0000f000 + +/* types are enumerated, not a bitmask */ +#define ARGS_TYPES 0x0000f000 #define ARG_INT 0x00001000 #define ARG_LONG 0x00002000 -#define ARG_BER_LEN_T 0x00004000 -#define ARG_ON_OFF 0x00008000 -#define ARG_STRING 0x00010000 -#define ARG_BERVAL 0x00020000 -#define ARG_DN 0x00040000 -#define ARG_IGNORED 0x00080000 +#define ARG_BER_LEN_T 0x00003000 +#define ARG_ON_OFF 0x00004000 +#define ARG_STRING 0x00005000 +#define ARG_BERVAL 0x00006000 +#define ARG_DN 0x00007000 -#define ARGS_SYNTAX 0xfff00000 +#define ARGS_SYNTAX 0xffff0000 +#define ARG_IGNORED 0x00080000 #define ARG_PRE_BI 0x00100000 #define ARG_PRE_DB 0x00200000 #define ARG_DB 0x00400000 /* Only applies to DB */ @@ -109,7 +112,7 @@ typedef struct config_args_s { char *line; char *tline; const char *fname; - unsigned long lineno; + int lineno; char log[MAXPATHLEN + STRLENOF(": line 18446744073709551615") + 1]; char msg[SLAP_TEXT_BUFLEN]; int depth; @@ -162,10 +165,22 @@ void init_config_argv( ConfigArgs *c ); int init_config_attrs(ConfigTable *ct); int init_config_ocs( ConfigOCs *ocs ); int config_parse_vals(ConfigTable *ct, ConfigArgs *c, int valx); -int config_parse_add(ConfigTable *ct, ConfigArgs *c); +int config_parse_add(ConfigTable *ct, ConfigArgs *c, int valx); int read_config_file(const char *fname, int depth, ConfigArgs *cf, ConfigTable *cft ); ConfigTable * config_find_keyword(ConfigTable *ct, ConfigArgs *c); Entry * config_build_entry( Operation *op, SlapReply *rs, CfEntryInfo *parent, ConfigArgs *c, struct berval *rdn, ConfigOCs *main, ConfigOCs *extra ); + +int config_shadow( ConfigArgs *c, int flag ); +#define config_slurp_shadow(c) config_shadow((c), SLAP_DBFLAG_SLURP_SHADOW) +#define config_sync_shadow(c) config_shadow((c), SLAP_DBFLAG_SYNC_SHADOW) + + /* Make sure we don't exceed the bits reserved for userland */ +#define config_check_userland(last) \ + assert( ( ( (last) - 1 ) & ARGS_USERLAND ) == ( (last) - 1 ) ); + +#define SLAP_X_ORDERED_FMT "{%d}" + +#endif /* CONFIG_H */