X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldap%2Fback-ldap.h;h=ffe616e24b564c3111efc854fde66193c14c7487;hb=bf35f8e37fa2516daa02a8c607dd2326b2be40e9;hp=4c7bbc2c50f684bb8ae6b5e064b8f87045f497a3;hpb=0e2af54a3ffdeebe3901370683be56fcc53023b0;p=openldap diff --git a/servers/slapd/back-ldap/back-ldap.h b/servers/slapd/back-ldap/back-ldap.h index 4c7bbc2c50..ffe616e24b 100644 --- a/servers/slapd/back-ldap/back-ldap.h +++ b/servers/slapd/back-ldap/back-ldap.h @@ -1,7 +1,7 @@ /* back-ldap.h - ldap backend header file */ /* $OpenLDAP$ */ /* - * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. + * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ /* This is an altered version */ @@ -49,12 +49,16 @@ LDAP_BEGIN_DECL struct slap_conn; struct slap_op; +struct slap_backend_db; struct ldapconn { struct slap_conn *conn; LDAP *ld; + struct berval cred; struct berval bound_dn; + struct berval local_dn; int bound; + ldap_pvt_thread_mutex_t lc_mutex; }; struct ldapmap { @@ -70,15 +74,17 @@ struct ldapmapping { }; struct ldapinfo { + struct slap_backend_db *be; char *url; char *binddn; char *bindpw; ldap_pvt_thread_mutex_t conn_mutex; + int savecred; Avlnode *conntree; #ifdef ENABLE_REWRITE struct rewrite_info *rwinfo; #else /* !ENABLE_REWRITE */ - struct berval **suffix_massage; + BerVarray suffix_massage; #endif /* !ENABLE_REWRITE */ struct ldapmap oc_map; @@ -87,9 +93,10 @@ struct ldapinfo { struct ldapconn *ldap_back_getconn(struct ldapinfo *li, struct slap_conn *conn, struct slap_op *op); -int ldap_back_dobind(struct ldapconn *lc, Operation *op); +int ldap_back_dobind(struct ldapinfo *li, struct ldapconn *lc, Connection *conn, Operation *op); int ldap_back_map_result(int err); -int ldap_back_op_result(struct ldapconn *lc, Operation *op); +int ldap_back_op_result(struct ldapinfo *li, struct ldapconn *lc, + Connection *conn, Operation *op, ber_int_t msgid, int rc, int sendok); int back_ldap_LTX_init_module(int argc, char *argv[]); void ldap_back_dn_massage(struct ldapinfo *li, struct berval *dn, @@ -97,13 +104,17 @@ void ldap_back_dn_massage(struct ldapinfo *li, struct berval *dn, extern int ldap_back_conn_cmp( const void *c1, const void *c2); extern int ldap_back_conn_dup( void *c1, void *c2 ); +extern void ldap_back_conn_free( void *c ); +/* attributeType/objectClass mapping */ 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 ); +#define BACKLDAP_MAP 0 +#define BACKLDAP_REMAP 1 char * ldap_back_map_filter( struct ldapmap *at_map, @@ -118,13 +129,36 @@ ldap_back_map_attrs( int remap ); -extern void mapping_free ( struct ldapmapping *mapping ); +extern void mapping_free ( void *mapping ); +extern int ldap_back_map_config( + struct ldapmap *oc_map, + struct ldapmap *at_map, + const char *fname, + int lineno, + int argc, + char **argv ); + +extern int +ldap_back_filter_map_rewrite_( +#ifdef ENABLE_REWRITE + struct rewrite_info *info, + void *cookie, +#endif /* ENABLE_REWRITE */ + struct ldapmap *at_map, + struct ldapmap *oc_map, + Filter *f, + struct berval *fstr, + int remap ); + +/* suffix massaging by means of librewrite */ #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, struct berval **a_vals, void *cookie ); +extern int suffix_massage_config( struct rewrite_info *info, + struct berval *pvnc, struct berval *nvnc, + struct berval *prnc, struct berval *nrnc); +extern int ldap_dnattr_rewrite( struct rewrite_info *rwinfo, BerVarray a_vals, void *cookie ); #endif /* ENABLE_REWRITE */ LDAP_END_DECL -#endif +#endif /* SLAPD_LDAP_H */