1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00
Commit Graph

264 Commits

Author SHA1 Message Date
Andreas Schneider
15bacaf3c5 s3-registry: Convert registry key delimiter from slash to backslash.
This is needed to support keynames containing a '/' like TCP/IP. Which
is used in serveral standard paths.

Signed-off-by: Michael Adam <obnox@samba.org>
2010-06-25 17:35:41 +02:00
Andreas Schneider
f540833632 s3-registry: Added a db upgrade function to normalize the key delimiter.
This converts the key delimiter from a slash to a blackslash. We need to
support keynames with a backslash.

Signed-off-by: Michael Adam <obnox@samba.org>
2010-06-25 17:35:41 +02:00
Michael Adam
5cac4e648c s3:registry: use normalize_reg_path() in regdb_set_secdesc()
instead of normalize_dbkey
2010-06-24 15:36:20 +02:00
Michael Adam
4c948251d9 s3:registry: use normalize_reg_path() in regdb_get_secdesc()
instead of normalize_dbkey.
2010-06-24 15:36:20 +02:00
Michael Adam
0fe1ff99a1 s3:registry: move reg_objects.h to registry/ and use it only where needed
Every place outside of registry/ where this is used, should probably
be changed to use pure reg_api.c code.
2010-05-25 10:35:31 +02:00
Michael Adam
a71dac4882 s3:registry: user regval_ctr/blob accessor functions in reg_backend_db.c 2010-05-25 10:35:28 +02:00
Michael Adam
773255ba50 s3:registry: rename reg_util.{c,h} to reg_util_internal.{c,h} 2010-05-25 10:35:27 +02:00
Michael Adam
d335f292ce s3:registry: extract the reg_backend_db prototypes into their own header.
And use them only where needed.
2010-05-25 10:35:25 +02:00
Michael Adam
9ccf66379a s3:registry: adapt callers of regval_ctr_addvalue to uint8 * instead of char * 2010-05-25 10:35:25 +02:00
Michael Adam
4ae77b2ef9 s3:registry: extract the reg_util prototypes into their own header.
And use them only where needed.
2010-05-25 10:35:25 +02:00
Gregor Beck
0a173444ac s3: registry: fix query empty valuenames
Remove a check introduced with commit 80c2446321
wich causes queries for values with empty name to fail. Empty valuenames are
used for the so called default value of a key.

Signed-off-by: Michael Adam <obnox@samba.org>
2010-05-21 00:22:45 +02:00
Günther Deschner
fe31b67d5e s3-registry: only include registry headers when really needed.
Guenther
2010-05-18 01:15:38 +02:00
Günther Deschner
3d5972c43f s3-libgpo: move group policy protos to where they belong.
Guenther
2010-05-17 21:07:17 +02:00
Andrew Tridgell
7cff685c7e s3: convert registry and printing code to TYPESAFE_QSORT() 2010-02-14 18:44:21 +11:00
Michael Adam
a752bbd10d s3:registry: eliminate race condition in creating/scanning sorted subkeys
Called, from key_exists, scan_sorted_subkeys re-creates the sorted
subkeys record of the given key and then searches through it.
The race is that between creation and parsing of the sorted subkey
record, another process that stores some other subkey of the same
parent key will delete the sorted subkey record, resulting in an
WERR_BADFILE of an operation that should actually succeed.

This patch fixes the issue by wrapping the creation and parsing
into a transaction.

Michael
2010-02-12 23:12:12 +01:00
Michael Adam
cc5b22a016 s3:registry: add an extra check for dsize==0 to regdb_fetch_keys_internal()
Don't only rely on dptr == NULL.
I stumbled over this one when rewriting some of the dbwrap_ctdb code.

Michael
2009-11-03 01:02:39 +01:00
Michael Adam
f6f2151a39 s3:registry: add safety check for return value of tdb_unpack to regdb_fetch_keys_internal()
Prevents segfaults in some situations.

(For a non existent or empty record, we sometimes rely on the fetch operation
 to return dsize==0 and sometimes we rely on dptr==NULL.)

Michael
2009-11-03 01:02:38 +01:00
Günther Deschner
1b0f3b7e3a s3-registry: use regval_ctr_addvalue_sz().
Greatly simplifies and cleanes up the code.

