mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-24 00:29:35 -05:00
Finished emit support
This commit is contained in:
parent
edbe111c8c
commit
e21d97385d
3 changed files with 935 additions and 136 deletions
|
|
@ -69,12 +69,14 @@ struct ldaprwmap {
|
|||
* 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;
|
||||
BerVarray rwm_bva_map;
|
||||
};
|
||||
|
||||
/* Whatever context ldap_back_dn_massage needs... */
|
||||
|
|
@ -265,8 +267,8 @@ typedef struct metasubtree_t {
|
|||
union {
|
||||
struct berval msu_dn;
|
||||
struct {
|
||||
struct berval msr_regex_pattern;
|
||||
regex_t msr_regex;
|
||||
char *msr_regex_pattern;
|
||||
} msu_regex;
|
||||
} ms_un;
|
||||
#define ms_dn ms_un.msu_dn
|
||||
|
|
@ -287,6 +289,11 @@ typedef struct metacommon_t {
|
|||
unsigned mc_flags;
|
||||
#define META_BACK_CMN_ISSET(mc,f) ( ( (mc)->mc_flags & (f) ) == (f) )
|
||||
#define META_BACK_CMN_QUARANTINE(mc) META_BACK_CMN_ISSET( (mc), LDAP_BACK_F_QUARANTINE )
|
||||
#define META_BACK_CMN_CHASE_REFERRALS(mc) META_BACK_CMN_ISSET( (mc), LDAP_BACK_F_CHASE_REFERRALS )
|
||||
#define META_BACK_CMN_NOREFS(mc) META_BACK_CMN_ISSET( (mc), LDAP_BACK_F_NOREFS )
|
||||
#define META_BACK_CMN_NOUNDEFFILTER(mc) META_BACK_CMN_ISSET( (mc), LDAP_BACK_F_NOUNDEFFILTER )
|
||||
#define META_BACK_CMN_SAVECRED(mc) META_BACK_CMN_ISSET( (mc), LDAP_BACK_F_SAVECRED )
|
||||
#define META_BACK_CMN_ST_REQUEST(mc) META_BACK_CMN_ISSET( (mc), LDAP_BACK_F_ST_REQUEST )
|
||||
|
||||
#ifdef SLAPD_META_CLIENT_PR
|
||||
/*
|
||||
|
|
@ -668,6 +675,9 @@ meta_dncache_delete_entry(
|
|||
extern void
|
||||
meta_dncache_free( void *entry );
|
||||
|
||||
extern void
|
||||
meta_back_map_free( struct ldapmap *lm );
|
||||
|
||||
extern int
|
||||
meta_subtree_destroy( metasubtree_t *ms );
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -311,6 +311,13 @@ mapping_dst_free(
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
meta_back_map_free( struct ldapmap *lm )
|
||||
{
|
||||
avl_free( lm->remap, mapping_dst_free );
|
||||
avl_free( lm->map, mapping_free );
|
||||
}
|
||||
|
||||
static void
|
||||
target_free(
|
||||
metatarget_t *mt )
|
||||
|
|
@ -358,11 +365,12 @@ target_free(
|
|||
}
|
||||
if ( mt->mt_rwmap.rwm_rw ) {
|
||||
rewrite_info_delete( &mt->mt_rwmap.rwm_rw );
|
||||
if ( mt->mt_rwmap.rwm_bva_rewrite )
|
||||
ber_bvarray_free( mt->mt_rwmap.rwm_bva_rewrite );
|
||||
}
|
||||
avl_free( mt->mt_rwmap.rwm_oc.remap, mapping_dst_free );
|
||||
avl_free( mt->mt_rwmap.rwm_oc.map, mapping_free );
|
||||
avl_free( mt->mt_rwmap.rwm_at.remap, mapping_dst_free );
|
||||
avl_free( mt->mt_rwmap.rwm_at.map, mapping_free );
|
||||
meta_back_map_free( &mt->mt_rwmap.rwm_oc );
|
||||
meta_back_map_free( &mt->mt_rwmap.rwm_at );
|
||||
ber_bvarray_free( mt->mt_rwmap.rwm_bva_map );
|
||||
|
||||
free( mt );
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue