Partial ITS#3280 fix. ldap:// referrals only.

This commit is contained in:
Kurt Zeilenga 2004-08-28 03:25:59 +00:00
parent e29381da53
commit 1d3eccca9e

View File

@ -447,20 +447,22 @@ find_connection( LDAP *ld, LDAPURLDesc *srv, int any )
*/
{
LDAPConn *lc;
LDAPURLDesc *ls;
LDAPURLDesc *lcu, *lsu;
int lcu_port, lsu_port;
for ( lc = ld->ld_conns; lc != NULL; lc = lc->lconn_next ) {
for ( ls = srv; ls != NULL; ls = ls->lud_next ) {
if ( lc->lconn_server->lud_host != NULL &&
*lc->lconn_server->lud_host != '\0' &&
ls->lud_host != NULL && *ls->lud_host != '\0' &&
strcasecmp( ls->lud_host, lc->lconn_server->lud_host ) == 0
&& ls->lud_port == lc->lconn_server->lud_port ) {
lcu = lc->lconn_server;
lcu_port = lcu->lud_port ? lcu->lud_port : LDAP_PORT;
for ( lsu = srv; lsu != NULL; lsu = lsu->lud_next ) {
lsu_port = lsu->lud_port ? lsu->lud_port : LDAP_PORT;
if ( lcu->lud_host != NULL && *lcu->lud_host != '\0'
&& lsu->lud_host != NULL && *lsu->lud_host != '\0'
&& strcasecmp( lsu->lud_host, lcu->lud_host ) == 0
&& lsu_port == lcu_port ) {
return lc;
}
if ( !any ) {
break;
}
if ( !any ) break;
}
}