]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/rwm.h
trim listed modules
[openldap] / servers / slapd / overlays / rwm.h
index 3bdee4f6564d354f132a7243e0d78af4e9c98b4a..bc349d9c4092477fde5faee7b6522033f12d1121 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-2007 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;
 
@@ -77,6 +80,11 @@ struct ldaprwmap {
         */
        struct ldapmap rwm_oc;
        struct ldapmap rwm_at;
+
+#define        RWM_F_NONE                      0x0000U
+#define        RWM_F_SUPPORT_T_F               0x4000U
+#define        RWM_F_SUPPORT_T_F_DISCOVER      0x8000U
+       unsigned        rwm_flags;
 };
 
 /* Whatever context ldap_back_dn_massage needs... */
@@ -87,14 +95,16 @@ 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 *in,
-       struct berval *dn, struct berval *ndn );
+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 *);
@@ -105,7 +115,7 @@ 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_MAP                0
 #define RWM_REMAP      1
 char *
 rwm_map_filter(
@@ -128,6 +138,8 @@ rwm_map_attrnames(
                AttributeName **anp,
                int remap );
 
+extern void rwm_mapping_dst_free ( void *mapping );
+
 extern void rwm_mapping_free ( void *mapping );
 
 extern int rwm_map_config(
@@ -140,6 +152,7 @@ extern int rwm_map_config(
 
 extern int
 rwm_filter_map_rewrite(
+               Operation               *op,
                dncookie                *dc,
                Filter                  *f,
                struct berval           *fstr );