]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldap/back-ldap.h
error message from be_entry_put tool backend function
[openldap] / servers / slapd / back-ldap / back-ldap.h
index fdbe1a2d9c0d4504ffb19f79e738e7719f58bee0..f74d47b613177243d3d56d22efd8f42faccd78c6 100644 (file)
@@ -1,7 +1,7 @@
 /* back-ldap.h - ldap backend header file */
 /* $OpenLDAP$ */
 /*
- * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 /* This is an altered version */
 
 #include "external.h"
 
+/* String rewrite library */
+#ifdef ENABLE_REWRITE
+#include "rewrite.h"
+#endif /* ENABLE_REWRITE */
+
 LDAP_BEGIN_DECL
 
 struct slap_conn;
@@ -48,20 +53,36 @@ struct slap_op;
 struct ldapconn {
        struct slap_conn        *conn;
        LDAP            *ld;
-       char            *bound_dn;
+       struct berval   bound_dn;
        int             bound;
 };
 
+struct ldapmap {
+       int drop_missing;
+
+       Avlnode *map;
+       Avlnode *remap;
+};
+
+struct ldapmapping {
+       struct berval src;
+       struct berval dst;
+};
+
 struct ldapinfo {
        char *url;
-#if 0 /* unused! */
-       char *suffix;
-#endif /* 0 */
-       char **suffix_massage;
        char *binddn;
        char *bindpw;
        ldap_pvt_thread_mutex_t         conn_mutex;
        Avlnode *conntree;
+#ifdef ENABLE_REWRITE
+       struct rewrite_info *rwinfo;
+#else /* !ENABLE_REWRITE */
+       struct berval **suffix_massage;
+#endif /* !ENABLE_REWRITE */
+
+       struct ldapmap oc_map;
+       struct ldapmap at_map;
 };
 
 struct ldapconn *ldap_back_getconn(struct ldapinfo *li, struct slap_conn *conn,
@@ -71,12 +92,39 @@ int ldap_back_map_result(int err);
 int ldap_back_op_result(struct ldapconn *lc, Operation *op);
 int    back_ldap_LTX_init_module(int argc, char *argv[]);
 
-char *ldap_back_dn_massage(struct ldapinfo *li, char *dn, int normalized);
-char *ldap_back_dn_restore(struct ldapinfo *li, char *dn, int normalized);
+void ldap_back_dn_massage(struct ldapinfo *li, struct berval *dn,
+       struct berval *res, int normalized, int tofrom);
+
+extern int ldap_back_conn_cmp( const void *c1, const void *c2);
+extern int ldap_back_conn_dup( void *c1, void *c2 );
+
+int mapping_cmp (const void *, const void *);
+int mapping_dup (void *, void *);
+
+void ldap_back_map_init ( struct ldapmap *lm, struct ldapmapping ** );
+void ldap_back_map ( struct ldapmap *map, struct berval *s, struct berval *m,
+       int remap );
+char *
+ldap_back_map_filter(
+               struct ldapmap *at_map,
+               struct ldapmap *oc_map,
+               struct berval *f,
+               int remap
+);
+char **
+ldap_back_map_attrs(
+               struct ldapmap *at_map,
+               AttributeName *a,
+               int remap
+);
+
+extern void mapping_free ( struct ldapmapping *mapping );
+
+#ifdef ENABLE_REWRITE
+extern int suffix_massage_config( struct rewrite_info *info, int argc, char **argv );
+extern int ldap_dnattr_rewrite( struct rewrite_info *rwinfo, BVarray a_vals, void *cookie );
+#endif /* ENABLE_REWRITE */
 
-int conn_cmp(const void *, const void *);
-int conn_dup(void *, void *);
-                       
 LDAP_END_DECL
 
 #endif