mirror of
https://github.com/samba-team/samba.git
synced 2025-03-01 04:58:35 +03:00
r12534: Make the transaction code fill the error string on failure.
Andrew Bartlett (This used to be commit 2f54d7f774434f2a8b89ae01e993c4a1d16ce861)
This commit is contained in:
parent
5811b6dac5
commit
b1c80c3cfa
@ -126,13 +126,22 @@ static void ldb_reset_err_string(struct ldb_context *ldb)
|
||||
int ldb_transaction_start(struct ldb_context *ldb)
|
||||
{
|
||||
struct ldb_module *module;
|
||||
int status;
|
||||
FIRST_OP(ldb, start_transaction);
|
||||
|
||||
ldb->transaction_active++;
|
||||
|
||||
ldb_reset_err_string(ldb);
|
||||
|
||||
return module->ops->start_transaction(module);
|
||||
status = module->ops->start_transaction(module);
|
||||
if (status != LDB_SUCCESS) {
|
||||
if (ldb->err_string == NULL) {
|
||||
/* no error string was setup by the backend */
|
||||
ldb_set_errstring(ldb->modules,
|
||||
talloc_asprintf(ldb, "ldb transaction start error %d", status));
|
||||
}
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -141,6 +150,7 @@ int ldb_transaction_start(struct ldb_context *ldb)
|
||||
int ldb_transaction_commit(struct ldb_context *ldb)
|
||||
{
|
||||
struct ldb_module *module;
|
||||
int status;
|
||||
FIRST_OP(ldb, end_transaction);
|
||||
|
||||
if (ldb->transaction_active > 0) {
|
||||
@ -151,7 +161,15 @@ int ldb_transaction_commit(struct ldb_context *ldb)
|
||||
|
||||
ldb_reset_err_string(ldb);
|
||||
|
||||
return module->ops->end_transaction(module);
|
||||
status = module->ops->end_transaction(module);
|
||||
if (status != LDB_SUCCESS) {
|
||||
if (ldb->err_string == NULL) {
|
||||
/* no error string was setup by the backend */
|
||||
ldb_set_errstring(ldb->modules,
|
||||
talloc_asprintf(ldb, "ldb transaction commit error %d", status));
|
||||
}
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -160,6 +178,7 @@ int ldb_transaction_commit(struct ldb_context *ldb)
|
||||
int ldb_transaction_cancel(struct ldb_context *ldb)
|
||||
{
|
||||
struct ldb_module *module;
|
||||
int status;
|
||||
FIRST_OP(ldb, del_transaction);
|
||||
|
||||
if (ldb->transaction_active > 0) {
|
||||
@ -168,7 +187,15 @@ int ldb_transaction_cancel(struct ldb_context *ldb)
|
||||
return LDB_ERR_OPERATIONS_ERROR;
|
||||
}
|
||||
|
||||
return module->ops->del_transaction(module);
|
||||
status = module->ops->del_transaction(module);
|
||||
if (status != LDB_SUCCESS) {
|
||||
if (ldb->err_string == NULL) {
|
||||
/* no error string was setup by the backend */
|
||||
ldb_set_errstring(ldb->modules,
|
||||
talloc_asprintf(ldb, "ldb transaction cancel error %d", status));
|
||||
}
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user