X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldap%2Fback-ldap.h;h=ffe616e24b564c3111efc854fde66193c14c7487;hb=bf35f8e37fa2516daa02a8c607dd2326b2be40e9;hp=15695231a0969ebe8787b839176164e84aaf33aa;hpb=6939c531700652491f4be4688c6a1f35a1ab8a18;p=openldap diff --git a/servers/slapd/back-ldap/back-ldap.h b/servers/slapd/back-ldap/back-ldap.h index 15695231a0..ffe616e24b 100644 --- a/servers/slapd/back-ldap/back-ldap.h +++ b/servers/slapd/back-ldap/back-ldap.h @@ -49,13 +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 { @@ -71,6 +74,7 @@ struct ldapmapping { }; struct ldapinfo { + struct slap_backend_db *be; char *url; char *binddn; char *bindpw; @@ -89,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, @@ -99,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, @@ -122,6 +131,27 @@ ldap_back_map_attrs( 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, struct berval *pvnc, struct berval *nvnc, @@ -131,4 +161,4 @@ extern int ldap_dnattr_rewrite( struct rewrite_info *rwinfo, BerVarray a_vals, v LDAP_END_DECL -#endif +#endif /* SLAPD_LDAP_H */