X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Foverlays%2Frwm.h;h=be24b1a0a65db4e9cc98d9c6d57612ecff73c250;hb=6da3e3473c4c93e24c75dbff56ff1d21c89a9a18;hp=d27e6ac2a875fc84630fc91a6437afd0b11547e9;hpb=b8b0bb000baa2af9a93c9e7763fda02f36bde32c;p=openldap diff --git a/servers/slapd/overlays/rwm.h b/servers/slapd/overlays/rwm.h index d27e6ac2a8..be24b1a0a6 100644 --- a/servers/slapd/overlays/rwm.h +++ b/servers/slapd/overlays/rwm.h @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1999-2005 The OpenLDAP Foundation. + * Copyright 1999-2011 The OpenLDAP Foundation. * Portions Copyright 1999-2003 Howard Chu. * Portions Copyright 2000-2003 Pierangelo Masarati. * All rights reserved. @@ -24,10 +24,12 @@ #ifndef RWM_H #define RWM_H +#ifndef ENABLE_REWRITE +#error "librewrite must be enabled!" +#endif /* ENABLE_REWRITE */ + /* String rewrite library */ -#ifdef ENABLE_REWRITE #include "rewrite.h" -#endif /* ENABLE_REWRITE */ LDAP_BEGIN_DECL @@ -67,23 +69,23 @@ struct ldaprwmap { /* * DN rewriting */ -#ifdef ENABLE_REWRITE struct rewrite_info *rwm_rw; -#else /* !ENABLE_REWRITE */ - /* some time the suffix massaging without librewrite - * will be disabled */ - BerVarray rwm_suffix_massage; -#endif /* !ENABLE_REWRITE */ + BerVarray rwm_bva_rewrite; /* * Attribute/objectClass mapping */ 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 + BerVarray rwm_bva_map; + +#define RWM_F_NONE (0x0000U) +#define RWM_F_NORMALIZE_MAPPED_ATTRS (0x0001U) +#define RWM_F_DROP_UNREQUESTED_ATTRS (0x0002U) +#define RWM_F_SUPPORT_T_F (0x4000U) +#define RWM_F_SUPPORT_T_F_DISCOVER (0x8000U) +#define RWM_F_SUPPORT_T_F_MASK (RWM_F_SUPPORT_T_F) +#define RWM_F_SUPPORT_T_F_MASK2 (RWM_F_SUPPORT_T_F|RWM_F_SUPPORT_T_F_DISCOVER) unsigned rwm_flags; }; @@ -91,14 +93,9 @@ struct ldaprwmap { typedef struct dncookie { struct ldaprwmap *rwmap; -#ifdef ENABLE_REWRITE Connection *conn; char *ctx; SlapReply *rs; -#else /* !ENABLE_REWRITE */ - int normalized; - int tofrom; -#endif /* !ENABLE_REWRITE */ } dncookie; int rwm_dn_massage( dncookie *dc, struct berval *in, struct berval *dn ); @@ -123,21 +120,26 @@ rwm_map_filter( struct ldapmap *oc_map, struct berval *f ); +#if 0 /* unused! */ int rwm_map_attrs( struct ldapmap *at_map, AttributeName *a, int remap, char ***mapped_attrs ); +#endif int rwm_map_attrnames( + Operation *op, struct ldapmap *at_map, struct ldapmap *oc_map, AttributeName *an, AttributeName **anp, int remap ); +extern void rwm_mapping_dst_free ( void *mapping ); + extern void rwm_mapping_free ( void *mapping ); extern int rwm_map_config( @@ -150,29 +152,34 @@ extern int rwm_map_config( extern int rwm_filter_map_rewrite( + Operation *op, dncookie *dc, Filter *f, struct berval *fstr ); /* suffix massaging by means of librewrite */ -#ifdef ENABLE_REWRITE -extern int rwm_suffix_massage_config( struct rewrite_info *info, - struct berval *pvnc, struct berval *nvnc, - struct berval *prnc, struct berval *nrnc); -#endif /* ENABLE_REWRITE */ -extern int rwm_dnattr_rewrite( +extern int +rwm_suffix_massage_config( + struct rewrite_info *info, + struct berval *pvnc, + struct berval *nvnc, + struct berval *prnc, + struct berval *nrnc); +extern int +rwm_dnattr_rewrite( Operation *op, SlapReply *rs, void *cookie, BerVarray a_vals, BerVarray *pa_nvals ); -extern int rwm_referral_rewrite( +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_dnattr_result_rewrite( dncookie *dc, BerVarray a_vals, BerVarray a_nvals ); extern int rwm_referral_result_rewrite( dncookie *dc, BerVarray a_vals ); LDAP_END_DECL