summaryrefslogtreecommitdiff
path: root/source4/dsdb
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2008-12-16 08:40:49 +0100
committerAndrew Bartlett <abartlet@samba.org>2008-12-17 12:29:25 +1100
commitb65f1a097754d32dd8b156e719d4a4f328bf4fbc (patch)
tree26a934ffc22cbfeb10421d63a5bddd7fa0036b2e /source4/dsdb
parentced158d25066a236fba36c0e8391de1eab301a17 (diff)
downloadsamba-b65f1a097754d32dd8b156e719d4a4f328bf4fbc.tar.gz
samba-b65f1a097754d32dd8b156e719d4a4f328bf4fbc.tar.bz2
samba-b65f1a097754d32dd8b156e719d4a4f328bf4fbc.zip
s4:samldb: improve error strings
When things go wrong with LDB, this routine seems to be particularly sensitive to it. This extra debugging should help the next poor soul who breaks LDB. Signed-off-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'source4/dsdb')
-rw-r--r--source4/dsdb/samdb/ldb_modules/samldb.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/samldb.c b/source4/dsdb/samdb/ldb_modules/samldb.c
index 95a16b5527..627e15ab93 100644
--- a/source4/dsdb/samdb/ldb_modules/samldb.c
+++ b/source4/dsdb/samdb/ldb_modules/samldb.c
@@ -346,13 +346,14 @@ static int samldb_get_parent_domain_callback(struct ldb_request *req,
}
nextRid = ldb_msg_find_attr_as_string(ares->message,
- "nextRid", NULL);
+ "nextRid", NULL);
if (nextRid == NULL) {
ldb_asprintf_errstring(ac->module->ldb,
- "attribute nextRid not found in %s\n",
- ldb_dn_get_linearized(ares->message->dn));
+ "while looking for domain above %s attribute nextRid not found in %s\n",
+ ldb_dn_get_linearized(ac->req->op.add.message->dn),
+ ldb_dn_get_linearized(ares->message->dn));
ret = LDB_ERR_OPERATIONS_ERROR;
- break;;
+ break;
}
ac->next_rid = strtol(nextRid, NULL, 0);
@@ -369,6 +370,7 @@ static int samldb_get_parent_domain_callback(struct ldb_request *req,
talloc_free(ares);
ret = LDB_SUCCESS;
+ ldb_reset_err_string(ac->module->ldb);
break;
case LDB_REPLY_REFERRAL:
@@ -1067,8 +1069,8 @@ static int samldb_foreign_notice_sid_callback(struct ldb_request *req,
"nextRid", NULL);
if (nextRid == NULL) {
ldb_asprintf_errstring(ac->module->ldb,
- "attribute nextRid not found in %s\n",
- ldb_dn_get_linearized(ares->message->dn));
+ "while looking for forign sid %s attribute nextRid not found in %s\n",
+ dom_sid_string(ares, ac->sid), ldb_dn_get_linearized(ares->message->dn));
ret = LDB_ERR_OPERATIONS_ERROR;
break;
}