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