From 4cdc54ba244f72a4a143e7a0e0c0b4fcfaa13d3c Mon Sep 17 00:00:00 2001 From: Tim Potter Date: Fri, 12 May 2000 06:27:35 +0000 Subject: While we're all making incompatible tdb changes, I changed the implementation of tdb_{store,get}_int() to store the length of the string key + 1 so the stored key contains the trailing NULL character. This allows normal string library routines to manipulate keys. Also renamed tdb_get_int() to tdb_fetch_int() to keep the set of verbs consistent. (This used to be commit a423c7c5f21dc4046530b85482dee88dcfcbf070) --- source3/nsswitch/winbindd_cache.c | 2 +- source3/nsswitch/winbindd_idmap.c | 7 ++++--- source3/printing/printing.c | 6 +++--- source3/tdb/tdbutil.c | 8 ++++---- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/source3/nsswitch/winbindd_cache.c b/source3/nsswitch/winbindd_cache.c index b6b753bae0..cd648c696c 100644 --- a/source3/nsswitch/winbindd_cache.c +++ b/source3/nsswitch/winbindd_cache.c @@ -101,7 +101,7 @@ static uint32 get_cache_sequence_number(char *domain_name, char *cache_type, cha uint32 seq_num; slprintf(keystr,sizeof(keystr),"CACHESEQ %s/%s/%s", domain_name, cache_type, subkey?subkey:""); - seq_num = (uint32)tdb_get_int(cache_tdb, keystr); + seq_num = (uint32)tdb_fetch_int(cache_tdb, keystr); DEBUG(4,("%s is %u\n", keystr, (unsigned)seq_num)); return seq_num; } diff --git a/source3/nsswitch/winbindd_idmap.c b/source3/nsswitch/winbindd_idmap.c index cd3fd2caab..15a9ac4009 100644 --- a/source3/nsswitch/winbindd_idmap.c +++ b/source3/nsswitch/winbindd_idmap.c @@ -40,7 +40,8 @@ static BOOL allocate_id(int *id, BOOL isgroup) /* Get current high water mark */ - if ((hwm = tdb_get_int(idmap_tdb, isgroup ? HWM_GROUP : HWM_USER)) == -1) { + if ((hwm = tdb_fetch_int(idmap_tdb, + isgroup ? HWM_GROUP : HWM_USER)) == -1) { return False; } @@ -217,14 +218,14 @@ BOOL winbindd_idmap_init(void) /* Create high water marks for group and user id */ - if (tdb_get_int(idmap_tdb, HWM_USER) == -1) { + if (tdb_fetch_int(idmap_tdb, HWM_USER) == -1) { if (tdb_store_int(idmap_tdb, HWM_USER, server_state.uid_low) == -1) { DEBUG(0, ("Unable to initialise user hwm in idmap database\n")); return False; } } - if (tdb_get_int(idmap_tdb, HWM_GROUP) == -1) { + if (tdb_fetch_int(idmap_tdb, HWM_GROUP) == -1) { if (tdb_store_int(idmap_tdb, HWM_GROUP, server_state.gid_low) == -1) { DEBUG(0, ("Unable to initialise group hwm in idmap database\n")); return False; diff --git a/source3/printing/printing.c b/source3/printing/printing.c index b23dd3aa73..0a2f494a27 100644 --- a/source3/printing/printing.c +++ b/source3/printing/printing.c @@ -76,7 +76,7 @@ BOOL print_backend_init(void) /* handle a Samba upgrade */ tdb_writelock(tdb); - if (tdb_get_int(tdb, "INFO/version") != PRINT_DATABASE_VERSION) { + if (tdb_fetch_int(tdb, "INFO/version") != PRINT_DATABASE_VERSION) { tdb_traverse(tdb, (tdb_traverse_func)tdb_delete, NULL); tdb_store_int(tdb, "INFO/version", PRINT_DATABASE_VERSION); } @@ -602,7 +602,7 @@ int print_job_start(int snum, char *jobname) /* lock the database */ tdb_writelock(tdb); - next_jobid = tdb_get_int(tdb, "INFO/nextjob"); + next_jobid = tdb_fetch_int(tdb, "INFO/nextjob"); if (next_jobid == -1) next_jobid = 1; for (jobid = next_jobid+1; jobid != next_jobid; ) { @@ -723,7 +723,7 @@ static BOOL print_cache_expired(int snum) fstring key; time_t t2, t = time(NULL); slprintf(key, sizeof(key), "CACHE/%s", lp_servicename(snum)); - t2 = tdb_get_int(tdb, key); + t2 = tdb_fetch_int(tdb, key); if (t2 == ((time_t)-1) || (t - t2) >= lp_lpqcachetime()) { return True; } diff --git a/source3/tdb/tdbutil.c b/source3/tdb/tdbutil.c index d7cc7f8b2a..2546b9d88c 100644 --- a/source3/tdb/tdbutil.c +++ b/source3/tdb/tdbutil.c @@ -26,7 +26,7 @@ /* fetch a value by a arbitrary blob key, return -1 if not found */ -int tdb_get_int_byblob(TDB_CONTEXT *tdb, char *keyval, size_t len) +int tdb_fetch_int_byblob(TDB_CONTEXT *tdb, char *keyval, size_t len) { TDB_DATA key, data; int ret; @@ -42,9 +42,9 @@ int tdb_get_int_byblob(TDB_CONTEXT *tdb, char *keyval, size_t len) } /* fetch a value by string key, return -1 if not found */ -int tdb_get_int(TDB_CONTEXT *tdb, char *keystr) +int tdb_fetch_int(TDB_CONTEXT *tdb, char *keystr) { - return tdb_get_int_byblob(tdb, keystr, strlen(keystr)); + return tdb_fetch_int_byblob(tdb, keystr, strlen(keystr) + 1); } /* store a value by an arbitary blob key, return 0 on success, -1 on failure */ @@ -63,7 +63,7 @@ int tdb_store_int_byblob(TDB_CONTEXT *tdb, char *keystr, size_t len, int v) /* store a value by string key, return 0 on success, -1 on failure */ int tdb_store_int(TDB_CONTEXT *tdb, char *keystr, int v) { - return tdb_store_int_byblob(tdb, keystr, strlen(keystr), v); + return tdb_store_int_byblob(tdb, keystr, strlen(keystr) + 1, v); } /* Store a buffer by a null terminated string key. Return 0 on success, -1 -- cgit