Guenther
2009-09-30 00:30:12 +02:00
Günther Deschner
2c11b73391 s3-registry: use push_reg_sz().
Guenther
2009-09-30 00:29:49 +02:00
Michael Adam
5a525f7f28 s3:registry: db backend: add my C
Michael
2009-07-15 14:01:58 +02:00
Michael Adam
78576117eb s3:registry: flush the provided subkey_ctr in regdb_fetch_keys_internal()
This way, we always return what has really been read from the db,
and not more. The callers assume exactly this, but one could hand
in an already pre-filled subkey container...

Michael
2009-07-15 14:01:58 +02:00
Michael Adam
dc0bcfa188 s3:registry: turn regdb_fetch_keys_internal() from int to WERROR return type
This way, more error information is propagated to the callers.

Michael
2009-07-15 14:01:57 +02:00
Michael Adam
c52dd1d5b8 s3:registry: use transaction wrapper in create_sorted_subkeys()
Michael
2009-07-15 14:01:56 +02:00
Michael Adam
109ea29b2c s3:registry: restructure logic of create_sorted_subkes() slightly
This makes it clearer to me, and it also makes it easier to
use the transaction retry wrapper in the next step.

Michael
2009-07-15 14:01:56 +02:00
Michael Adam
2d6dbcd0b1 s3:registry: use transaction wrapper in regdb_delete_subkey().
Michael
2009-07-15 14:01:55 +02:00
Michael Adam
a48d8353c7 s3:registry: add a comment header for the delete_subkey set of commands.
Michael
2009-07-15 14:01:55 +02:00
Michael Adam
5640598cbb s3:registry: add a comment header for the create_subkey set of functions
Michael
2009-07-15 14:01:54 +02:00
Michael Adam
8c7b960493 s3:registry: use transaction wrapper in regdb_create_subkey()
Michael
2009-07-15 14:01:54 +02:00
Michael Adam
86d747e19f s3:registry: use transaction wrapper in regdb_store_keys_internal().
Michael
2009-07-15 14:01:53 +02:00
Michael Adam
f93c9e0d41 s3:registry: don't leak to talloc_stack in regdb_store_keys_internal2()
and catch one potential talloc failure.

Michael
2009-07-15 14:01:53 +02:00
Michael Adam
3eec829e2f s3:registry: unify exit logic and remove leaking to talloc_stack in regdb_store_keys_internal()
Michael
2009-07-15 14:01:53 +02:00
Michael Adam
14f593aa0f s3:registry: change regdb_store_keys_internal2() to return WERROR
instead of bool for better error propagation.

Michael
2009-07-15 14:01:52 +02:00
Michael Adam
1c65c98f33 s3:registry: refactor adding of builtin reg values out
into regdb_ctr_add_value(). For readability.

Michael
2009-07-15 14:01:52 +02:00
Michael Adam
cf4f808b8b s3:registry: use transaction wrapper in init_registry_data()
Michael
2009-07-15 14:01:51 +02:00
Michael Adam
e6340963cf s3:registry: add regdb_store_values_internal() that takes a db_context argument
Michael
2009-07-15 14:01:51 +02:00
Michael Adam
302265aae1 s3:registry: add a regdb_fetch_values_internal() that takes a db_context argument
Michael
2009-07-15 14:01:50 +02:00
Michael Adam
8a5b164b20 s3:registry: use transaction wrapper in init_registry_key().
Michael
2009-07-15 14:01:50 +02:00
Michael Adam
95ebf534d2 s3:registry: add db_context argument to init_registry_key_internal()
Michael
2009-07-15 14:01:49 +02:00
Michael Adam
a00109e1e6 s3:registry: panic upon error at transaction_cancel in create_sorted_subkeys
Michael
2009-07-15 14:01:49 +02:00
Michael Adam
3189828087 s3:registry: fix a comment in create_sorted_subkeys()
Michael
2009-07-15 14:01:48 +02:00
Michael Adam
4c366a0946 s3:registry: don't loop transaction_commit in create_sorted_subkeys() upon error
This would try to commit a higher level transaction upon commit-error.

