summaryrefslogtreecommitdiff
path: root/source3/tdb
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2003-01-12 12:23:37 +0000
committerAndrew Bartlett <abartlet@samba.org>2003-01-12 12:23:37 +0000
commitfd88966c470ec125476c9c8d4cb68678ac249e47 (patch)
tree95e1c2ec68d443cf4d5eee1686251f79791eae9d /source3/tdb
parente009abb20a60a59f5923915b7c9e46e5244337de (diff)
downloadsamba-fd88966c470ec125476c9c8d4cb68678ac249e47.tar.gz
samba-fd88966c470ec125476c9c8d4cb68678ac249e47.tar.bz2
samba-fd88966c470ec125476c9c8d4cb68678ac249e47.zip
Keep all the const warnings in one place, by adding a utility function to
make the TDB_DATA. Andrew Bartlett (This used to be commit f087fe546fd0c943dec022c657f849803f4b807e)
Diffstat (limited to 'source3/tdb')
-rw-r--r--source3/tdb/tdbutil.c75
1 files changed, 31 insertions, 44 deletions
diff --git a/source3/tdb/tdbutil.c b/source3/tdb/tdbutil.c
index d66a0a4d73..da155de4d7 100644
--- a/source3/tdb/tdbutil.c
+++ b/source3/tdb/tdbutil.c
@@ -35,6 +35,18 @@ static void gotalarm_sig(void)
gotalarm = 1;
}
+/***************************************************************
+ Make a TDB_DATA and keep the const warning in one place
+****************************************************************/
+
+static TDB_DATA make_tdb_data(const char *dptr, size_t dsize)
+{
+ TDB_DATA ret;
+ ret.dptr = dptr;
+ ret.dsize = dsize;
+ return ret;
+}
+
/****************************************************************************
Lock a chain with timeout (in seconds).
****************************************************************************/
@@ -79,10 +91,7 @@ static int tdb_chainlock_with_timeout( TDB_CONTEXT *tdb, TDB_DATA key, unsigned
int tdb_lock_bystring(TDB_CONTEXT *tdb, const char *keyval, unsigned int timeout)
{
- TDB_DATA key;
-
- key.dptr = keyval;
- key.dsize = strlen(keyval)+1;
+ TDB_DATA key = make_tdb_data(keyval, strlen(keyval)+1);
return tdb_chainlock_with_timeout(tdb, key, timeout, F_WRLCK);
}
@@ -93,11 +102,8 @@ int tdb_lock_bystring(TDB_CONTEXT *tdb, const char *keyval, unsigned int timeout
void tdb_unlock_bystring(TDB_CONTEXT *tdb, const char *keyval)
{
- TDB_DATA key;
+ TDB_DATA key = make_tdb_data(keyval, strlen(keyval)+1);
- key.dptr = keyval;
- key.dsize = strlen(keyval)+1;
-
tdb_chainunlock(tdb, key);
}
@@ -107,10 +113,7 @@ void tdb_unlock_bystring(TDB_CONTEXT *tdb, const char *keyval)
int tdb_read_lock_bystring(TDB_CONTEXT *tdb, const char *keyval, unsigned int timeout)
{
- TDB_DATA key;
-
- key.dptr = keyval;
- key.dsize = strlen(keyval)+1;
+ TDB_DATA key = make_tdb_data(keyval, strlen(keyval)+1);
return tdb_chainlock_with_timeout(tdb, key, timeout, F_RDLCK);
}
@@ -121,10 +124,7 @@ int tdb_read_lock_bystring(TDB_CONTEXT *tdb, const char *keyval, unsigned int ti
void tdb_read_unlock_bystring(TDB_CONTEXT *tdb, const char *keyval)
{
- TDB_DATA key;
-
- key.dptr = keyval;
- key.dsize = strlen(keyval)+1;
+ TDB_DATA key = make_tdb_data(keyval, strlen(keyval)+1);
tdb_chainunlock_read(tdb, key);
}
@@ -137,11 +137,10 @@ void tdb_read_unlock_bystring(TDB_CONTEXT *tdb, const char *keyval)
int32 tdb_fetch_int32_byblob(TDB_CONTEXT *tdb, const char *keyval, size_t len)
{
- TDB_DATA key, data;
+ TDB_DATA key = make_tdb_data(keyval, len);
+ TDB_DATA data;
int32 ret;
- key.dptr = keyval;
- key.dsize = len;
data = tdb_fetch(tdb, key);
if (!data.dptr || data.dsize != sizeof(int32)) {
SAFE_FREE(data.dptr);
@@ -170,11 +169,10 @@ int32 tdb_fetch_int32(TDB_CONTEXT *tdb, const char *keystr)
int tdb_store_int32_byblob(TDB_CONTEXT *tdb, const char *keystr, size_t len, int32 v)
{
- TDB_DATA key, data;
+ TDB_DATA key = make_tdb_data(keystr, len);
+ TDB_DATA data;
int32 v_store;
- key.dptr = keystr;
- key.dsize = len;
SIVAL(&v_store,0,v);
data.dptr = (void *)&v_store;
data.dsize = sizeof(int32);
@@ -199,10 +197,9 @@ int tdb_store_int32(TDB_CONTEXT *tdb, const char *keystr, int32 v)
BOOL tdb_fetch_uint32_byblob(TDB_CONTEXT *tdb, const char *keyval, size_t len, uint32 *value)
{
- TDB_DATA key, data;
+ TDB_DATA key = make_tdb_data(keyval, len);
+ TDB_DATA data;
- key.dptr = keyval;
- key.dsize = len;
data = tdb_fetch(tdb, key);
if (!data.dptr || data.dsize != sizeof(uint32)) {
SAFE_FREE(data.dptr);
@@ -231,12 +228,11 @@ BOOL tdb_fetch_uint32(TDB_CONTEXT *tdb, const char *keystr, uint32 *value)
BOOL tdb_store_uint32_byblob(TDB_CONTEXT *tdb, const char *keystr, size_t len, uint32 value)
{
- TDB_DATA key, data;
+ TDB_DATA key = make_tdb_data(keystr, len);
+ TDB_DATA data;
uint32 v_store;
BOOL ret = True;
- key.dptr = keystr;
- key.dsize = len;
SIVAL(&v_store, 0, value);
data.dptr = (void *)&v_store;
data.dsize = sizeof(uint32);
@@ -263,12 +259,9 @@ BOOL tdb_store_uint32(TDB_CONTEXT *tdb, const char *keystr, uint32 value)
int tdb_store_by_string(TDB_CONTEXT *tdb, const char *keystr, TDB_DATA data, int flags)
{
- TDB_DATA key;
-
- key.dptr = keystr;
- key.dsize = strlen(keystr) + 1;
-
- return tdb_store(tdb, key, data, flags);
+ TDB_DATA key = make_tdb_data(keystr, strlen(keystr)+1);
+
+ return tdb_store(tdb, key, data, flags);
}
/****************************************************************************
@@ -278,12 +271,9 @@ int tdb_store_by_string(TDB_CONTEXT *tdb, const char *keystr, TDB_DATA data, int
TDB_DATA tdb_fetch_by_string(TDB_CONTEXT *tdb, const char *keystr)
{
- TDB_DATA key;
+ TDB_DATA key = make_tdb_data(keystr, strlen(keystr)+1);
- key.dptr = keystr;
- key.dsize = strlen(keystr) + 1;
-
- return tdb_fetch(tdb, key);
+ return tdb_fetch(tdb, key);
}
/****************************************************************************
@@ -292,12 +282,9 @@ TDB_DATA tdb_fetch_by_string(TDB_CONTEXT *tdb, const char *keystr)
int tdb_delete_by_string(TDB_CONTEXT *tdb, const char *keystr)
{
- TDB_DATA key;
-
- key.dptr = keystr;
- key.dsize = strlen(keystr) + 1;
+ TDB_DATA key = make_tdb_data(keystr, strlen(keystr)+1);
- return tdb_delete(tdb, key);
+ return tdb_delete(tdb, key);
}
/****************************************************************************