summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2012-05-10 10:27:50 -0400
committerMartin Kosek <mkosek@redhat.com>2012-05-11 08:37:41 +0200
commit58732a83bc4ea99ce9894f07232b890ae26682ef (patch)
treef8cec1e06e1597e61f7724323f504d6374a287bd
parent1565ce3a8c39326f814c9781b3df24c42402c1b5 (diff)
downloadfreeipa.git-58732a83bc4ea99ce9894f07232b890ae26682ef.tar.gz
freeipa.git-58732a83bc4ea99ce9894f07232b890ae26682ef.tar.xz
freeipa.git-58732a83bc4ea99ce9894f07232b890ae26682ef.zip
Return LDAP_SUCCESS on mods on a referral entry.
We currently return LDAP_REFERRAL which causes the mod to fail meaning that referral entries cannot be changed. All we really want to do is escape when we don't hvae an entry to modify. https://fedorahosted.org/freeipa/ticket/2237
-rw-r--r--daemons/ipa-slapi-plugins/ipa-uuid/ipa_uuid.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/daemons/ipa-slapi-plugins/ipa-uuid/ipa_uuid.c b/daemons/ipa-slapi-plugins/ipa-uuid/ipa_uuid.c
index 5430de4c..2b07de45 100644
--- a/daemons/ipa-slapi-plugins/ipa-uuid/ipa_uuid.c
+++ b/daemons/ipa-slapi-plugins/ipa-uuid/ipa_uuid.c
@@ -817,6 +817,15 @@ static int ipauuid_pre_op(Slapi_PBlock *pb, int modtype)
ret = slapi_search_internal_get_entry(tmp_dn, NULL, &e, getPluginID());
slapi_sdn_free(&tmp_dn);
+ if (ret == LDAP_REFERRAL) {
+ /* we have a referral so nothing for us to do, but return
+ * success so we allow the MOD to proceed.
+ */
+ ret = LDAP_SUCCESS;
+ free_entry = true;
+ goto done;
+ }
+
if (ret) {
/* ok a client tried to modify an entry that doesn't exist.
* Nothing to see here, move along ... */