Michael
2009-07-15 14:01:48 +02:00
Michael Adam
6cb14409af s3:registry: in regdb_delete_subkey(), don't use the transaction wrappers.
This way, the db handle gets used explicitly and the core of the
function can be abstracted.

Michael
2009-07-15 14:01:47 +02:00
Michael Adam
4eeacd6ef0 s3:registry: in regdb_delete_subkey(), panic if transaction_cancel fails
Michael
2009-07-15 14:01:47 +02:00
Michael Adam
355892c296 s3:registry: panic upon failed transaction_cancel in regdb_create_subkey()
Michael
2009-07-15 14:01:47 +02:00
Michael Adam
3409a44da2 s3:registry: don't use exported transaction wrappers in regdb_create_subkey()
So that the regdb handle is again explicit and the core of the
function can be abstracted.

Michael
2009-07-15 14:01:46 +02:00
Michael Adam
1dfaa371fa s3:registry: create regdb_store_keys_internal() with db_context argument
and let exported regdb_store_keys() just call regdb_store_keys_internal()
with regdb as an argument. Internally, in reg_backend_db.c, always use the
_internal version.

Michael
2009-07-15 14:01:46 +02:00
Michael Adam
eb1958ca3d s3:registry: rename regdb_store_keys_internal() to regdb_store_keys_internal2()
Michael
2009-07-15 14:01:45 +02:00
Michael Adam
589bacfbdb s3:registry: create regdb_fetch_keys_internal() with db_context argument
and let exported regdb_fetch_keys() just call regdb_fetch_keys_internal()
with regdb as an argument. Internally, in reg_backend_db.c, always use the
_internal version.

Michael
2009-07-15 14:01:45 +02:00
Michael Adam
db4f797e35 s3:registry: add db_context argument to scan_parent_subkeys()
Michael
2009-07-15 14:01:44 +02:00
Michael Adam
c01d955ac0 s3:registry: add db_context argument to regdb_fetch_key_internal()
Michael
2009-07-15 14:01:44 +02:00
Michael Adam
a18a10c07a s3:registry: add db_context argument to regdb_store_keys_internal()
Michael
2009-07-15 14:01:43 +02:00
Michael Adam
528bf38875 s3:registry: add db_context argument to regdb_delete_key_lists()
Michael
2009-07-15 14:01:43 +02:00
Michael Adam
86e927cb05 s3:registry: add db_context argument to regdb_delete_subkeylist()
Michael
2009-07-15 14:01:42 +02:00
Michael Adam
bd983dba6b s3:registry: add db_context argument to regdb_delete_secdesc()
Michael
2009-07-15 14:01:42 +02:00
Michael Adam
ec6b6727d8 s3:registry: add db_context argument to regdb_delete_values()
Michael
2009-07-15 14:01:41 +02:00
Michael Adam
2b380c73a4 s3:registry: add db_context argument to regdb_delete_key_with_prefix()
Michael
2009-07-15 14:01:41 +02:00
Michael Adam
e935d8616b s3:registry: replace typedef REGISTRY_OPS by struct registry_ops
Michael
2009-04-27 11:21:04 +02:00
Michael Adam
8185d31fb0 s3:registry: replace typedef REGISTRY_VALUE by struct regval_blob
Michael
2009-04-27 11:21:03 +02:00
Michael Adam
221151a2a2 s3:registry: replace typedef REGVAL_CTR by struct regval_ctr.
This paves the way for hiding the typedef and the implementation
from the surface.

Michael
2009-04-27 11:21:02 +02:00
Michael Adam
b5fbe06d74 s3:registry: implement delete_subkey in the db backend
Michael
2009-02-26 13:22:55 +01:00
Michael Adam
61bdfd09ed s3:registry: refactor deletion of various subkey lists out of regdb_store_keys()
Micheal
2009-02-26 13:22:55 +01:00
Michael Adam
13ceeeedbc s3:registry: streamline and cleanup regdb_set_secdesc() somewhat.
Michael
2009-02-26 13:22:55 +01:00
Michael Adam
2fb944bde1 s3:registry: refactor deletion of value/secdesc/subkey list tdb records out
of regdb_store_values().

