summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2011-10-06 21:29:04 +0200
committerMichael Adam <obnox@samba.org>2011-10-11 15:51:00 +0200
commit67600117610eda2bd7ad2802bcc7a9147720e659 (patch)
tree1937d78a7dff356d404eb4bb9ba6109a408c4a41
parentc9bc1e492404077c6b40b5cefe33e859503a4227 (diff)
downloadsamba-67600117610eda2bd7ad2802bcc7a9147720e659.tar.gz
samba-67600117610eda2bd7ad2802bcc7a9147720e659.tar.bz2
samba-67600117610eda2bd7ad2802bcc7a9147720e659.zip
s3:dbwrap: change dbwrap_store_uint32() to NTSTATUS return type
for consistency and better error propagation Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Tue Oct 11 15:51:00 CEST 2011 on sn-devel-104
-rw-r--r--source3/lib/dbwrap/dbwrap.h3
-rw-r--r--source3/lib/dbwrap/dbwrap_util.c7
-rw-r--r--source3/passdb/account_pol.c6
-rw-r--r--source3/passdb/pdb_tdb.c3
-rw-r--r--source3/winbindd/idmap_tdb.c13
5 files changed, 18 insertions, 14 deletions
diff --git a/source3/lib/dbwrap/dbwrap.h b/source3/lib/dbwrap/dbwrap.h
index f3e3bfe2d4..f0646d3ec1 100644
--- a/source3/lib/dbwrap/dbwrap.h
+++ b/source3/lib/dbwrap/dbwrap.h
@@ -76,7 +76,8 @@ NTSTATUS dbwrap_store_int32(struct db_context *db, const char *keystr,
int32_t v);
NTSTATUS dbwrap_fetch_uint32(struct db_context *db, const char *keystr,
uint32_t *val);
-int dbwrap_store_uint32(struct db_context *db, const char *keystr, uint32_t v);
+NTSTATUS dbwrap_store_uint32(struct db_context *db, const char *keystr,
+ uint32_t v);
NTSTATUS dbwrap_change_uint32_atomic(struct db_context *db, const char *keystr,
uint32_t *oldval, uint32_t change_val);
NTSTATUS dbwrap_trans_change_uint32_atomic(struct db_context *db,
diff --git a/source3/lib/dbwrap/dbwrap_util.c b/source3/lib/dbwrap/dbwrap_util.c
index 31beadb6a2..48bd9bb13b 100644
--- a/source3/lib/dbwrap/dbwrap_util.c
+++ b/source3/lib/dbwrap/dbwrap_util.c
@@ -98,7 +98,8 @@ NTSTATUS dbwrap_fetch_uint32(struct db_context *db, const char *keystr,
return NT_STATUS_OK;
}
-int dbwrap_store_uint32(struct db_context *db, const char *keystr, uint32_t v)
+NTSTATUS dbwrap_store_uint32(struct db_context *db, const char *keystr,
+ uint32_t v)
{
struct db_record *rec;
uint32 v_store;
@@ -106,7 +107,7 @@ int dbwrap_store_uint32(struct db_context *db, const char *keystr, uint32_t v)
rec = dbwrap_fetch_locked(db, NULL, string_term_tdb_data(keystr));
if (rec == NULL) {
- return -1;
+ return NT_STATUS_INVALID_PARAMETER;
}
SIVAL(&v_store, 0, v);
@@ -116,7 +117,7 @@ int dbwrap_store_uint32(struct db_context *db, const char *keystr, uint32_t v)
sizeof(v_store)),
TDB_REPLACE);
TALLOC_FREE(rec);
- return NT_STATUS_IS_OK(status) ? 0 : -1;
+ return status;
}
/**
diff --git a/source3/passdb/account_pol.c b/source3/passdb/account_pol.c
index bd8cdf725f..a32d07517d 100644
--- a/source3/passdb/account_pol.c
+++ b/source3/passdb/account_pol.c
@@ -265,8 +265,10 @@ bool init_account_policy(void)
}
if (version != DATABASE_VERSION) {
- if (dbwrap_store_uint32(db, vstring, DATABASE_VERSION) != 0) {
- DEBUG(0, ("dbwrap_store_uint32 failed\n"));
+ status = dbwrap_store_uint32(db, vstring, DATABASE_VERSION);
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(0, ("dbwrap_store_uint32 failed: %s\n",
+ nt_errstr(status)));
goto cancel;
}
diff --git a/source3/passdb/pdb_tdb.c b/source3/passdb/pdb_tdb.c
index f16d99d0f4..01c0def57f 100644
--- a/source3/passdb/pdb_tdb.c
+++ b/source3/passdb/pdb_tdb.c
@@ -345,7 +345,8 @@ static bool tdbsam_upgrade_next_rid(struct db_context *db)
rid = BASE_RID;
}
- if (dbwrap_store_uint32(db, NEXT_RID_STRING, rid) != 0) {
+ status = dbwrap_store_uint32(db, NEXT_RID_STRING, rid);
+ if (!NT_STATUS_IS_OK(status)) {
return false;
}
diff --git a/source3/winbindd/idmap_tdb.c b/source3/winbindd/idmap_tdb.c
index 339655f044..1d1ba64c21 100644
--- a/source3/winbindd/idmap_tdb.c
+++ b/source3/winbindd/idmap_tdb.c
@@ -251,7 +251,6 @@ static bool idmap_tdb_upgrade(struct idmap_domain *dom, struct db_context *db)
static NTSTATUS idmap_tdb_init_hwm(struct idmap_domain *dom)
{
- int ret;
uint32_t low_uid;
uint32_t low_gid;
bool update_uid = false;
@@ -281,21 +280,21 @@ static NTSTATUS idmap_tdb_init_hwm(struct idmap_domain *dom)
}
if (update_uid) {
- ret = dbwrap_store_uint32(ctx->db, HWM_USER, dom->low_id);
- if (ret == -1) {
+ status = dbwrap_store_uint32(ctx->db, HWM_USER, dom->low_id);
+ if (!NT_STATUS_IS_OK(status)) {
dbwrap_transaction_cancel(ctx->db);
DEBUG(0, ("Unable to initialise user hwm in idmap "
- "database\n"));
+ "database: %s\n", nt_errstr(status)));
return NT_STATUS_INTERNAL_DB_ERROR;
}
}
if (update_gid) {
- ret = dbwrap_store_uint32(ctx->db, HWM_GROUP, dom->low_id);
- if (ret == -1) {
+ status = dbwrap_store_uint32(ctx->db, HWM_GROUP, dom->low_id);
+ if (!NT_STATUS_IS_OK(status)) {
dbwrap_transaction_cancel(ctx->db);
DEBUG(0, ("Unable to initialise group hwm in idmap "
- "database\n"));
+ "database: %s\n", nt_errstr(status)));
return NT_STATUS_INTERNAL_DB_ERROR;
}
}