diff options
author | Anatoliy Atanasov <anatoliy.atanasov@postpath.com> | 2010-05-04 11:48:18 +0200 |
---|---|---|
committer | Anatoliy Atanasov <anatoliy.atanasov@postpath.com> | 2010-05-04 18:31:47 +0200 |
commit | bcdaa23798f74cdec8973201a849f562929ea416 (patch) | |
tree | 23821532555966f9ab82b73efafe0c3055691cb8 /source4/lib/ldb | |
parent | b57d11f1b36389c2dba025912db32d465ef6e7c8 (diff) | |
download | samba-bcdaa23798f74cdec8973201a849f562929ea416.tar.gz samba-bcdaa23798f74cdec8973201a849f562929ea416.tar.bz2 samba-bcdaa23798f74cdec8973201a849f562929ea416.zip |
s4/rodc: Fix the callbacks up the stack to handle referrals on modify requests
Diffstat (limited to 'source4/lib/ldb')
-rw-r--r-- | source4/lib/ldb/modules/rdn_name.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/source4/lib/ldb/modules/rdn_name.c b/source4/lib/ldb/modules/rdn_name.c index a473f251af..f1c167cc39 100644 --- a/source4/lib/ldb/modules/rdn_name.c +++ b/source4/lib/ldb/modules/rdn_name.c @@ -70,6 +70,11 @@ static int rdn_name_add_callback(struct ldb_request *req, return ldb_module_done(ac->req, NULL, NULL, LDB_ERR_OPERATIONS_ERROR); } + + if (ares->type == LDB_REPLY_REFERRAL) { + return ldb_module_send_referral(ac->req, ares->referral); + } + if (ares->error != LDB_SUCCESS) { return ldb_module_done(ac->req, ares->controls, ares->response, ares->error); @@ -193,6 +198,11 @@ static int rdn_modify_callback(struct ldb_request *req, struct ldb_reply *ares) return ldb_module_done(ac->req, NULL, NULL, LDB_ERR_OPERATIONS_ERROR); } + + if (ares->type == LDB_REPLY_REFERRAL) { + return ldb_module_send_referral(ac->req, ares->referral); + } + if (ares->error != LDB_SUCCESS) { return ldb_module_done(ac->req, ares->controls, ares->response, ares->error); @@ -225,6 +235,11 @@ static int rdn_rename_callback(struct ldb_request *req, struct ldb_reply *ares) if (!ares) { goto error; } + + if (ares->type == LDB_REPLY_REFERRAL) { + return ldb_module_send_referral(ac->req, ares->referral); + } + if (ares->error != LDB_SUCCESS) { return ldb_module_done(ac->req, ares->controls, ares->response, ares->error); |