Michael
2009-02-26 13:22:55 +01:00
Michael Adam
20e40d3b7d s3:registry: implement create_subkey for the db backend.
Michael
2009-02-26 13:22:54 +01:00
Michael Adam
69be6f5c1d s3:registry: use regsubkey_ctr_get_seqnum() in reg_backend_db.c
Michael
2009-02-26 13:22:53 +01:00
Michael Adam
8a74b535c8 s3:registry: use regsubkey_ctr_set_seqnum() in reg_backend_db.c
Michael
2009-02-26 13:22:53 +01:00
Michael Adam
3c15d053f5 s3:registry: use regsubkey_ctr_init() in reg_backend_db.c
instead of using talloc directly.

Michael
2009-02-26 13:22:53 +01:00
Michael Adam
63b576424d s3:registry: don't directly access key->subkeys->subkeys[] in reg_backend_db.c
Use the reg_objects accessor regsubkey_ctr_specific_key() instead.

Michael
2009-02-26 13:22:51 +01:00
Michael Adam
62b53507d2 s3:registry: don't directly access key->subkeys->num_subkeys in reg_backend_db.
Use the reg_objects api instead.

Michael
2009-02-26 13:22:51 +01:00
Michael Adam
58fc61217d s3:registry: replace typedef "REGSUBKEY_CTR" by "struct regsubkey_ctr"
This paves the way for hiding the typedef and the implementation from the
surface.

Michael
2009-02-26 13:22:51 +01:00
Michael Adam
b56f449d6b Revert "Fix a O(n^2) algorithm in regdb_fetch_keys()"
This reverts commit a13f065bad.

This fix is reverted, because the speedup is going to move
further down into reg_objects.c. The unsorted list of subkey names
is going to be indexed: This O(n^2) search bites us in more places.
This re-establishes the abstraction of reg_objects.c.

Michael
2009-02-26 13:22:51 +01:00
Michael Adam
ba0e944c46 s3:registry: provide transaction_start|commit|cancel fns for the registry tdb
Michael
2009-02-26 11:05:22 +01:00
Volker Lendecke
170830c008 Wrap creating the sorted subkey cache in a transaction
Signed-off-by: Michael Adam <obnox@samba.org>
2009-02-26 11:05:22 +01:00
Volker Lendecke
5c91cdcc47 Add a comment describing the sorted subkeys
Signed-off-by: Michael Adam <obnox@samba.org>
2009-02-26 11:05:22 +01:00
Volker Lendecke
1b1aac412c Add sorted subkey cache
On my box this gets net conf list for 1000 records down to .1 seconds

Signed-off-by: Michael Adam <obnox@samba.org>
2009-02-26 11:05:22 +01:00
Jeremy Allison
2ca48d3740 Fix printf type warning.
Jeremy.
2009-02-19 13:11:36 -08:00
Volker Lendecke
a13f065bad Fix a O(n^2) algorithm in regdb_fetch_keys() 2009-02-19 20:06:29 +01:00
Volker Lendecke
d0ee90ace9 Fix a buffer handling bug when adding lots of registry keys
This is *ancient*... From 2002, and nobody noticed until someone added lots of
shares using net conf... :-)
2009-02-19 14:26:50 +01:00
Jelmer Vernooij
ddcab787c4 Rename dos_errstr() to win_errstr() for consistency with Samba 4. 2008-11-01 17:19:26 +01:00
Andrew Tridgell
0f41961e4f first cut at adding full transactions for ctdb to samba3
(This used to be commit f91a3e0f7b)
2008-08-13 11:54:08 +02:00
Michael Adam
6e16022d62 registry: use _bystring wrappers to dbwrap_trans_(store|delete).
Michael
(This used to be commit 103ce6c9e9)
2008-08-05 23:40:26 +02:00
Michael Adam
a8ae5228f5 registry: bump debug level to 1 in regdb_init() if storing version string fails.
Higher level callers should take care of level 0 messages.

Michael
(This used to be commit b5829e04ea)
2008-07-15 14:25:00 +02:00
Michael Adam
0586d981a7 registry: bump debug level to 1 in regdb_init() if opening the registry fails.
Higher level callers take care of level 0 messages or more drastic measures.

