Age | Commit message (Collapse) | Author | Files | Lines |
|
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 04762cfcdba741afa457c96cd2f24e50cf83b15a)
|
|
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)
|
|
write.
Michael
(This used to be commit 3ab5a2f1b3cf37c380ff3e45a957e62a8017814a)
|
|
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)
|
|
Michael
(This used to be commit 3316541ac9f1441294405fdd98f0ffafdec8bc2f)
|
|
Michael
(This used to be commit 78f924ca05ecef9f586254c00908c1f12272c30c)
|
|
regdb_fetch_key_internal()
Michael
(This used to be commit 97bed9a23608248f1a590c99fe40564d2fbfa3cc)
|
|
regdb_fetch_keys().
the talloc_strdup() call is just and extra allocation here.
Michael
(This used to be commit 217233349b2d98d2506fcca47858373150e89924)
|
|
instead of handcrafting normalization.
Michael
(This used to be commit 1e4d2310d077c4d18470fd76f5ff9c010aadd3f0)
|
|
Michael
(This used to be commit 569f9844e9d35324cf9a3a3094cd9791918a1441)
|
|
instead of using regdb->fetch and constructing tdb data
from the registry key string by hand.
Michael
(This used to be commit 87a58140f0073dfb5b18fb43655b255aebafbd02)
|
|
Michael
(This used to be commit c2d9baa29edb2356f32ca19aea828184e9ac7b93)
|
|
Michael
(This used to be commit 7dd7471da7eca2671b4aa62e8790973e3ff14177)
|
|
Michael
(This used to be commit 14d82708d4499b48830d3dd25a0133f00a39d030)
|
|
Michael
(This used to be commit 0b196095dbbc29c796cb0742fe6e57a421e9596b)
|
|
Michael
(This used to be commit 7c343c60574cda091f59861fbcb2893aefb564e9)
|
|
into a new function registry_init_common().
Michael
(This used to be commit 5da52b95ac69e4abfbc44335df2447bec8f16e13)
|
|
Michael
(This used to be commit 6a31e659cb371395dff0906786f3c6ef0cc2b3de)
|
|
Michael
(This used to be commit e65a999989c97c4c7b0af5093e0e89583691e9a8)
|
|
Michael
(This used to be commit 78bb005ee45e7a0be24b5222c3f878058b5cd8ea)
|
|
Michael
(This used to be commit da45fb92f69221758f36db4cbb7d871e3ce60718)
|
|
indent.
Michael
(This used to be commit e97d558c5660e6d235b62528f5527a62ac1252d7)
|
|
callers.
Michael
(This used to be commit 2f4ca62dce50225d67ba8643afba4199e1845c5f)
|
|
Michael
(This used to be commit 4bfc0be55f2a436a9c687ab6ad86e704fcb753d6)
|
|
Michael
(This used to be commit e0718f04a7392695eed6cd1bf888d3af1d5d6177)
|