1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00
Commit Graph

415 Commits

Author SHA1 Message Date
Michael Adam
57a290e942 s3:registry: always provision the registry, not only in smbd.
This will make tools like "net registry" also fill the registry
with the basic hives and keys.

Michael
2009-01-28 12:06:26 +01:00
Jelmer Vernooij
08259c1c52 Add iconv_convenience argument to size functions. 2009-01-01 04:45:33 +01:00
Jelmer Vernooij
ddcab787c4 Rename dos_errstr() to win_errstr() for consistency with Samba 4. 2008-11-01 17:19:26 +01:00
Jeremy Allison
8344e94574 Unify se_access_check with the S4 code. Will make
calculation of SEC_FLAG_MAXIMUM_ALLOWED much easier
for files.
Jeremy.
2008-10-31 10:51:45 -07:00
Jelmer Vernooij
2d89b52be8 Use separate make variables for libutil and libcrypto. 2008-10-18 14:28:40 +02:00
Jelmer Vernooij
4746f79d50 Use {u,}int64_t instead of SMB_BIG_{U,}INT. 2008-10-14 01:59:36 +02:00
Jeremy Allison
e5692d4cbe Remove SEC_ACCESS. It's a uint32_t.
Jeremy.
2008-10-09 09:49:03 -07:00
Andrew Tridgell
0f41961e4f first cut at adding full transactions for ctdb to samba3
(This used to be commit f91a3e0f7b)
2008-08-13 11:54:08 +02:00
Michael Adam
6e16022d62 registry: use _bystring wrappers to dbwrap_trans_(store|delete).
Michael
(This used to be commit 103ce6c9e9)
2008-08-05 23:40:26 +02:00
Michael Adam
a8ae5228f5 registry: bump debug level to 1 in regdb_init() if storing version string fails.
Higher level callers should take care of level 0 messages.

Michael
(This used to be commit b5829e04ea)
2008-07-15 14:25:00 +02:00
Michael Adam
0586d981a7 registry: bump debug level to 1 in regdb_init() if opening the registry fails.
Higher level callers take care of level 0 messages or more drastic measures.

Michael
(This used to be commit 111d802b5c)
2008-07-15 14:22:55 +02:00
Michael Adam
f587e0310c registry: fix logic in deleting subkeys record in regdb_fetch_keys().
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 75be2116ac)
2008-07-09 10:43:25 +02:00
Michael Adam
ad2e1757e7 registry: improve logic for deleting value records in regdb_store_keys().
Don't ignore all errors from dbwrap_delete_bystring() but
only NT_STATUS_NOT_FOUND.

Michael
(This used to be commit d7ec9b2d52)
2008-07-09 10:43:25 +02:00
Michael Adam
70d8e57c17 registry: fetch regdb_fetch_keys() when a key exists but not its subkey-record.
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 f329aaf045)
2008-07-08 17:10:01 +02:00
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
f5cbbb5c02 registry: make normalize_reg_path() strip leading and trailing '/' chars.
Michael
(This used to be commit 04762cfcdb)
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 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
282c9ff8ae registry: honour the WERROR that regsubkey_ctr_addkey gives us in reg_load_tree.
Michael
(This used to be commit c2d9baa29e)
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 7dd7471da7)
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 14d82708d4)
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 0b196095db)
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 7c343c6057)
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 5da52b95ac)
2008-04-13 15:33:48 +02:00