]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/rwm.h
fix previous commit
[openldap] / servers / slapd / overlays / rwm.h
index c3d2cc2745183bb576fad78fd328ea407f28396c..59e440c58744beb2a70b0c8a07b0f22714d008d1 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1999-2004 The OpenLDAP Foundation.
+ * Copyright 1999-2005 The OpenLDAP Foundation.
  * Portions Copyright 1999-2003 Howard Chu.
  * Portions Copyright 2000-2003 Pierangelo Masarati.
  * All rights reserved.
@@ -31,6 +31,9 @@
 
 LDAP_BEGIN_DECL
 
+/* define to enable referral DN massage by default */
+#undef RWM_REFERRAL_REWRITE
+
 struct ldapmap {
        int drop_missing;
 
@@ -87,38 +90,48 @@ typedef struct dncookie {
        Connection *conn;
        char *ctx;
        SlapReply *rs;
-#else
+#else /* !ENABLE_REWRITE */
        int normalized;
        int tofrom;
-#endif
+#endif /* !ENABLE_REWRITE */
 } dncookie;
 
-int rwm_dn_massage(dncookie *dc, struct berval *dn, struct berval *res);
+int rwm_dn_massage( dncookie *dc, struct berval *in, struct berval *dn );
+int rwm_dn_massage_pretty( dncookie *dc, struct berval *in, struct berval *pdn );
+int rwm_dn_massage_normalize( dncookie *dc, struct berval *in, struct berval *ndn );
+int rwm_dn_massage_pretty_normalize( dncookie *dc, struct berval *in, struct berval *pdn, struct berval *ndn );
 
 /* attributeType/objectClass mapping */
 int rwm_mapping_cmp (const void *, const void *);
 int rwm_mapping_dup (void *, void *);
 
-void rwm_map_init ( struct ldapmap *lm, struct ldapmapping ** );
+int rwm_map_init ( struct ldapmap *lm, struct ldapmapping ** );
 void rwm_map ( struct ldapmap *map, struct berval *s, struct berval *m,
        int remap );
+int rwm_mapping ( struct ldapmap *map, struct berval *s,
+               struct ldapmapping **m, int remap );
 #define RWM_MAP        0
 #define RWM_REMAP      1
 char *
 rwm_map_filter(
                struct ldapmap *at_map,
                struct ldapmap *oc_map,
-               struct berval *f,
-               int remap
-);
+               struct berval *f );
 
 int
 rwm_map_attrs(
                struct ldapmap *at_map,
                AttributeName *a,
                int remap,
-               char ***mapped_attrs
-);
+               char ***mapped_attrs );
+
+int
+rwm_map_attrnames(
+               struct ldapmap *at_map,
+               struct ldapmap *oc_map,
+               AttributeName *an,
+               AttributeName **anp,
+               int remap );
 
 extern void rwm_mapping_free ( void *mapping );
 
@@ -134,8 +147,7 @@ extern int
 rwm_filter_map_rewrite(
                dncookie                *dc,
                Filter                  *f,
-               struct berval           *fstr,
-               int                     remap );
+               struct berval           *fstr );
 
 /* suffix massaging by means of librewrite */
 #ifdef ENABLE_REWRITE
@@ -147,9 +159,16 @@ extern int rwm_dnattr_rewrite(
        Operation               *op,
        SlapReply               *rs,
        void                    *cookie,
-       BerVarray               a_vals
-       );
+       BerVarray               a_vals,
+       BerVarray               *pa_nvals );
+extern int rwm_referral_rewrite(
+       Operation               *op,
+       SlapReply               *rs,
+       void                    *cookie,
+       BerVarray               a_vals,
+       BerVarray               *pa_nvals );
 extern int rwm_dnattr_result_rewrite( dncookie *dc, BerVarray a_vals );
+extern int rwm_referral_result_rewrite( dncookie *dc, BerVarray a_vals );
 
 LDAP_END_DECL