]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slap.h
fix typo
[openldap] / servers / slapd / slap.h
index 20e2eb3ca611113346654edf0d4954785fed610a..4b5e84dfd772cd9b885dd3ee4c275c54d720cbf2 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2007 The OpenLDAP Foundation.
+ * Copyright 1998-2008 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -64,6 +64,7 @@ LDAP_BEGIN_DECL
 #define LDAP_SYNC_TIMESTAMP
 #define SLAP_CONTROL_X_SORTEDRESULTS
 #define SLAP_CONTROL_X_SESSION_TRACKING
+#define SLAP_CONFIG_DELETE
 #endif
 
 #define LDAP_DYNAMIC_OBJECTS
@@ -299,6 +300,8 @@ enum {
        SLAP_SCHERR_SYN_NOT_FOUND,
        SLAP_SCHERR_SYN_DUP,
        SLAP_SCHERR_SYN_SUP_NOT_FOUND,
+       SLAP_SCHERR_SYN_SUBST_NOT_SPECIFIED,
+       SLAP_SCHERR_SYN_SUBST_NOT_FOUND,
        SLAP_SCHERR_NO_NAME,
        SLAP_SCHERR_NOT_SUPPORTED,
        SLAP_SCHERR_BAD_DESCR,
@@ -680,7 +683,8 @@ struct AttributeType {
        Syntax                          *sat_syntax;
 
        AttributeTypeSchemaCheckFN      *sat_check;
-       char                            *sat_oidmacro;
+       char                            *sat_oidmacro;  /* attribute OID */
+       char                            *sat_soidmacro; /* syntax OID */
 
 #define SLAP_AT_NONE                   0x0000U
 #define SLAP_AT_ABSTRACT               0x0100U /* cannot be instantiated */
@@ -967,6 +971,8 @@ struct slap_internal_schema {
        MatchingRule    *si_mr_integerMatch;
        MatchingRule    *si_mr_integerFirstComponentMatch;
        MatchingRule    *si_mr_objectIdentifierFirstComponentMatch;
+       MatchingRule    *si_mr_caseIgnoreMatch;
+       MatchingRule    *si_mr_caseIgnoreListMatch;
 
        /* Syntaxes */
        Syntax          *si_syn_directoryString;
@@ -1371,8 +1377,8 @@ typedef struct Access {
 #define ACL_PRIV_SET(m,p)              do { (m) |=  (p); } while(0)
 #define ACL_PRIV_CLR(m,p)              do { (m) &= ~(p); } while(0)
 
-#define ACL_INIT(m)                    ACL_PRIV_ASSIGN(m, ACL_PRIV_NONE)
-#define ACL_INVALIDATE(m)              ACL_PRIV_ASSIGN(m, ACL_PRIV_INVALID)
+#define ACL_INIT(m)                    ACL_PRIV_ASSIGN((m), ACL_PRIV_NONE)
+#define ACL_INVALIDATE(m)              ACL_PRIV_ASSIGN((m), ACL_PRIV_INVALID)
 
 #define ACL_GRANT(m,a)                 ACL_PRIV_ISSET((m),ACL_ACCESS2PRIV(a))
 
@@ -1707,6 +1713,7 @@ struct ConfigOCs; /* config.h */
 
 struct BackendDB {
        BackendInfo     *bd_info;       /* pointer to shared backend info */
+       BackendDB       *bd_self;       /* pointer to this struct */
 
        /* fields in this structure (and routines acting on this structure)
           should be renamed from be_ to bd_ */
@@ -1903,8 +1910,8 @@ typedef int (BI_config) LDAP_P((BackendInfo *bi,
        const char *fname, int lineno,
        int argc, char **argv));
 
-struct config_reply_s ; /* config.h */
-typedef int (BI_db_func) LDAP_P((Backend *bd, struct config_reply_s *c));
+typedef struct config_reply_s ConfigReply; /* config.h */
+typedef int (BI_db_func) LDAP_P((Backend *bd, ConfigReply *cr));
 typedef BI_db_func BI_db_init;
 typedef BI_db_func BI_db_open;
 typedef BI_db_func BI_db_close;
@@ -2466,6 +2473,20 @@ typedef union OpRequest {
        req_pwdexop_s oq_pwdexop;
 } OpRequest;
 
+/* This is only a header. Actual users should define their own
+ * structs with the oe_next / oe_key fields at the top and
+ * whatever else they need following.
+ */
+typedef struct OpExtra {
+       LDAP_SLIST_ENTRY(OpExtra) oe_next;
+       void *oe_key;
+} OpExtra;
+
+typedef struct OpExtraDB {
+       OpExtra oe;
+       BackendDB *oe_db;
+} OpExtraDB;
+
 struct Operation {
        Opheader *o_hdr;
 
@@ -2657,7 +2678,9 @@ struct Operation {
        LDAPControl     **o_ctrls;       /* controls */
        struct berval o_csn;
 
+       /* DEPRECATE o_private - use o_extra instead */
        void    *o_private;     /* anything the backend needs */
+       LDAP_SLIST_HEAD(o_e, OpExtra) o_extra;  /* anything the backend needs */
 
        LDAP_STAILQ_ENTRY(Operation)    o_next; /* next operation in list */
 };
@@ -2670,7 +2693,7 @@ typedef struct OperationBuffer {
 
 #define send_ldap_error( op, rs, err, text ) do { \
                (rs)->sr_err = err; (rs)->sr_text = text; \
-               (op->o_conn->c_send_ldap_result)( op, rs ); \
+               ((op)->o_conn->c_send_ldap_result)( op, rs ); \
        } while (0)
 #define send_ldap_discon( op, rs, err, text ) do { \
                (rs)->sr_err = err; (rs)->sr_text = text; \