Michael
(This used to be commit 111d802b5c)
2008-07-15 14:22:55 +02:00
Michael Adam
f587e0310c registry: fix logic in deleting subkeys record in regdb_fetch_keys().
Don't cancel on NT_STATUS_NOT_FOUND error from dbwrap_delete_bystring().
So deletion of an "incomlete" registry key, i.e. one with an entry in
the list of subkeys of its parent key but not a subkey list of its own,
works again.

Michael
(This used to be commit 75be2116ac)
2008-07-09 10:43:25 +02:00
Michael Adam
ad2e1757e7 registry: improve logic for deleting value records in regdb_store_keys().
Don't ignore all errors from dbwrap_delete_bystring() but
only NT_STATUS_NOT_FOUND.

Michael
(This used to be commit d7ec9b2d52)
2008-07-09 10:43:25 +02:00
Michael Adam
70d8e57c17 registry: fetch regdb_fetch_keys() when a key exists but not its subkey-record.
According to the new policy a key (that is not a base key) exists,
iff it exists in the subkey list of its parent key.

Usually this subkeylist is present, but in a transaction-less
dbwrap backend (ctdb), a failing write can leave an "incomplete"
key without its own subkeylist-record. (Otherwise such an
incomplete key can be generated with e.g. tdbtool.)
For such a key net registry enumerate (e.g.) would fail.
This commit fixes this behaviour of regdb_fetch_keys().

Michael
(This used to be commit f329aaf045)
2008-07-08 17:10:01 +02:00
Michael Adam
f7d39653f5 registry: add removal of secdesc of a key to regdb_store_keys().
Michael
(This used to be commit a01d8fe5e8)
2008-05-08 18:29:10 +02:00
Michael Adam
1f279f866f registry: add comments to removing lists in regdb_store_keys().
Michael
(This used to be commit 3e89217e7e)
2008-05-08 18:29:10 +02:00
Michael Adam
9f7653bfa1 registry: change order of deleting value and subkey lists in store_keys().
Next step in the plan to make store_keys safer without transactions.

Michael
(This used to be commit f7c8718dea)
2008-05-08 18:29:10 +02:00
Michael Adam
453141b395 registry: adapt comment to first step in regdb_store_keys().
Michael
(This used to be commit 97592db08a)
2008-05-08 18:29:10 +02:00
Michael Adam
8c2b976208 registry: adapt comment of last step in regdb_store_keys().
adding number (3) ....

Michael
(This used to be commit a03a17365d)
2008-05-08 18:29:10 +02:00
Michael Adam
315c7b7824 registry: regdb_store_keys: move storing the subkey list down after removing values.
Michael
(This used to be commit 986030cdda)
2008-05-08 18:29:10 +02:00
Michael Adam
01e640f6ea registry: add comment explaining workflow to make store_keys safe w/o transactions
/*
 * Make the store operation as safe as possible without transactions:
 *
 * (1) For each subkey removed from ctr compared with old_subkeys:
 *
 *     (a) First delete the value db entry.
 *
 *     (b) Next delete the secdesc db record.
 *
 *     (c) Then delete the subkey list entry.
 *
 * (2) Now write the list of subkeys of the parent key,
 *     deleting removed entries and adding new ones.
 *
 * (3) Finally create the subkey list entries for the added keys.
 *
 * This way if we crash half-way in between deleting the subkeys
 * and storing the parent's list of subkeys, no old data can pop up
 * out of the blue when re-adding keys later on.
 */

The workflow is going to be modified to meet this agendain the next commits.

Michael
(This used to be commit 55dd9bdd14)
2008-05-08 18:29:10 +02:00
Michael Adam
7fa4cd2421 registry: check for existence of non base key in regdb_store_keys() before proceeding.
Michael
(This used to be commit 52413c94fc)
2008-05-08 18:29:09 +02:00
Michael Adam
8e21d223f7 registry: add a function regdb_key_is_base_key() to check whether is composite.
This partly duplicates code from regdb_key_exists(). Maybe refactor later.

