summaryrefslogtreecommitdiffstats
path: root/source/tdb/tdbutil.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/tdb/tdbutil.c')
-rw-r--r--source/tdb/tdbutil.c37
1 files changed, 28 insertions, 9 deletions
diff --git a/source/tdb/tdbutil.c b/source/tdb/tdbutil.c
index 53011006327..fc45fa93606 100644
--- a/source/tdb/tdbutil.c
+++ b/source/tdb/tdbutil.c
@@ -104,11 +104,19 @@ int tdb_chainlock_with_timeout( TDB_CONTEXT *tdb, TDB_DATA key, unsigned int tim
Lock a chain by string. Return -1 if timeout or lock failed.
****************************************************************************/
-int tdb_lock_bystring(TDB_CONTEXT *tdb, const char *keyval, unsigned int timeout)
+int tdb_lock_bystring(TDB_CONTEXT *tdb, const char *keyval)
{
TDB_DATA key = make_tdb_data(keyval, strlen(keyval)+1);
- return tdb_chainlock_with_timeout_internal(tdb, key, timeout, F_WRLCK);
+ return tdb_chainlock(tdb, key);
+}
+
+int tdb_lock_bystring_with_timeout(TDB_CONTEXT *tdb, const char *keyval,
+ int timeout)
+{
+ TDB_DATA key = make_tdb_data(keyval, strlen(keyval)+1);
+
+ return tdb_chainlock_with_timeout(tdb, key, timeout);
}
/****************************************************************************
@@ -126,7 +134,7 @@ void tdb_unlock_bystring(TDB_CONTEXT *tdb, const char *keyval)
Read lock a chain by string. Return -1 if timeout or lock failed.
****************************************************************************/
-int tdb_read_lock_bystring(TDB_CONTEXT *tdb, const char *keyval, unsigned int timeout)
+int tdb_read_lock_bystring_with_timeout(TDB_CONTEXT *tdb, const char *keyval, unsigned int timeout)
{
TDB_DATA key = make_tdb_data(keyval, strlen(keyval)+1);
@@ -311,7 +319,7 @@ int32 tdb_change_int32_atomic(TDB_CONTEXT *tdb, const char *keystr, int32 *oldva
int32 val;
int32 ret = -1;
- if (tdb_lock_bystring(tdb, keystr,0) == -1)
+ if (tdb_lock_bystring(tdb, keystr) == -1)
return -1;
if ((val = tdb_fetch_int32(tdb, keystr)) == -1) {
@@ -352,7 +360,7 @@ BOOL tdb_change_uint32_atomic(TDB_CONTEXT *tdb, const char *keystr, uint32 *oldv
uint32 val;
BOOL ret = False;
- if (tdb_lock_bystring(tdb, keystr,0) == -1)
+ if (tdb_lock_bystring(tdb, keystr) == -1)
return False;
if (!tdb_fetch_uint32(tdb, keystr, &val)) {
@@ -495,21 +503,24 @@ BOOL tdb_pack_append(TALLOC_CTX *mem_ctx, uint8 **buf, size_t *len,
len1 = tdb_pack_va(NULL, 0, fmt, ap);
va_end(ap);
- if (mem_ctx != NULL)
+ if (mem_ctx != NULL) {
*buf = TALLOC_REALLOC_ARRAY(mem_ctx, *buf, uint8,
(*len) + len1);
- else
+ } else {
*buf = SMB_REALLOC_ARRAY(*buf, uint8, (*len) + len1);
+ }
- if (*buf == NULL)
+ if (*buf == NULL) {
return False;
+ }
va_start(ap, fmt);
len2 = tdb_pack_va((char *)(*buf)+(*len), len1, fmt, ap);
va_end(ap);
- if (len1 != len2)
+ if (len1 != len2) {
return False;
+ }
*len += len2;
@@ -794,6 +805,14 @@ TDB_CONTEXT *tdb_open_log(const char *name, int hash_size, int tdb_flags,
return tdb;
}
+/****************************************************************************
+ return the name of the current tdb file useful for external logging
+ functions
+****************************************************************************/
+const char *tdb_name(struct tdb_context *tdb)
+{
+ return tdb->name;
+}
/****************************************************************************
Allow tdb_delete to be used as a tdb_traversal_fn.