]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-meta/back-meta.h
Improve schema error messages
[openldap] / servers / slapd / back-meta / back-meta.h
index 4d3689f0ebae491ed37d1e58a4b91999683b63a0..2862d1c2f84900d8fa00de4d6d529e0064938185 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1998-2001 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  *
  * Copyright 1999, Howard Chu, All rights reserved. <hyc@highlandsun.com>
@@ -89,7 +89,7 @@ struct metasingleconn {
 #define        META_CANDIDATE          1
        
        LDAP                    *ld;
-       char                    *bound_dn;
+       struct berval           bound_dn;
        int                     bound;
 #define META_UNBOUND           0
 #define META_BOUND             1
@@ -105,15 +105,21 @@ struct metaconn {
         * of course only one target actually is ...
         */
        int             bound_target;
+#define META_BOUND_NONE                -1
+#define META_BOUND_ALL         -2
        /* supersedes the connection stuff */
        struct metasingleconn **conns;
 };
 
 struct metatarget {
        char                    *uri;
-       char                    *suffix;/* normalized suffix */
-       char                    *binddn;
-       char                    *bindpw;
+       struct berval           psuffix;        /* pretty suffix */
+       struct berval           suffix;         /* normalized suffix */
+       struct berval           binddn;
+       struct berval           bindpw;
+
+       struct berval           pseudorootdn;
+       struct berval           pseudorootpw;
 
        struct rewrite_info     *rwinfo;
 
@@ -146,8 +152,8 @@ extern int
 meta_back_do_single_bind(
                struct metainfo         *li,
                struct metaconn         *lc,
-               const char              *dn,
-               const char              *ndn,
+               struct berval           *dn,
+               struct berval           *ndn,
                struct berval           *cred,
                int                     method,
                int                     candidate
@@ -156,13 +162,14 @@ meta_back_do_single_bind(
 
 #define META_OP_ALLOW_MULTIPLE         0x00
 #define META_OP_REQUIRE_SINGLE         0x01
+#define META_OP_REQUIRE_ALL            0x02
 extern struct metaconn *
 meta_back_getconn(
                struct                  metainfo *li,
                struct                  slap_conn *conn,
                struct                  slap_op *op,
                int                     op_type,
-               const                   char *dn,
+               struct berval           *dn,
                int                     *candidate
 );
 
@@ -172,6 +179,12 @@ meta_back_dobind(
                Operation               *op
 );
 
+extern int
+meta_back_is_valid(
+               struct metaconn         *lc, 
+               int                     candidate 
+);
+
 extern int
 meta_back_op_result(
                struct metaconn         *lc,
@@ -201,27 +214,26 @@ meta_back_conn_dup(
  */
 extern int
 meta_back_is_candidate(
-               const char              *nsuffix,
-               const char              *ndn,
-               int                     ndnlen
+               struct berval           *nsuffix,
+               struct berval           *ndn
 );
 
 extern int
 meta_back_count_candidates(
                struct metainfo         *li,
-               const char              *ndn
+               struct berval           *ndn
 );
 
 extern int
 meta_back_is_candidate_unique(
                struct metainfo         *li,
-               const char              *ndn
+               struct berval           *ndn
 );
 
 extern int
 meta_back_select_unique_candidate(
                struct metainfo         *li,
-               const char              *ndn
+               struct berval           *ndn
 );
 
 extern int
@@ -256,20 +268,20 @@ meta_dncache_dup(
 extern int
 meta_dncache_get_target(
                struct metadncache      *cache,
-               const char              *ndn
+               struct berval           *ndn
 );
 
 extern int
 meta_dncache_update_entry(
                struct metadncache      *cache,
-               const char              *ndn,
+               struct berval           *ndn,
                int                     target
 );
 
 extern int
 meta_dncache_delete_entry(
                struct metadncache      *cache,
-               const char              *ndn
+               struct berval           *ndn
 );
 
 extern void