summaryrefslogtreecommitdiff
path: root/source3/registry/reg_backend_db.c
AgeCommit message (Collapse)AuthorFilesLines
2012-06-15dbwrap: dbwrap_trans_store_int32->dbwrap_trans_store_int32_bystringVolker Lendecke1-1/+2
Signed-off-by: Michael Adam <obnox@samba.org>
2012-06-15dbwrap: dbwrap_fetch_int32->dbwrap_fetch_int32_bystringVolker Lendecke1-2/+4
Signed-off-by: Michael Adam <obnox@samba.org>
2012-05-05s3:registry: return error when Key does not exist in ↵Michael Adam1-0/+3
regdb_fetch_values_internal()
2012-04-25s3:registry: fix seqnum race in regdb_fetch_keys_internalMichael Adam1-3/+22
This prevents race between fetching seqnum and key content. Because there is currently no way to atomically fetch the record along with the seqnum, I use a loop. This is far from optimal and should should ideally be done differently. But for now it fixes the race. Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: fix seqnum race in fetch_values_internalMichael Adam1-3/+21
This prevents race between fetching seqnum and key content. Because there is currently no way to atomically fetch the record along with the seqnum, I use a loop. This is far from optimal and should should ideally be done differently. But for now it fixes the race. Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: update the seqnum in the subkey cache at the end of ↵Michael Adam1-1/+5
regval_store_keys The purpose is to prevent next reads from going to disk. Note that this will currently only be effective with local tdbs, not with ctdb: For tdb, store and delete bump the seqnum while transaction commit does not. For ctdb, transaction commit bumps the seqnum, while store and delete don't... This needs fixing (in ctdb). Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry:db: update the value container seqnum after storing/deleting to ↵Michael Adam1-1/+22
prevent next read from going to disk if possible Note that this will currently only be effective in the local TDB implementation. For CTDB, this wont work since seqnum currently works differently there (needs fixing): For tdb, store and delete operations bump the db seqnum, while transaction commits don't. For ctdb, the seqnum is bumped by the transaction commit but not by store and delete operations. Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: fix debug message in regdb_store_values_internal()Michael Adam1-1/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: improve log message in regdb_unpack_values()Michael Adam1-1/+2
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: fix a debug message typoMichael Adam1-1/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: rename regval_ctr_key_exists() to regval_ctr_value_exists()Michael Adam1-2/+2
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: make regdb_values_need_update() staticMichael Adam1-1/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: make regdb_subkeys_need_update() staticMichael Adam1-1/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: make regdb_store_values() staticMichael Adam1-1/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: make regdb_fetch_values() staticMichael Adam1-1/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: make regdb_fetch_keys() staticMichael Adam1-1/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-04-25s3:registry: make regdb_store_keys() staticMichael Adam1-1/+1
Signed-off-by: Andreas Schneider <asn@samba.org>
2012-01-24s3:registry: do not write empty value lists to registry.tdbGregor Beck1-0/+5
Signed-off-by: Michael Adam <obnox@samba.org> Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Tue Jan 24 13:54:09 CET 2012 on sn-devel-104
2012-01-18s3: Add a "lock_order" argument to db_openVolker Lendecke1-3/+6
This will be used to enforce a lock hierarchy between the databases. We have seen deadlocks between locking.tdb, brlock.tdb, serverid.tdb and notify*.tdb. These should be fixed by refusing a dbwrap_fetch_locked that does not follow a defined lock hierarchy.
2011-12-06s3:registry: replace use of rawmemchr by portable equivalent use of strchr.Michael Adam1-1/+1
2011-12-03lib/util: factor out tdb_data_is_emptyGregor Beck1-4/+0
Signed-off-by: Michael Adam <obnox@samba.org> Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Sat Dec 3 05:20:30 CET 2011 on sn-devel-104
2011-12-03s3:registry: do not use regdb functions during db upgradeGregor Beck1-55/+141
It is importante to not use the database backend implementation in the upgrade. Otherwise this would only work as long as this is the newset version. In future versions of the registry, this (then) intermediate upgrade step would change in behaviour and not work as expected any more. Signed-off-by: Michael Adam <obnox@samba.org>
2011-11-25s3:registry: write INFO/version if we create registry.tdbGregor Beck1-0/+7
Signed-off-by: Michael Adam <obnox@samba.org>
2011-11-09s3:registry: prevent unnecessary transactions in regdb_initMichael Adam1-0/+4
Skip the transaction for the upgrade code, if the database is already at code-level. Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Wed Nov 9 15:06:59 CET 2011 on sn-devel-104
2011-11-03s3-registry: fix upgrade codeBjörn Baumbach1-4/+18
Assume REGDB_VERSION_V1 if no version key found in registry.tdb Signed-off-by: Michael Adam <obnox@samba.org>
2011-10-12s3:registry: improve regdb_create_subkey_internal() to always complete ↵Michael Adam1-2/+12
incomlete keys Originally, this function did not create the key's subkey list record if only the record was listed in the subkeylist of its parent key. Now this is fixed. Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-10-11s3:dbwrap: convert dbwrap_fetch_int32() to NTSTATUS return codeMichael Adam1-4/+11
Return the int32 value retrieved from the db by reference. Before this, return value "-1" was used as a error indication, but it could also be a valid value from the database.
2011-10-11s3:registry: convert reg_backend_db to use dbwrap wrapper functionsMichael Adam1-34/+43
Avoid direct use of the db_record and db_context structs
2011-10-11s3:dbwrap: convert dbwrap_fetch(), dbwrap_fetch_bystring() and ↵Michael Adam1-5/+10
dbwrap_fetch_bystring_upper() to NTSTATUS
2011-09-19s3:registry: fix a debug message in the v2_to_v3 upgrade codeMichael Adam1-1/+1
Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Mon Sep 19 10:31:45 CEST 2011 on sn-devel-104
2011-09-07s3: Fix Coverity ID 2611, UNINITVolker Lendecke1-0/+1
Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Wed Sep 7 19:47:49 CEST 2011 on sn-devel-104
2011-09-07s3: Fix Coverity ID 2612, UNINITVolker Lendecke1-0/+1
2011-09-02s3:registry: fix a debug message typoMichael Adam1-1/+1
Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Fri Sep 2 11:47:11 CEST 2011 on sn-devel-104
2011-09-02s3:registry: introduce a define REGDB_CODE_VERSION and use it in regdb code.Michael Adam1-9/+7
This is to not use the precise code version REGDB_VERSION_V3 explicitly in the code.
2011-09-02s3:registry: rename REGVE_Vx toREGDB_VERSION_Vx for consistencyMichael Adam1-11/+11
2011-09-02s3:registry: implement regdb_set_secdesc() with regdb_trans_do()Michael Adam1-22/+43
Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Fri Sep 2 00:51:40 CEST 2011 on sn-devel-104
2011-09-01s3:registry: implement regdb_store_values() with regdb_trans_do()Michael Adam1-1/+26
This adds the runtime check for changed regdb format version to store_values
2011-09-01s3:registry: change regdb_store_values_internal() from bool to NTSTATUS ↵Michael Adam1-11/+15
return code
2011-09-01s3:registry: use the regdb_trans_do wrapper instead of using dbwrap_trans_do ↵Michael Adam1-18/+18
directly in the registry db code. This verifies the regdb format version number before the corresponding write operations.
2011-09-01s3:registry: add regdb_trans_do(): a transaction wrapper that will check the ↵Michael Adam1-0/+42
regdb version If the version has changed since initialization, the write will fail with ACCESS_DENIED.
2011-09-01s3:registry: drop log level of unknown regdb version message in regdb_init() ↵Michael Adam1-1/+1
to 0
2011-08-25s3:registry: fix the v2_to_v3 upgrade code so that it does not create value ↵Michael Adam1-0/+6
list security records for the INFO/version key ...
2011-08-25s3:registry: fix the v1_to_v2 upgrade code so that it does not normalize the ↵Michael Adam1-0/+6
INFO/version key ...
2011-08-25s3:registry: define a constant REGDB_VERSION_KEYNAME for the key ↵Michael Adam1-7/+6
INFO/version (and use it)
2011-08-25s3:registry: hand db context in to v2_to_v3 upgrade code via private_dataMichael Adam1-4/+9
This also fixes the earlier faulty handing in of a useless stackframe memory context via private_data.
2011-08-25s3:registry: fix broken use of dbwrap store record in v1_to_v2 upgrade codeMichael Adam1-8/+10
This also fixes broken private_data parameter for the traverse function (making use of it): Originally a memory context was handed in but was not used.
2011-08-15s3:registry: fix regdb_key_exists: the record has to contain at least the ↵Michael Adam1-1/+72
4-byte subkey counter More precisley, we return false if the record does not match the required structure of a leading 4-byte subkey counter followed by the corresponding number zero-terminated strings.
2011-08-08s3:registry avoid updating keys which are going to be deleted inGregor Beck1-1/+7
reg_deletekey_recursive this changes the complexity from O(n^2) to O(n) and reduces the time of a 'net conf drop' with 10000 shares from 6min to 1.5s Signed-off-by: Michael Adam <obnox@samba.org>
2011-07-29s3:dbwrap: move all .c and .h files of dbwrap to lib/dbwrap/Michael Adam1-1/+1
Autobuild-User: Michael Adam <obnox@samba.org> Autobuild-Date: Fri Jul 29 13:34:22 CEST 2011 on sn-devel-104
2011-07-29s3:dbwrap: move db_open() to a file dbwrap_open.c of its own.Michael Adam1-0/+1
Also start new folder lib/dbwrap/ where dbwrap_open.c is stored and make the fallbacke implementation functoins non-static and create a dbwrap_private.h header file that contains their prototypes.