Michael Adam
f7d39653f5
registry: add removal of secdesc of a key to regdb_store_keys().
...
Michael
(This used to be commit a01d8fe5e89ca9620d23198b11e5ae605a97e5a6)
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 3e89217e7edea5d7ec707de065d38b1921ed09af)
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 f7c8718dead63964481954a86427b8c05d15452c)
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 97592db08a109ffbea8c85b17686fa565c5cf8c9)
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 a03a17365d64f7fe83a9f2e866c4f069a1dd1682)
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 986030cdda828f7f87c5464d1837324b7033e27e)
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 55dd9bdd148fc942e15aacfe9f6b38b1a5c53158)
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 52413c94fcc56c4055de4d35bea8a00646352122)
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 c27d03bba842ecf99f23b22dc40fa7df33392fa0)
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 347bab7f4aca7f26a88affea954a514c25735abf)
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 727e5a87c0ed3e0a2b9c2b508b1f81e6a6d26732)
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 8a2c9d965d332ccd290089b92e9cfbba2413067c)
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 cf653e101d1b2c38b5e9de35732421a120213170)
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 56a58690d3ab2e01ed28388bd59424d3abc7a0d3)
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 978aef3a862065be856b36b38d72d581c3ac0ba1)
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 477008367f0ac90624b4b751955cd3235b2c9cc6)
2008-05-08 18:29:09 +02:00
Michael Adam
f5cbbb5c02
registry: make normalize_reg_path() strip leading and trailing '/' chars.
...
Michael
(This used to be commit 04762cfcdba741afa457c96cd2f24e50cf83b15a)
2008-05-08 18:29:08 +02:00
Michael Adam
120aacfac5
registry: free temporary data in regdb_fetch_key_internal().
...
Michael
(This used to be commit 2b25f480ba13ae125d081bab55ee3cbd3c4f425a)
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 23d7002b22ddcd2c52650463f31b72449aecaaaa)
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 37dabf931727f00569725af0e34677d36bb7df99)
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 7c5f1583cb43d473544f161aa9c864e1d78944e5)
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 3ab5a2f1b3cf37c380ff3e45a957e62a8017814a)
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 207a0ece45d947608df3f764e6bd9b4525d41011)
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 3316541ac9f1441294405fdd98f0ffafdec8bc2f)
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 78f924ca05ecef9f586254c00908c1f12272c30c)
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 97bed9a23608248f1a590c99fe40564d2fbfa3cc)
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 217233349b2d98d2506fcca47858373150e89924)
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 1e4d2310d077c4d18470fd76f5ff9c010aadd3f0)
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 569f9844e9d35324cf9a3a3094cd9791918a1441)
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 87a58140f0073dfb5b18fb43655b255aebafbd02)
2008-04-30 12:42:31 +02:00
Michael Adam
282c9ff8ae
registry: honour the WERROR that regsubkey_ctr_addkey gives us in reg_load_tree.
...
Michael
(This used to be commit c2d9baa29edb2356f32ca19aea828184e9ac7b93)
2008-04-13 15:45:33 +02:00
Michael Adam
86d189dad1
registry: honour the WERROR that regsubkey_ctr_addkey gives in regdb_fetch_keys.
...
Michael
(This used to be commit 7dd7471da7eca2671b4aa62e8790973e3ff14177)
2008-04-13 15:41:07 +02:00
Michael Adam
a9ff941f41
registry: rename init_registry() to registry_init_full() for consistency.
...
Michael
(This used to be commit 14d82708d4499b48830d3dd25a0133f00a39d030)
2008-04-13 15:33:48 +02:00
Michael Adam
281e610ff3
registry: change init_registry() to return WERROR instead of bool.
...
Michael
(This used to be commit 0b196095dbbc29c796cb0742fe6e57a421e9596b)
2008-04-13 15:33:48 +02:00
Michael Adam
6c66d5d019
registry: change registry_init_smbconf() to return WERROR instead of bool
...
Michael
(This used to be commit 7c343c60574cda091f59861fbcb2893aefb564e9)
2008-04-13 15:33:48 +02:00
Michael Adam
4ae2e8c7ba
registry: refactor common part of registry initialization out.
...
into a new function registry_init_common().
Michael
(This used to be commit 5da52b95ac69e4abfbc44335df2447bec8f16e13)
2008-04-13 15:33:48 +02:00
Michael Adam
3f01e05a77
registry: change registry_init_basic() to return WERROR instead of bool
...
Michael
(This used to be commit 6a31e659cb371395dff0906786f3c6ef0cc2b3de)
2008-04-13 15:33:48 +02:00
Michael Adam
80b6d7b1d6
registry: change reghook_cache_add() to return WERROR instead of bool
...
Michael
(This used to be commit e65a999989c97c4c7b0af5093e0e89583691e9a8)
2008-04-13 15:33:48 +02:00
Michael Adam
5166d562ea
registry cachehook: change helper function keyname_to_path() to return WERROR.
...
Michael
(This used to be commit 78bb005ee45e7a0be24b5222c3f878058b5cd8ea)
2008-04-13 15:33:47 +02:00
Michael Adam
01f4bd4f4d
adt_tree: change pathtree_add to return WERR instead of bool.
...
Michael
(This used to be commit da45fb92f69221758f36db4cbb7d871e3ce60718)
2008-04-13 15:33:47 +02:00
Michael Adam
84c5da2ff4
registry cachehook: revert logic to make fast path more obvious and reduce indent.
...
Michael
(This used to be commit e97d558c5660e6d235b62528f5527a62ac1252d7)
2008-04-13 15:33:47 +02:00
Michael Adam
4b4306eb4a
registry: change reghook_cache_init() to return WERROR and use it in the callers.
...
Michael
(This used to be commit 2f4ca62dce50225d67ba8643afba4199e1845c5f)
2008-04-13 15:33:47 +02:00
Michael Adam
2ffe46e24d
registry cachehook: compare cache_tree against NULL, not 0.
...
Michael
(This used to be commit 4bfc0be55f2a436a9c687ab6ad86e704fcb753d6)
2008-04-13 15:33:47 +02:00
Michael Adam
26a5652f6d
registry: change init_registry_key() and init_registry_data() to return WERR
...
Michael
(This used to be commit e0718f04a7392695eed6cd1bf888d3af1d5d6177)
2008-04-13 15:33:47 +02:00
Michael Adam
cb624c4057
registry: unify debug output in the registry init functions.
...
Michael
(This used to be commit 4fd9b45ffc08e7deeae58be3129832148748af13)
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 c312852abce72bc167abee8b29fc699c4a643ca7)
2008-04-13 15:33:47 +02:00
Michael Adam
bcb19766d6
registry: make registry_init_smbconf() hook the registry ops onto given key.
...
This still defaults to HKLM\Software\Samba\smbconf, but is interchangeable now.
This allows us to open the libsmbconf registry backend on different registry keys.
Michael
(This used to be commit 8fe1a2f567afbecbe487f08825cb43b038065e99)
2008-04-13 15:33:47 +02:00
Michael Adam
b5a75ec402
registry cachehook: add talloc failed debug messages.
...
Michael
(This used to be commit 9841ee7fd429c7ff367dbb43b754cd5b6f53c065)
2008-04-13 01:47:16 +02:00
Michael Adam
a721f0a729
registry cachehook: eliminate a couple trailing spaces (empty lines).
...
Michael
(This used to be commit c9f01aee37165216fa8a5331c64dd93963b38802)
2008-04-13 01:44:57 +02:00
Michael Adam
0fa8845fa0
registry cachehook: fix memleak (to talloc_tos()): free key at the end.
...
Michael
(This used to be commit 3f5955d361da5278773b46dccb34c8f63eb04157)
2008-04-13 01:43:43 +02:00