summaryrefslogtreecommitdiffstats
path: root/source3/registry
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Fix a O(n^2) algorithm in regdb_fetch_keys()"Michael Adam2009-02-261-27/+5
| | | | | | | | | | | 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
* s3:registry: wrap deletekey_recursive in one big transaction.Michael Adam2009-02-261-2/+38
| | | | | | | This speeds up "net conf drop" with 2000 shares on my box from 4m40s to 1m50s, leaving virtually only cpu load. Michael
* s3:registry: provide transaction_start|commit|cancel fns for the registry tdbMichael Adam2009-02-261-0/+18
| | | | Michael
* Wrap creating the sorted subkey cache in a transactionVolker Lendecke2009-02-261-3/+31
| | | | Signed-off-by: Michael Adam <obnox@samba.org>
* Add a comment describing the sorted subkeysVolker Lendecke2009-02-261-0/+23
| | | | Signed-off-by: Michael Adam <obnox@samba.org>
* Add sorted subkey cacheVolker Lendecke2009-02-261-19/+174
| | | | | | On my box this gets net conf list for 1000 records down to .1 seconds Signed-off-by: Michael Adam <obnox@samba.org>
* Quieten down a boatload of shadowed variable warnings on Solaris.Jeremy Allison2009-02-231-4/+4
| | | | | Makes real problems easier to spot. Jeremy.
* Fix printf type warning.Jeremy Allison2009-02-191-2/+2
| | | | Jeremy.
* Fix a O(n^2) algorithm in regdb_fetch_keys()Volker Lendecke2009-02-191-5/+27
|
* Fix a buffer handling bug when adding lots of registry keysVolker Lendecke2009-02-191-9/+24
| | | | | This is *ancient*... From 2002, and nobody noticed until someone added lots of shares using net conf... :-)
* Remove a pointless NULL checkVolker Lendecke2009-02-141-3/+0
|
* Fix some nonempty blank linesVolker Lendecke2009-02-141-22/+22
|
* s3:registry: always provision the registry, not only in smbd.Michael Adam2009-01-282-8/+8
| | | | | | | This will make tools like "net registry" also fill the registry with the basic hives and keys. Michael
* Add iconv_convenience argument to size functions.Jelmer Vernooij2009-01-012-3/+3
|
* Rename dos_errstr() to win_errstr() for consistency with Samba 4.Jelmer Vernooij2008-11-014-6/+6
|
* Unify se_access_check with the S4 code. Will makeJeremy Allison2008-10-311-1/+2
| | | | | | calculation of SEC_FLAG_MAXIMUM_ALLOWED much easier for files. Jeremy.
* Use separate make variables for libutil and libcrypto.Jelmer Vernooij2008-10-181-1/+1
|
* Use {u,}int64_t instead of SMB_BIG_{U,}INT.Jelmer Vernooij2008-10-141-5/+5
|
* Remove SEC_ACCESS. It's a uint32_t.Jeremy Allison2008-10-091-7/+3
| | | | Jeremy.
* first cut at adding full transactions for ctdb to samba3Andrew Tridgell2008-08-131-3/+3
| | | | (This used to be commit f91a3e0f7b7737c1d0667cd961ea950e2b93e592)
* registry: use _bystring wrappers to dbwrap_trans_(store|delete).Michael Adam2008-08-051-6/+3
| | | | | Michael (This used to be commit 103ce6c9e94ce74e616fe922f2584fd46ae1f3f8)
* registry: bump debug level to 1 in regdb_init() if storing version string fails.Michael Adam2008-07-151-1/+1
| | | | | | | Higher level callers should take care of level 0 messages. Michael (This used to be commit b5829e04eaf2408858b34f53b849aaf8b969a925)
* registry: bump debug level to 1 in regdb_init() if opening the registry fails.Michael Adam2008-07-151-1/+1
| | | | | | | Higher level callers take care of level 0 messages or more drastic measures. Michael (This used to be commit 111d802b5c0dfdf556f736b6c53df74e077a6238)
* registry: fix logic in deleting subkeys record in regdb_fetch_keys().Michael Adam2008-07-091-2/+6
| | | | | | | | | | 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)
* registry: improve logic for deleting value records in regdb_store_keys().Michael Adam2008-07-091-2/+9
| | | | | | | | Don't ignore all errors from dbwrap_delete_bystring() but only NT_STATUS_NOT_FOUND. Michael (This used to be commit d7ec9b2d52d1eddd98eba222f723fb6cdff4541f)
* registry: fetch regdb_fetch_keys() when a key exists but not its subkey-record.Michael Adam2008-07-081-9/+10
| | | | | | | | | | | | | | | 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)
* registry: add removal of secdesc of a key to regdb_store_keys().Michael Adam2008-05-081-0/+17
| | | | | Michael (This used to be commit a01d8fe5e89ca9620d23198b11e5ae605a97e5a6)
* registry: add comments to removing lists in regdb_store_keys().Michael Adam2008-05-081-0/+4
| | | | | Michael (This used to be commit 3e89217e7edea5d7ec707de065d38b1921ed09af)
* registry: change order of deleting value and subkey lists in store_keys().Michael Adam2008-05-081-16/+13
| | | | | | | Next step in the plan to make store_keys safer without transactions. Michael (This used to be commit f7c8718dead63964481954a86427b8c05d15452c)
* registry: adapt comment to first step in regdb_store_keys().Michael Adam2008-05-081-1/+1
| | | | | Michael (This used to be commit 97592db08a109ffbea8c85b17686fa565c5cf8c9)
* registry: adapt comment of last step in regdb_store_keys().Michael Adam2008-05-081-1/+1
| | | | | | | adding number (3) .... Michael (This used to be commit a03a17365d64f7fe83a9f2e866c4f069a1dd1682)
* registry: regdb_store_keys: move storing the subkey list down after removing ↵Michael Adam2008-05-081-8/+8
| | | | | | | values. Michael (This used to be commit 986030cdda828f7f87c5464d1837324b7033e27e)
* registry: add comment explaining workflow to make store_keys safe w/o ↵Michael Adam2008-05-081-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* registry: check for existence of non base key in regdb_store_keys() before ↵Michael Adam2008-05-081-0/+4
| | | | | | | proceeding. Michael (This used to be commit 52413c94fcc56c4055de4d35bea8a00646352122)
* registry: add a function regdb_key_is_base_key() to check whether is composite.Michael Adam2008-05-081-0/+33
| | | | | | | This partly duplicates code from regdb_key_exists(). Maybe refactor later. Michael (This used to be commit c27d03bba842ecf99f23b22dc40fa7df33392fa0)
* registry: check for existence of key in regdb_set_secdesc() before proceeding.Michael Adam2008-05-081-0/+5
| | | | | Michael (This used to be commit 347bab7f4aca7f26a88affea954a514c25735abf)
* registry: check for existence of key in regdb_get_secdesc() before proceeding.Michael Adam2008-05-081-0/+5
| | | | | Michael (This used to be commit 727e5a87c0ed3e0a2b9c2b508b1f81e6a6d26732)
* registry: check for existence of key in regdb_store_values() before proceeding.Michael Adam2008-05-081-0/+4
| | | | | Michael (This used to be commit 8a2c9d965d332ccd290089b92e9cfbba2413067c)
* registry: check for existence of key in regdb_fetch_keys() before proceeding.Michael Adam2008-05-081-0/+4
| | | | | Michael (This used to be commit cf653e101d1b2c38b5e9de35732421a120213170)
* registry: check for existence of key in regdb_fetch_values() first.Michael Adam2008-05-081-0/+4
| | | | | | | This uses the new semantics for existence of a key. Michael (This used to be commit 56a58690d3ab2e01ed28388bd59424d3abc7a0d3)
* registry: free talloc context on error path in regdb_fetch_values().Michael Adam2008-05-081-1/+1
| | | | | Michael (This used to be commit 978aef3a862065be856b36b38d72d581c3ac0ba1)
* registry: Implement new semantics for existence of registry key in tdb.Michael Adam2008-05-081-3/+52
| | | | | | | | | | | 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)
* registry: make normalize_reg_path() strip leading and trailing '/' chars.Michael Adam2008-05-081-7/+26
| | | | | Michael (This used to be commit 04762cfcdba741afa457c96cd2f24e50cf83b15a)
* registry: free temporary data in regdb_fetch_key_internal().Michael Adam2008-05-081-1/+5
| | | | | Michael (This used to be commit 2b25f480ba13ae125d081bab55ee3cbd3c4f425a)
* registry: change order of arguments of regdb_fetch_key_internal()Michael Adam2008-05-081-4/+4
| | | | | | | list talloc context first. Michael (This used to be commit 23d7002b22ddcd2c52650463f31b72449aecaaaa)
* registry: skip writes of existing keys in init_registry_data().Michael Adam2008-04-301-0/+3
| | | | | Michael (This used to be commit 37dabf931727f00569725af0e34677d36bb7df99)
* registry: save writes in init_registry_data() if data does already exist.Michael Adam2008-04-301-12/+43
| | | | | | | | 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)
* registry: check for existence of key init_registry_key and possibly save a ↵Michael Adam2008-04-301-0/+4
| | | | | | | write. Michael (This used to be commit 3ab5a2f1b3cf37c380ff3e45a957e62a8017814a)
* registry: add function regdb_key_exists() to check for existence of a key.Michael Adam2008-04-301-0/+17
| | | | | | | | 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)
* registry: use regdb_fetch_key_internal() in regdb_fetch_values().Michael Adam2008-04-301-5/+1
| | | | | Michael (This used to be commit 3316541ac9f1441294405fdd98f0ffafdec8bc2f)