Michael
(This used to be commit c27d03bba8)
2008-05-08 18:29:09 +02:00
Michael Adam
4095b008ee registry: check for existence of key in regdb_set_secdesc() before proceeding.
Michael
(This used to be commit 347bab7f4a)
2008-05-08 18:29:09 +02:00
Michael Adam
7d35d4e2a4 registry: check for existence of key in regdb_get_secdesc() before proceeding.
Michael
(This used to be commit 727e5a87c0)
2008-05-08 18:29:09 +02:00
Michael Adam
ba94ab2ed8 registry: check for existence of key in regdb_store_values() before proceeding.
Michael
(This used to be commit 8a2c9d965d)
2008-05-08 18:29:09 +02:00
Michael Adam
4394c2dafb registry: check for existence of key in regdb_fetch_keys() before proceeding.
Michael
(This used to be commit cf653e101d)
2008-05-08 18:29:09 +02:00
Michael Adam
00ce73850d registry: check for existence of key in regdb_fetch_values() first.
This uses the new semantics for existence of a key.

Michael
(This used to be commit 56a58690d3)
2008-05-08 18:29:09 +02:00
Michael Adam
284bab74a7 registry: free talloc context on error path in regdb_fetch_values().
Michael
(This used to be commit 978aef3a86)
2008-05-08 18:29:09 +02:00
Michael Adam
a26880c372 registry: Implement new semantics for existence of registry key in tdb.
Existence of a key is defined as follows:
* If the key is a base key (without separator), the key exists
  iff the corresponding entry exist in the registry tdb.
* If the key is not a base key, the key exists, iff it exists
  in the list of subkeys of it's parent keyname's tdb entry.

Michael
(This used to be commit 477008367f)
2008-05-08 18:29:09 +02:00
Michael Adam
120aacfac5 registry: free temporary data in regdb_fetch_key_internal().
Michael
(This used to be commit 2b25f480ba)
2008-05-08 18:29:08 +02:00
Michael Adam
79a009b876 registry: change order of arguments of regdb_fetch_key_internal()
list talloc context first.

Michael
(This used to be commit 23d7002b22)
2008-05-08 18:29:08 +02:00
Michael Adam
f50002b491 registry: skip writes of existing keys in init_registry_data().
Michael
(This used to be commit 37dabf9317)
2008-04-30 12:42:33 +02:00
Michael Adam
9fe870affa registry: save writes in init_registry_data() if data does already exist.
This is done by first checking if all data (keys and values) exists
(using new regdb_key_exists()) and kompletely skipping all writes if it does.

Michael
(This used to be commit 7c5f1583cb)
2008-04-30 12:42:32 +02:00
Michael Adam
ed6a9edb1e registry: check for existence of key init_registry_key and possibly save a write.
Michael
(This used to be commit 3ab5a2f1b3)
2008-04-30 12:42:32 +02:00
Michael Adam
6ec4c8631a registry: add function regdb_key_exists() to check for existence of a key.
The existence of the registry key entry (and not the values entry!) is
taken as the criterion for existence.

Michael
(This used to be commit 207a0ece45)
2008-04-30 12:42:32 +02:00
Michael Adam
167d54cc67 registry: use regdb_fetch_key_internal() in regdb_fetch_values().
Michael
(This used to be commit 3316541ac9)
2008-04-30 12:42:32 +02:00
Michael Adam
6b4ed4b8f3 registry: use regdb_fetch_key_internal() in regdb_fetch_keys().
Michael
(This used to be commit 78f924ca05)
2008-04-30 12:42:32 +02:00
Michael Adam
5379dda0cd registry: add a function for fetching a tdb record for a given keystring
regdb_fetch_key_internal()

Michael
(This used to be commit 97bed9a236)
2008-04-30 12:42:32 +02:00
Michael Adam
411ae73283 registry: combine talloc_strdup() and normalize_reg_path() in regdb_fetch_keys().
the talloc_strdup() call is just and extra allocation here.

Michael
(This used to be commit 217233349b)
2008-04-30 12:42:32 +02:00
Michael Adam
dba75c0831 registry: use normalize_reg_path() in regdb_fetch_keys()
instead of handcrafting normalization.

