From c0e1c6505329972835ccbf6886f8aab8eb33e634 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 29 Apr 2000 04:05:38 +0000 Subject: put tdb utility functions in a separate file (This used to be commit 77009422a075300e5c07a3e75806a7dac47e2113) --- source3/tdb/tdb.c | 44 --------------------------------- source3/tdb/tdbutil.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 44 deletions(-) create mode 100644 source3/tdb/tdbutil.c (limited to 'source3/tdb') diff --git a/source3/tdb/tdb.c b/source3/tdb/tdb.c index e884bb34b9..c8860e2191 100644 --- a/source3/tdb/tdb.c +++ b/source3/tdb/tdb.c @@ -1309,47 +1309,3 @@ int tdb_unlockchain(TDB_CONTEXT *tdb, TDB_DATA key) } -/* these two utility functions provide convent routines for storing - simple string/value pairs in a tdb. They also serve as examples - */ - -/* 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) -{ - TDB_DATA key, data; - int ret; - - key.dptr = keyval; - key.dsize = len; - data = tdb_fetch(tdb, key); - if (!data.dptr || data.dsize != sizeof(int)) return -1; - - memcpy(&ret, data.dptr, sizeof(int)); - free(data.dptr); - return ret; -} -/* fetch a value by string key, return -1 if not found */ -int tdb_get_int(TDB_CONTEXT *tdb, char *keystr) -{ - return tdb_get_int_byblob(tdb, keystr, strlen(keystr)); -} - -/* store a value by an arbitary blob key, return 0 on success, -1 on failure */ -int tdb_store_int_byblob(TDB_CONTEXT *tdb, char *keystr, size_t len, int v) -{ - TDB_DATA key, data; - - key.dptr = keystr; - key.dsize = len; - data.dptr = (void *)&v; - data.dsize = sizeof(int); - - return tdb_store(tdb, key, data, TDB_REPLACE); -} - -/* 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); -} diff --git a/source3/tdb/tdbutil.c b/source3/tdb/tdbutil.c new file mode 100644 index 0000000000..7511020873 --- /dev/null +++ b/source3/tdb/tdbutil.c @@ -0,0 +1,67 @@ +/* + Unix SMB/Netbios implementation. + Version 3.0 + tdb utility functions + Copyright (C) Andrew Tridgell 1992-1998 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "includes.h" + +/* these are little tdb utility functions that are meant to make + dealing with a tdb database a little less cumbersome in Samba */ + + +/* 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) +{ + TDB_DATA key, data; + int ret; + + key.dptr = keyval; + key.dsize = len; + data = tdb_fetch(tdb, key); + if (!data.dptr || data.dsize != sizeof(int)) return -1; + + memcpy(&ret, data.dptr, sizeof(int)); + free(data.dptr); + return ret; +} + +/* fetch a value by string key, return -1 if not found */ +int tdb_get_int(TDB_CONTEXT *tdb, char *keystr) +{ + return tdb_get_int_byblob(tdb, keystr, strlen(keystr)); +} + +/* store a value by an arbitary blob key, return 0 on success, -1 on failure */ +int tdb_store_int_byblob(TDB_CONTEXT *tdb, char *keystr, size_t len, int v) +{ + TDB_DATA key, data; + + key.dptr = keystr; + key.dsize = len; + data.dptr = (void *)&v; + data.dsize = sizeof(int); + + return tdb_store(tdb, key, data, TDB_REPLACE); +} + +/* 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); +} -- cgit