https://issues.apache.org/bugzilla/show_bug.cgi?id=44302
Christophe JAILLET <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #30254|0 |1 is patch| | --- Comment #7 from Christophe JAILLET <[email protected]> --- Comment on attachment 30254 --> https://issues.apache.org/bugzilla/attachment.cgi?id=30254 httpd patch to implement ldapi and ldap_initialize api >diff --git a/include/util_ldap.h b/include/util_ldap.h >index 3d5faed..ede304f 100644 >--- a/include/util_ldap.h >+++ b/include/util_ldap.h >@@ -106,7 +106,7 @@ typedef struct util_ldap_connection_t { > #if APR_HAS_THREADS > apr_thread_mutex_t *lock; /* Lock to indicate this connection > is in use */ > #endif >- >+ const char *url; > const char *host; /* Name of the LDAP server (or space > separated list) */ > int port; /* Port of the LDAP server */ > deref_options deref; /* how to handle alias dereferening */ >@@ -237,7 +237,7 @@ >APR_DECLARE_OPTIONAL_FN(apr_status_t,uldap_connection_unbind,(void *param)); > * const char > *binddn, const char *bindpw, deref_options deref, > * int netscapessl, > int starttls) > */ >-APR_DECLARE_OPTIONAL_FN(util_ldap_connection_t >*,uldap_connection_find,(request_rec *r, const char *host, int port, >+APR_DECLARE_OPTIONAL_FN(util_ldap_connection_t >*,uldap_connection_find,(request_rec *r, const char *url, const char *host, >int port, > const char *binddn, const > char *bindpw, deref_options deref, > int secure)); > >diff --git a/modules/aaa/mod_authnz_ldap.c b/modules/aaa/mod_authnz_ldap.c >index b7b132e..fc35993 100644 >--- a/modules/aaa/mod_authnz_ldap.c >+++ b/modules/aaa/mod_authnz_ldap.c >@@ -434,7 +434,7 @@ static util_ldap_connection_t >*get_connection_for_authz(request_rec *r, enum aut > bindpw = req->password; > } > >- return util_ldap_connection_find(r, sec->host, sec->port, >+ return util_ldap_connection_find(r, (const char *)sec->url, sec->host, >sec->port, > binddn, bindpw, > sec->deref, sec->secure); > } >@@ -487,7 +487,7 @@ static authn_status authn_ldap_check_password(request_rec >*r, const char *user, > binddn = ldap_determine_binddn(r, user); > } > >- ldc = util_ldap_connection_find(r, sec->host, sec->port, >+ ldc = util_ldap_connection_find(r, (const char *)sec->url, sec->host, >sec->port, > binddn, bindpw, > sec->deref, sec->secure); > } >@@ -1406,6 +1406,8 @@ static const char *mod_auth_ldap_parse_url(cmd_parms >*cmd, > sec->port = urld->lud_port? urld->lud_port : LDAP_PORT; > } > >+ sec->url = apr_pstrndup(cmd->pool, sec->url, strrchr((char *)url, '/') - >url); >+ > sec->have_ldap_url = 1; > > ap_log_error(APLOG_MARK, APLOG_TRACE1, 0, cmd->server, >diff --git a/modules/ldap/util_ldap.c b/modules/ldap/util_ldap.c >index dc08dd4..f0f099f 100644 >--- a/modules/ldap/util_ldap.c >+++ b/modules/ldap/util_ldap.c >@@ -291,7 +291,8 @@ static int uldap_connection_init(request_rec *r, > * some hosts with ports and some without. All hosts which do not > * specify a port will use the default port. > */ >- apr_ldap_init(r->pool, &(ldc->ldap), >+ >+ apr_ldap_init(r->pool, &(ldc->ldap), ldc->url, > ldc->host, > APR_LDAP_SSL == ldc->secure ? LDAPS_PORT : LDAP_PORT, > secure, &(result)); >@@ -686,7 +687,7 @@ static int compare_client_certs(apr_array_header_t *srcs, > * a pointer to the existing ldc structure will be returned. > */ > static util_ldap_connection_t * >- uldap_connection_find(request_rec *r, >+ uldap_connection_find(request_rec *r, const char *url, > const char *host, int port, > const char *binddn, const char *bindpw, > deref_options deref, int secure) >@@ -828,6 +829,7 @@ static util_ldap_connection_t * > apr_thread_mutex_lock(l->lock); > #endif > l->bound = 0; >+ l->url = url; > l->host = apr_pstrdup(l->pool, host); > l->port = port; > l->deref = deref; -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