Michael
(This used to be commit 1e4d2310d0)
2008-04-30 12:42:31 +02:00
Michael Adam
caba2d3a64 registry: use dbwrap_fetch_bystring() in regdb_fetch_values().
Michael
(This used to be commit 569f9844e9)
2008-04-30 12:42:31 +02:00
Michael Adam
9d933dedf9 registry: use dbwrap_fetch_bystring() in regdb_fetch_keys().
instead of using regdb->fetch and constructing tdb data
from the registry key string by hand.

Michael
(This used to be commit 87a58140f0)
2008-04-30 12:42:31 +02:00
Michael Adam
86d189dad1 registry: honour the WERROR that regsubkey_ctr_addkey gives in regdb_fetch_keys.
Michael
(This used to be commit 7dd7471da7)
2008-04-13 15:41:07 +02:00
Michael Adam
26a5652f6d registry: change init_registry_key() and init_registry_data() to return WERR
Michael
(This used to be commit e0718f04a7)
2008-04-13 15:33:47 +02:00
Michael Adam
6b85938f27 registry: change regdb_init() to return WERROR instead of bool.
Michael
(This used to be commit c312852abc)
2008-04-13 15:33:47 +02:00
Volker Lendecke
16198dc51e Convert dbwrap_trans_delete to NTSTATUS
Signed-off-by: Stefan Metzmacher <metze@samba.org>
(This used to be commit dead193f46)
2008-04-01 14:04:22 +02:00
Volker Lendecke
fcdfff1cc8 Convert dbwrap_trans_store to NTSTATUS
Signed-off-by: Stefan Metzmacher <metze@samba.org>
(This used to be commit 5f4de856af)
2008-04-01 14:04:22 +02:00
Stefan Metzmacher
b8dcade819 regdb: let regdb_fetch_keys() handle NULL and failure cases in the same way and return -1
metze
(This used to be commit 983fd58805)
2008-04-01 14:04:20 +02:00
Stefan Metzmacher
b55942a763 regdb: get the seqnum before the record, to not miss something
metze
(This used to be commit c214107bd9)
2008-04-01 14:04:20 +02:00
Stefan Metzmacher
2b21b02c6a regdb: use dbwrap->fetch() instead of fetch_locked() for readonly access"
This is the fixed version of commit 5c28c74aa0.

metze
(This used to be commit 924acd7f69)
2008-04-01 14:04:20 +02:00
Michael Adam
ce0bbc82fd Revert "regdb: use dbwrap->fetch() instead of fetch_locked() for readonly access"
This reverts commit 4e2be189e9.

Metze, this broke the registry (reg_api layer), but I don't yet know
exactly how and why. By the way, the locks there had the purpose of
fetching the seqnum that really matches the data.

This needs some more thought / debugging. But I wanted to have
the tree in a working state again.

Michael
(This used to be commit 5c28c74aa0)
2008-03-30 03:05:34 +02:00
Michael Adam
f8fdc36fdb regdb: use == 0 (instead of != -1) as indicator for success of dbwrap_trans_[delete|store]()
Michael
(This used to be commit 7dcd0c1e53)
2008-03-27 18:14:57 +01:00
Michael Adam
c86d10ae83 regdb: use != 0 instead of == -1 check for transaction_[commit|cancel]
Michael
(This used to be commit b6ceeaabae)
2008-03-27 18:14:57 +01:00
Stefan Metzmacher
5439f5f710 regdb: use db_open_trans()
metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
(This used to be commit a77b5b91dd)
2008-03-27 18:14:56 +01:00
Stefan Metzmacher
618f22409a regdb: use regdb->transaction_start(regdb) != 0 consistent
metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
(This used to be commit 093c3bced9)
2008-03-27 18:14:56 +01:00
Stefan Metzmacher
2a95f3f874 regdb: use dbwrap->fetch() instead of fetch_locked() for readonly access
metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
(This used to be commit 4e2be189e9)
2008-03-27 18:14:56 +01:00
Stefan Metzmacher
d9de61341c regdb: use dbwrap_trans_store_int32
metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
(This used to be commit 9620696083)
2008-03-27 18:14:56 +01:00
Michael Adam
060f554adc registry: use available string constant in debug statement.
Michael
(This used to be commit 6bac03a2ec)
2008-03-20 15:01:52 +01:00
Michael Adam
cef4e1bd9e registry: in regdb_init, not only complain about INFO/version, store it...
Michael
(This used to be commit 27d67365ad)
2008-03-20 15:01:52 +01:00
Michael Adam
4bac0e505f registry: reformat regdb_init() slightly, breaking long lines.
Michael
(This used to be commit 11da885f1e)
2008-03-20 15:01:52 +01:00
Michael Adam
13b894b01e registry: untangle assignment and if-statement in regdb_init().
Michael
(This used to be commit 504058df97)
2008-03-20 15:01:52 +01:00
Michael Adam
2f01e055cf registry: separate initialization of registry data from regdb_init().
Leave this to the users (currently registry_init_smbconf() and
init_registry()) to initialize as much of preliminary registry data
as needed.

