Age | Commit message (Collapse) | Author | Files | Lines |
|
Michael
|
|
Michael
|
|
This paves the way for hiding the typedef and the implementation
from the surface.
Michael
|
|
Michael
|
|
Micheal
|
|
Michael
|
|
of regdb_store_values().
Michael
|
|
Michael
|
|
Michael
|
|
Michael
|
|
instead of using talloc directly.
Michael
|
|
Use the reg_objects accessor regsubkey_ctr_specific_key() instead.
Michael
|
|
Use the reg_objects api instead.
Michael
|
|
This paves the way for hiding the typedef and the implementation from the
surface.
Michael
|
|
This reverts commit a13f065bad0f4d21a67e68b743f17f45bf0a4691.
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
|
|
Michael
|
|
Signed-off-by: Michael Adam <obnox@samba.org>
|
|
Signed-off-by: Michael Adam <obnox@samba.org>
|
|
On my box this gets net conf list for 1000 records down to .1 seconds
Signed-off-by: Michael Adam <obnox@samba.org>
|
|
Jeremy.
|
|
|
|
This is *ancient*... From 2002, and nobody noticed until someone added lots of
shares using net conf... :-)
|
|
|
|
(This used to be commit f91a3e0f7b7737c1d0667cd961ea950e2b93e592)
|
|
Michael
(This used to be commit 103ce6c9e94ce74e616fe922f2584fd46ae1f3f8)
|
|
Higher level callers should take care of level 0 messages.
Michael
(This used to be commit b5829e04eaf2408858b34f53b849aaf8b969a925)
|
|
Higher level callers take care of level 0 messages or more drastic measures.
Michael
(This used to be commit 111d802b5c0dfdf556f736b6c53df74e077a6238)
|
|
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 75be2116ac2589aaf69038a4115197f40e4b16a5)
|
|
Don't ignore all errors from dbwrap_delete_bystring() but
only NT_STATUS_NOT_FOUND.
Michael
(This used to be commit d7ec9b2d52d1eddd98eba222f723fb6cdff4541f)
|
|
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 f329aaf0452cc9bbad9fb6f67dac00bf8d1ef128)
|
|
Michael
(This used to be commit a01d8fe5e89ca9620d23198b11e5ae605a97e5a6)
|
|
Michael
(This used to be commit 3e89217e7edea5d7ec707de065d38b1921ed09af)
|
|
Next step in the plan to make store_keys safer without transactions.
Michael
(This used to be commit f7c8718dead63964481954a86427b8c05d15452c)
|
|
Michael
(This used to be commit 97592db08a109ffbea8c85b17686fa565c5cf8c9)
|
|
adding number (3) ....
Michael
(This used to be commit a03a17365d64f7fe83a9f2e866c4f069a1dd1682)
|
|
values.
Michael
(This used to be commit 986030cdda828f7f87c5464d1837324b7033e27e)
|
|
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)
|
|
proceeding.
Michael
(This used to be commit 52413c94fcc56c4055de4d35bea8a00646352122)
|
|
This partly duplicates code from regdb_key_exists(). Maybe refactor later.
Michael
(This used to be commit c27d03bba842ecf99f23b22dc40fa7df33392fa0)
|
|
Michael
(This used to be commit 347bab7f4aca7f26a88affea954a514c25735abf)
|
|
Michael
(This used to be commit 727e5a87c0ed3e0a2b9c2b508b1f81e6a6d26732)
|
|
Michael
(This used to be commit 8a2c9d965d332ccd290089b92e9cfbba2413067c)
|
|
Michael
(This used to be commit cf653e101d1b2c38b5e9de35732421a120213170)
|
|
This uses the new semantics for existence of a key.
Michael
(This used to be commit 56a58690d3ab2e01ed28388bd59424d3abc7a0d3)
|
|
Michael
(This used to be commit 978aef3a862065be856b36b38d72d581c3ac0ba1)
|
|
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)
|
|
Michael
(This used to be commit 2b25f480ba13ae125d081bab55ee3cbd3c4f425a)
|
|
list talloc context first.
Michael
(This used to be commit 23d7002b22ddcd2c52650463f31b72449aecaaaa)
|
|
Michael
(This used to be commit 37dabf931727f00569725af0e34677d36bb7df99)
|
|
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)
|