]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-meta/back-meta.h
fix entry DN free
[openldap] / servers / slapd / back-meta / back-meta.h
index 7b74ae923034e2b5f5d44ac68b528ca91b9616dc..620bb93e14c96ef7976c3e43c5cb6adff728166e 100644 (file)
@@ -70,15 +70,15 @@ struct ldaprwmap {
 
 /* Whatever context ldap_back_dn_massage needs... */
 typedef struct dncookie {
-       struct ldaprwmap *rwmap;
+       struct metatarget_t     *target;
 
 #ifdef ENABLE_REWRITE
-       Connection *conn;
-       char *ctx;
-       SlapReply *rs;
+       Connection              *conn;
+       char                    *ctx;
+       SlapReply               *rs;
 #else
-       int normalized;
-       int tofrom;
+       int                     normalized;
+       int                     tofrom;
 #endif
 } dncookie;
 
@@ -156,11 +156,12 @@ ldap_dnattr_result_rewrite(
 
 /* (end of) from back-ldap.h before rwm removal */
 
+struct metainfo_t;
+
 typedef struct metasingleconn_t {
        int                     msc_candidate;
 #define        META_NOT_CANDIDATE      ((ber_tag_t)0)
 #define        META_CANDIDATE          ((ber_tag_t)1)
-#define        META_LAST_CONN          ((ber_tag_t)(-1))
        
        LDAP                    *msc_ld;
        struct berval           msc_bound_ndn;
@@ -169,9 +170,9 @@ typedef struct metasingleconn_t {
 #define META_UNBOUND           0
 #define META_BOUND             1
 #define META_ANONYMOUS         2
-} metasingleconn_t;
 
-#define META_LAST(msc)         ((msc)->msc_candidate == META_LAST_CONN)
+       struct metainfo_t       *msc_info;
+} metasingleconn_t;
 
 typedef struct metaconn_t {
        struct slap_conn        *mc_conn;
@@ -190,8 +191,10 @@ typedef struct metaconn_t {
 
 typedef struct metatarget_t {
        char                    *mt_uri;
+
        struct berval           mt_psuffix;             /* pretty suffix */
        struct berval           mt_nsuffix;             /* normalized suffix */
+
        struct berval           mt_binddn;
        struct berval           mt_bindpw;
 
@@ -205,6 +208,9 @@ typedef struct metatarget_t {
 #define META_RETRY_DEFAULT     (3)
 
        struct ldaprwmap        mt_rwmap;
+
+       unsigned                mt_flags;
+       int                     mt_version;
 } metatarget_t;
 
 typedef struct metadncache_t {
@@ -223,7 +229,7 @@ typedef struct metainfo_t {
 #define META_DEFAULT_TARGET_NONE       (-1)
        int                     mi_nretries;
 
-       metatarget_t            **mi_targets;
+       metatarget_t            *mi_targets;
        SlapReply               *mi_candidates;
 
        metadncache_t           mi_cache;
@@ -237,9 +243,13 @@ typedef struct metainfo_t {
 #define LDAP_BACK_F_NONE               0x00U
 #define LDAP_BACK_F_SAVECRED           0x01U
 #define LDAP_BACK_F_USE_TLS            0x02U
-#define LDAP_BACK_F_TLS_CRITICAL       ( 0x04U | LDAP_BACK_F_USE_TLS )
-#define LDAP_BACK_F_CHASE_REFERRALS    0x8U
+#define LDAP_BACK_F_PROPAGATE_TLS      0x04U
+#define LDAP_BACK_F_TLS_CRITICAL       0x08U
+#define LDAP_BACK_F_TLS_MASK           (LDAP_BACK_F_USE_TLS|LDAP_BACK_F_PROPAGATE_TLS|LDAP_BACK_F_TLS_CRITICAL)
+#define LDAP_BACK_F_CHASE_REFERRALS    0x10U
 #endif
+
+       int                     mi_version;
 } metainfo_t;
 
 typedef enum meta_op_type {