Michael
(This used to be commit 59fdd30c78)
2008-03-20 15:01:52 +01:00
Michael Adam
8880111466 registry: add a transaction wrapper to init_registry_key_internal().
Michael
(This used to be commit 8b9cff84d5)
2008-03-20 15:01:52 +01:00
Michael Adam
1f3139df25 registry: refactor creation of subkeys out of init_registry_data().
Michael
(This used to be commit 55233f875e)
2008-03-20 15:01:51 +01:00
Günther Deschner
e8bd75ec73 Bind Group Policy processing closer to the samba registry.
Guenther
(This used to be commit e9c56250eb)
2008-03-18 21:31:24 +01:00
Michael Adam
6a2a76bc92 registry: untangle assignment and if-clause in init_registry_data().
Michael
(This used to be commit 64664d25cf)
2008-03-17 13:12:47 +01:00
Michael Adam
cc2e3f180b registry: convert regdb REGISTRY_OPS to named struct initializers.
Michael
(This used to be commit 3ea0a0beb4)
2008-03-17 08:22:33 +01:00
Michael Adam
9741e07140 registry: use talloc instead of malloc and provide common exit point
in regdb_get_secdesc().

Michael
(This used to be commit df848d8eee)
2008-03-17 08:22:33 +01:00
Michael Adam
647432a40c registry: remove an unused variable from regdb_set_secdesc().
Michael
(This used to be commit 76dad05e4c)
2008-03-17 08:22:33 +01:00
Michael Adam
18a407de8c registry: untangle assignments and if statements in regdb_set_secdesc().
Michael
(This used to be commit d553b5d725)
2008-03-17 08:22:33 +01:00
Michael Adam
40e6ec16ee registry: use talloc_stackframe instead of hand crafted temporary context.
Michael
(This used to be commit e4f2c856ec)
2008-03-17 08:22:33 +01:00
Michael Adam
2ce3d4b918 registry: use talloc instead of malloc for tdb data in regdb_store_values().
Michael
(This used to be commit 860316cbe7)
2008-03-17 08:22:33 +01:00
Michael Adam
ae7f7e44ff registry: don't use talloc_stackframe() instead of talloc_tos() als temp ctx
in regdb_store_values(). Also provide common exit path for
freeing memory.

Michael
(This used to be commit 7454e426f2)
2008-03-17 08:22:33 +01:00
Michael Adam
ecd7479be2 registry: don't leak to talloc stack in regdb_fetch_keys().
Michael
(This used to be commit 3a1d79116b)
2008-03-17 08:22:33 +01:00
Michael Adam
3b250d17d9 registry: explicitly use talloc context instead of talloc_tos()
in regdb_fetch_keys().

Michael
(This used to be commit 93ea27a3e2)
2008-03-17 08:22:33 +01:00
Michael Adam
46ea0d333e registry: don't leak on success path in regdb_store_keys().
Michael
(This used to be commit 331d7fd2ea)
2008-03-17 08:22:33 +01:00
Michael Adam
a0d4c1e127 registry: allocate tempory data in talloc stack in regdb_store_keys().
Michael
(This used to be commit a99b51159a)
2008-03-17 08:22:33 +01:00