ldap/servers/plugins/replication/repl5_plugins.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
New commits:
commit 383cc74f8bd2556ad95b5701d9aa7fecb8749fe3
Author: Thierry bordaz (tbordaz) <tbordaz(a)redhat.com>
Date: Thu Jun 6 14:59:24 2013 +0200
Ticket 47350 - (Cont.) Allow search to look up 'in memory RUV'
Bug Description:
Returning the in memory RUV in place of the DB RUV is not
systematically the right thing to do.
For administrative operations (like total update), the server
wants to access the real DB RUV and not the in memory RUV.
Fix Description:
The fix checks if the search is an internal search.
if it is it returns the DB RUV (tombstone)
https://fedorahosted.org/389/ticket/47350
Reviewed by: Rich and Noriko (thanks for your review and help :) )
Platforms tested: Fedora 18
Flag Day: no
Doc impact: no
diff --git a/ldap/servers/plugins/replication/repl5_plugins.c
b/ldap/servers/plugins/replication/repl5_plugins.c
index cb5fe5c..5981d0c 100644
--- a/ldap/servers/plugins/replication/repl5_plugins.c
+++ b/ldap/servers/plugins/replication/repl5_plugins.c
@@ -645,13 +645,15 @@ multimaster_ruv_search(Slapi_PBlock *pb)
{
Slapi_Entry *e, *e_alt;
Slapi_DN *suffix_sdn;
+ Slapi_Operation *operation;
slapi_pblock_get(pb, SLAPI_SEARCH_ENTRY_ORIG, &e);
+ slapi_pblock_get( pb, SLAPI_OPERATION, &operation);
- if (e == NULL)
+ if ((e == NULL) || (operation == NULL))
return 0;
- if (is_ruv_tombstone_entry(e)) {
+ if (!operation_is_flag_set(operation, OP_FLAG_INTERNAL) &&
is_ruv_tombstone_entry(e)) {
/* We are about to send back the database RUV, we need to return
* in memory RUV instead
*/