Skip to content
Snippets Groups Projects
Commit fb55668f authored by Quanah Gibson-Mount's avatar Quanah Gibson-Mount
Browse files

ITS#5679

parent ce09dfcb
No related branches found
No related tags found
No related merge requests found
...@@ -33,6 +33,7 @@ OpenLDAP 2.4.12 Engineering ...@@ -33,6 +33,7 @@ OpenLDAP 2.4.12 Engineering
Fixed slapo-rwm callback cleanup (ITS#5601,ITS#5687) Fixed slapo-rwm callback cleanup (ITS#5601,ITS#5687)
Fixed slapo-rwm attr mapping and merging (ITS#5624) Fixed slapo-rwm attr mapping and merging (ITS#5624)
Fixed slapo-rwm objectClass filtering (ITS#5647) Fixed slapo-rwm objectClass filtering (ITS#5647)
Fixed slapo-translucent filter usage on merged entries (ITS#5679)
Fixed slapo-unique filter validation (ITS#5581) Fixed slapo-unique filter validation (ITS#5581)
Fixed slapo-unique suffix testing (ITS#5641) Fixed slapo-unique suffix testing (ITS#5641)
Build Environment Build Environment
......
...@@ -663,6 +663,7 @@ static int translucent_search_cb(Operation *op, SlapReply *rs) { ...@@ -663,6 +663,7 @@ static int translucent_search_cb(Operation *op, SlapReply *rs) {
Entry *le, *re; Entry *le, *re;
Attribute *a, *ax, *an, *as = NULL; Attribute *a, *ax, *an, *as = NULL;
int rc; int rc;
int test_f = 0;
tc = op->o_callback->sc_private; tc = op->o_callback->sc_private;
...@@ -715,6 +716,7 @@ static int translucent_search_cb(Operation *op, SlapReply *rs) { ...@@ -715,6 +716,7 @@ static int translucent_search_cb(Operation *op, SlapReply *rs) {
Entry *tmp = entry_dup( re ); Entry *tmp = entry_dup( re );
be_entry_release_r( op, re ); be_entry_release_r( op, re );
re = tmp; re = tmp;
test_f = 1;
} }
} else { } else {
/* Else we have remote, get local */ /* Else we have remote, get local */
...@@ -795,7 +797,16 @@ static int translucent_search_cb(Operation *op, SlapReply *rs) { ...@@ -795,7 +797,16 @@ static int translucent_search_cb(Operation *op, SlapReply *rs) {
/* send it now */ /* send it now */
rs->sr_entry = re; rs->sr_entry = re;
rs->sr_flags |= REP_ENTRY_MUSTBEFREED; rs->sr_flags |= REP_ENTRY_MUSTBEFREED;
rc = SLAP_CB_CONTINUE; if ( test_f ) {
rc = test_filter( op, rs->sr_entry, tc->orig );
if ( rc == LDAP_COMPARE_TRUE ) {
rc = SLAP_CB_CONTINUE;
} else {
rc = 0;
}
} else {
rc = SLAP_CB_CONTINUE;
}
} }
} else if ( le ) { } else if ( le ) {
/* Only a local entry: remote was deleted /* Only a local entry: remote was deleted
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment