]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slap.h
Add comments
[openldap] / servers / slapd / slap.h
index 29b3c0ced3c55aabb01cc24a963c32e42608ef2b..8994f3be6a6a98fd9c45dc0dcfe4759dcc56c065 100644 (file)
@@ -85,6 +85,7 @@ LDAP_BEGIN_DECL
 #define FILTER_ESCAPE(c) ( (c) == '*' || (c) == '\\' \
        || (c) == '(' || (c) == ')' || !ASCII_PRINTABLE(c) )
 
+#define DN_ESCAPE(c)   ((c) == SLAP_ESCAPE_CHAR)
 #define DN_SEPARATOR(c)        ((c) == ',' || (c) == ';')
 #define RDN_ATTRTYPEANDVALUE_SEPARATOR(c) ((c) == '+') /* RFC 2253 */
 #define RDN_SEPARATOR(c) (DN_SEPARATOR(c) || RDN_ATTRTYPEANDVALUE_SEPARATOR(c))
@@ -176,11 +177,10 @@ typedef struct slap_ssf_set {
 #define SLAP_INDEX_SUBSTR_MAXLEN       4
 #define SLAP_INDEX_SUBSTR_STEP 2
 
-#define SLAP_INDEX_FLAGS          0xF000UL
-#define SLAP_INDEX_SUBTYPES       0x1000UL /* use index with subtypes */
-#define SLAP_INDEX_AUTO_SUBTYPES  0x2000UL /* use mask with subtypes */
-#define SLAP_INDEX_LANG           0x4000UL /* use index with lang subtypes */
-#define SLAP_INDEX_AUTO_LANG      0x8000UL /* use mask with lang subtypes */
+#define SLAP_INDEX_FLAGS         0xF000UL
+#define SLAP_INDEX_NOSUBTYPES    0x1000UL /* don't use index w/ subtypes */
+#define SLAP_INDEX_NOLANG        0x2000UL /* don't use index w/ lang */
+#define SLAP_INDEX_AUTO_SUBTYPES 0x4000UL /* use mask with lang subtypes */
 
 /*
  * there is a single index for each attribute.  these prefixes ensure
@@ -473,6 +473,8 @@ struct slap_internal_schema {
 
        /* operational attribute descriptions */
        AttributeDescription *si_ad_structuralObjectClass;
+       AttributeDescription *si_ad_entryUUID;
+       AttributeDescription *si_ad_entryCSN;
        AttributeDescription *si_ad_creatorsName;
        AttributeDescription *si_ad_createTimestamp;
        AttributeDescription *si_ad_modifiersName;
@@ -544,7 +546,6 @@ typedef struct slap_mr_assertion {
        struct berval                   *ma_value;      /* required */
 } MatchingRuleAssertion;
 
-
 /*
  * represents a search filter
  */
@@ -554,7 +555,6 @@ typedef struct slap_filter {
 #define SLAPD_FILTER_DN_ONE            ((ber_tag_t) -2)
 #define SLAPD_FILTER_DN_SUBTREE        ((ber_tag_t) -3)
 
-
        union f_un_u {
                /* precomputed result */
                ber_int_t f_un_result;
@@ -873,10 +873,17 @@ struct slap_limits {
        int     lm_type;        /* type of pattern */
 #define SLAP_LIMITS_UNDEFINED  0x0000
 #define SLAP_LIMITS_EXACT      0x0001
-#define SLAP_LIMITS_REGEX      0x0002
-#define SLAP_LIMITS_ANONYMOUS  0x0003
-       regex_t lm_dn_regex;    /* regex-based size and time limits */
-       char   *lm_dn_pat;      /* ndn for EXACT; pattern for REGEX */
+#define SLAP_LIMITS_BASE       SLAP_LIMITS_EXACT
+#define SLAP_LIMITS_ONE                0x0002
+#define SLAP_LIMITS_SUBTREE    0x0003
+#define SLAP_LIMITS_CHILDREN   0x0004
+#define SLAP_LIMITS_REGEX      0x0005
+#define SLAP_LIMITS_ANONYMOUS  0x0006
+#define SLAP_LIMITS_USERS      0x0007
+       regex_t lm_dn_regex;            /* regex data for REGEX */
+       struct berval *lm_dn_pat;       /* ndn for EXACT, BASE, ONE, SUBTREE,
+                                        * CHILDREN; pattern for REGEX; NULL
+                                        * for ANONYMOUS, USERS */
        struct slap_limits_set  lm_limits;
 };