]> git.sur5r.net Git - openldap/commitdiff
From HEAD:
authorKurt Zeilenga <kurt@openldap.org>
Tue, 16 May 2006 01:41:38 +0000 (01:41 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Tue, 16 May 2006 01:41:38 +0000 (01:41 +0000)
+       Fixed slapd-bdb/hdb referral issue (ITS#4548)

CHANGES
servers/slapd/back-bdb/referral.c

diff --git a/CHANGES b/CHANGES
index 9e197d0c1d75143baa734e10e04a939f956ef47c..315e0a734c45343fe2403cdb449ece5fec48ad9a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -19,8 +19,9 @@ OpenLDAP 2.3.22 Release
        Fixed slapd slap_send_ldap_result bug (ITS#4499)
        Fixed slapd thread pool init issue (ITS#4513)
        Added slapd syncrepl mandatory searchbase check
-       Fixed slapd-bdb pre/post-read freeing (ITS#4532)
-       Fixed slapd-bdb pre/post-read unavailable issue (ITS#4538)
+       Fixed slapd-bdb/hdb pre/post-read freeing (ITS#4532)
+       Fixed slapd-bdb/hdb pre/post-read unavailable issue (ITS#4538)
+       Fixed slapd-bdb/hdb referral issue (ITS#4548)
        Fixed slapd-hdb IDL sort issue (ITS#4531)
        Fixed slapd-ldap proxyAuthz of bound identity/override (ITS#4497)
        Fixed slapd-ldap/meta protocol version propagation (ITS#4488)
index 97305f9f54ea0d0b0bf2560cc2b749c610aaf065..168da4677d54275fcad90ddae900b930be368ef7 100644 (file)
@@ -91,8 +91,11 @@ dn2entry_retry:
                                (long) op->o_tag, op->o_req_dn.bv_val, e->e_name.bv_val );
 
                        if( is_entry_referral( e ) ) {
+                               BerVarray ref = get_entry_referrals( op, e );
                                rc = LDAP_OTHER;
-                               rs->sr_ref = get_entry_referrals( op, e );
+                               rs->sr_ref = referral_rewrite( ref, NULL,
+                                       &op->o_req_dn, LDAP_SCOPE_DEFAULT );
+                               ber_bvarray_free( ref );
                                if ( rs->sr_ref ) {
                                        rs->sr_matched = ber_strdup_x(
                                        e->e_name.bv_val, op->o_tmpmemctx );