#undef DBGC_CLASS
#define DBGC_CLASS DBGC_RPC_SRV
-static TDB_CONTEXT *tdb_reg;
+static struct tdb_wrap *tdb_reg = NULL;
static int tdb_refcount;
#define VALUE_PREFIX "SAMBA_REGVAL"
* transaction behaviour.
*/
- if ( tdb_transaction_start( tdb_reg ) == -1 ) {
+ if ( tdb_transaction_start( tdb_reg->tdb ) == -1 ) {
DEBUG(0, ("init_registry_data: tdb_transaction_start "
"failed\n"));
return False;
TALLOC_FREE( values );
}
- if (tdb_transaction_commit( tdb_reg ) == -1) {
+ if (tdb_transaction_commit( tdb_reg->tdb ) == -1) {
DEBUG(0, ("init_registry_data: Could not commit "
"transaction\n"));
return False;
fail:
- if (tdb_transaction_cancel( tdb_reg ) == -1) {
+ if (tdb_transaction_cancel( tdb_reg->tdb ) == -1) {
smb_panic("init_registry_data: tdb_transaction_cancel "
"failed\n");
}
if ( tdb_reg )
return True;
- if ( !(tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, REG_TDB_FLAGS, O_RDWR, 0600)) )
+ if ( !(tdb_reg = tdb_wrap_open(NULL, lock_path("registry.tdb"), 0, REG_TDB_FLAGS, O_RDWR, 0600)) )
{
- tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, REG_TDB_FLAGS, O_RDWR|O_CREAT, 0600);
+ tdb_reg = tdb_wrap_open(NULL, lock_path("registry.tdb"), 0, REG_TDB_FLAGS, O_RDWR|O_CREAT, 0600);
if ( !tdb_reg ) {
DEBUG(0,("regdb_init: Failed to open registry %s (%s)\n",
lock_path("registry.tdb"), strerror(errno) ));
}
tdb_refcount = 1;
-
- vers_id = tdb_fetch_int32(tdb_reg, vstring);
+ vers_id = tdb_fetch_int32(tdb_reg->tdb, vstring);
if ( vers_id != REGVER_V1 ) {
/* any upgrade code here if needed */
become_root();
- tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, REG_TDB_FLAGS, O_RDWR, 0600);
+ tdb_reg = tdb_wrap_open(NULL, lock_path("registry.tdb"), 0, REG_TDB_FLAGS, O_RDWR, 0600);
if ( !tdb_reg ) {
result = ntstatus_to_werror( map_nt_error_from_unix( errno ) );
DEBUG(0,("regdb_open: Failed to open %s! (%s)\n",
int regdb_close( void )
{
- int ret;
-
tdb_refcount--;
DEBUG(10,("regdb_close: decrementing refcount (%d)\n", tdb_refcount));
SMB_ASSERT( tdb_refcount >= 0 );
- ret = tdb_close( tdb_reg );
- tdb_reg = NULL;
-
- return ret;
+ TALLOC_FREE(tdb_reg);
+ return 0;
}
/***********************************************************************
***********************************************************************/
int regdb_get_seqnum(void)
{
- return tdb_get_seqnum(tdb_reg);
+ return tdb_get_seqnum(tdb_reg->tdb);
}
/***********************************************************************
dbuf.dptr = buffer;
dbuf.dsize = len;
- if ( tdb_store_bystring( tdb_reg, keyname, dbuf, TDB_REPLACE ) == -1) {
+ if ( tdb_store_bystring( tdb_reg->tdb, keyname, dbuf, TDB_REPLACE ) == -1) {
ret = False;
goto done;
}
REGSUBKEY_CTR *subkeys = NULL, *old_subkeys = NULL;
char *oldkeyname;
- if ( tdb_transaction_start( tdb_reg ) == -1 ) {
+ if ( tdb_transaction_start( tdb_reg->tdb ) == -1 ) {
DEBUG(0, ("regdb_store_keys: tdb_transaction_start failed\n"));
return False;
}
pstr_sprintf( path, "%s/%s", key, oldkeyname );
normalize_reg_path( path );
- if (tdb_delete_bystring( tdb_reg, path ) == -1) {
+ if (tdb_delete_bystring( tdb_reg->tdb, path ) == -1) {
DEBUG(1, ("Deleting %s failed\n", path));
goto fail;
}
/*
* Ignore errors here, we might have no values around
*/
- tdb_delete_bystring( tdb_reg, path );
+ tdb_delete_bystring( tdb_reg->tdb, path );
}
TALLOC_FREE( old_subkeys );
TALLOC_FREE( subkeys );
}
- if (tdb_transaction_commit( tdb_reg ) == -1) {
+ if (tdb_transaction_commit( tdb_reg->tdb ) == -1) {
DEBUG(0, ("regdb_store_keys: Could not commit transaction\n"));
return False;
}
TALLOC_FREE( old_subkeys );
TALLOC_FREE( subkeys );
- if (tdb_transaction_cancel( tdb_reg ) == -1) {
+ if (tdb_transaction_cancel( tdb_reg->tdb ) == -1) {
smb_panic("regdb_store_keys: tdb_transaction_cancel failed\n");
}
pstring_sub( path, "\\", "/" );
strupper_m( path );
- dbuf = tdb_fetch_bystring( tdb_reg, path );
+ dbuf = tdb_fetch_bystring( tdb_reg->tdb, path );
buf = dbuf.dptr;
buflen = dbuf.dsize;
pstr_sprintf( keystr, "%s/%s", VALUE_PREFIX, key );
normalize_reg_path( keystr );
- data = tdb_fetch_bystring( tdb_reg, keystr );
+ data = tdb_fetch_bystring( tdb_reg->tdb, keystr );
if ( !data.dptr ) {
/* all keys have zero values by default */
pstr_sprintf( keystr, "%s/%s", VALUE_PREFIX, key );
normalize_reg_path( keystr );
- ret = tdb_trans_store_bystring(tdb_reg, keystr, data, TDB_REPLACE);
+ ret = tdb_trans_store_bystring(tdb_reg->tdb, keystr, data, TDB_REPLACE);
SAFE_FREE( data.dptr );
}
normalize_dbkey(tdbkey);
- data = tdb_fetch_bystring(tdb_reg, tdbkey);
+ data = tdb_fetch_bystring(tdb_reg->tdb, tdbkey);
SAFE_FREE(tdbkey);
if (data.dptr == NULL) {
goto done;
}
- if (tdb_trans_store_bystring(tdb_reg, tdbkey, tdbdata, 0) == -1) {
+ if (tdb_trans_store_bystring(tdb_reg->tdb, tdbkey, tdbdata, 0) == -1) {
err = ntstatus_to_werror(map_nt_error_from_unix(errno));
goto done;
}