Michael Adam
861f04bec0
s3:registry: implement regdb_store_values() with regdb_trans_do()
...
This adds the runtime check for changed regdb format version to store_values
2011-09-01 23:18:18 +02:00
Michael Adam
6832ae4c6d
s3:registry: change regdb_store_values_internal() from bool to NTSTATUS return code
2011-09-01 23:18:18 +02:00
Michael Adam
e1d7cfb41b
s3:registry: use the regdb_trans_do wrapper instead of using dbwrap_trans_do directly in the registry db code.
...
This verifies the regdb format version number before the corresponding write operations.
2011-09-01 23:18:18 +02:00
Michael Adam
9352a95bfd
s3:registry: add regdb_trans_do(): a transaction wrapper that will check the regdb version
...
If the version has changed since initialization, the write will
fail with ACCESS_DENIED.
2011-09-01 23:18:18 +02:00
Michael Adam
5ef11737bc
s3:registry: drop log level of unknown regdb version message in regdb_init() to 0
2011-09-01 23:18:17 +02:00
Michael Adam
1e09f12d1f
s3:registry: fix the v2_to_v3 upgrade code so that it does not create value list security records for the INFO/version key ...
2011-08-25 23:55:06 +02:00
Michael Adam
9b46798b11
s3:registry: fix the v1_to_v2 upgrade code so that it does not normalize the INFO/version key ...
2011-08-25 23:55:06 +02:00
Michael Adam
b4cb969e40
s3:registry: define a constant REGDB_VERSION_KEYNAME for the key INFO/version (and use it)
2011-08-25 23:55:06 +02:00
Michael Adam
b1a94b66cc
s3:registry: hand db context in to v2_to_v3 upgrade code via private_data
...
This also fixes the earlier faulty handing in of a useless stackframe
memory context via private_data.
2011-08-25 23:55:06 +02:00
Michael Adam
48f08011e5
s3:registry: fix broken use of dbwrap store record in v1_to_v2 upgrade code
...
This also fixes broken private_data parameter for the traverse function
(making use of it): Originally a memory context was handed in but was not used.
2011-08-25 23:55:06 +02:00
Michael Adam
32b7411104
s3:registry: fix regdb_key_exists: the record has to contain at least the 4-byte subkey counter
...
More precisley, we return false if the record does not match the required
structure of a leading 4-byte subkey counter followed by the corresponding
number zero-terminated strings.
2011-08-15 17:15:14 +02:00
Gregor Beck
356ed8644c
s3:registry avoid updating keys which are going to be deleted in
...
reg_deletekey_recursive
this changes the complexity from O(n^2) to O(n) and reduces the time of
a 'net conf drop' with 10000 shares from 6min to 1.5s
Signed-off-by: Michael Adam <obnox@samba.org>
2011-08-08 15:27:07 +02:00
Michael Adam
0b5c4a601a
s3:dbwrap: move all .c and .h files of dbwrap to lib/dbwrap/
...
Autobuild-User: Michael Adam <obnox@samba.org>
Autobuild-Date: Fri Jul 29 13:34:22 CEST 2011 on sn-devel-104
2011-07-29 13:34:22 +02:00
Michael Adam
1abdd9b2bb
s3:dbwrap: move db_open() to a file dbwrap_open.c of its own.
...
Also start new folder lib/dbwrap/ where dbwrap_open.c is stored and
make the fallbacke implementation functoins non-static and create a
dbwrap_private.h header file that contains their prototypes.
2011-07-29 12:23:13 +02:00
Gregor Beck
5049e3e142
s3:registry avoid pruning the sequencenumber while flushing the regsubkey_ctr
...
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Fri Jul 15 08:34:47 CEST 2011 on sn-devel-104
2011-07-15 08:34:47 +02:00
Michael Adam
4af8615da8
s3:registry: update copyright for the registry db implementation
2011-07-06 12:55:25 +02:00
Michael Adam
399c0dba01
s3:registry: remove unused function regdb_key_is_base_key()
...
Autobuild-User: Michael Adam <obnox@samba.org>
Autobuild-Date: Mon Jul 4 21:11:32 CEST 2011 on sn-devel-104
2011-07-04 21:11:32 +02:00
Michael Adam
86f8eb98fe
s3:registry: replace use of deprecated talloc_destroy by talloc_free.
2011-07-04 20:02:10 +02:00
Michael Adam
17b091b7c7
s3:registry: remove superfluous check for success of talloc_stackframe()
2011-07-04 20:02:10 +02:00
Michael Adam
cc384c1596
s3:registry: add debug-level-10 verbosity to regdb_upgrade_v2_v3_fn()
2011-07-04 20:02:10 +02:00
Michael Adam
340be35b9b
s3:registry: adapt a debug message to be more systematic
2011-07-04 20:02:10 +02:00
Michael Adam
c8c5d8c89e
s3:registry: set registry version to 3 and add upgrade code
...
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:09 +02:00
Michael Adam
f36ee63df2
s3:registry: add db_context argument to regdb_upgrade_v1_to_v2()
2011-07-04 20:02:09 +02:00
Michael Adam
1621aab139
s3:registry: wrap the whole db upgrade in one transaction
...
The purpose of this is to prepare for multiple upgrade steps
to be performed in a single transaction, so that no change
at all is made to that database if one step fails.
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:09 +02:00
Michael Adam
caf9c99969
s3:registry: change regdb_store_regdb_version() to take db_context argument.
2011-07-04 20:02:09 +02:00
Michael Adam
2273650ca8
s3:registry: fix a comment typo
2011-07-04 20:02:09 +02:00
Michael Adam
a8360712e1
s3:registry: remove unused regdb_delete_sorted_subkeys()
...
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:09 +02:00
Michael Adam
a0f83ecbb9
s3:registry: don't delete the unused subkeys cache record any more
...
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:09 +02:00
Michael Adam
50add4091a
s3:registry: remove the code to create and search the sorted subkeys cache records
...
This is not needed any more.
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:09 +02:00
Michael Adam
18973fa109
s3:registry: adapt the comment explaining the definition of the existence of a key.
...
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:09 +02:00
Michael Adam
a255630358
s3:registry: regdb_key_exists now checks only for the list-of-subkeys-record
...
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:08 +02:00
Michael Adam
9e2b2c1fcc
s3:registry: rewrite init_registry_key_internal
...
This rewrites init_registry_key_internal() to correctly also create
base keys. It makes use of the existing create functions instead of
duplicating the code.
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:08 +02:00
Michael Adam
747c67cf30
s3:registry: add regdb_create_basekey()
...
Function to create a base key in the registry db, i.e. one that
has no parent key.
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:08 +02:00
Michael Adam
144c8d77d8
s3:registry: add regdb_create_subkey_internal() taking additional db context argument
...
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:08 +02:00
Michael Adam
15a50ef8f8
s3:registry: add new mode to regdb_store_subkey_list() for handing in NULL parent key
...
Standard behaviour is to concatenate parent and key path (parent\key).
This new mode allows for storing subkey lists for base keys using a NULL
parent argument.
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:08 +02:00
Michael Adam
fc4d79d41a
s3:registry: create the empty list of subkeys of the new key in regdb_create_subkey
...
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:08 +02:00
Michael Adam
322eaf1e9e
s3:registry: refactor creation of subkey list out into regdb_store_subkey_list()
...
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:08 +02:00
Michael Adam
394ca1446e
s3:registry: remove redundant write of zero-lentgh subkey list record
...
In this case, the zero-lenght list has already been written in step #2 .
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:08 +02:00
Michael Adam
eb797bd206
s3:registry: don't update the sorted subkeys cache any more in regdb_store_keys_internal2()
...
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:08 +02:00
Michael Adam
5b01a34ad7
s3:registry: don't skip base key in existence check in regdb_store_keys_internal()
...
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:08 +02:00
Michael Adam
da2e64b63f
s3:registry: don't skip base keys from existence check in regdb_create_subkey()
...
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:07 +02:00
Michael Adam
6b99aa496f
s3:registry: don't skip base keys from existence check in regdb_delete_subkey()
...
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
2011-07-04 20:02:07 +02:00
Michael Adam
1f72088633
s3:registry: when deleting the records for a key, also delete the sorted subkeys cache
...
This prevents orphaned empty sorted subkeys cache records from filling the database.
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
Signed-off-by: Michael Adam <obnox@samba.org>
2011-06-30 15:41:23 +02:00
Michael Adam
2b162db6e9
s3:registry: add helper function regdb_delete_sorted_subkeys()
...
Pair-Programmed-With: Gregor Beck <gbeck@sernet.de>
Signed-off-by: Michael Adam <obnox@samba.org>
2011-06-30 15:41:22 +02:00
Rusty Russell
5a7874e119
tdb_traverse/tdb_traverse_read: check returns for negative, not -1.
...
TDB2 returns a negative error number on failure. This is compatible
if we always check for < 0 instead of == -1.
Also, there's no tdb_traverse_read in TDB2: we don't try to make
traverse reliable any more, so there are no write locks anyway.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2011-06-20 11:18:35 +02:00
Andrew Bartlett
3d15137653
s3-talloc Change TALLOC_ARRAY() to talloc_array()
...
Using the standard macro makes it easier to move code into common, as
TALLOC_ARRAY isn't standard talloc.
2011-06-09 12:40:08 +02:00
Andrew Bartlett
381423b1bd
libcli/security: move secdesc.c to the top level libcli/security
...
This code does not rely on lp_ or other source3 only functions, so can
be part of the common library.
Andrew Bartlett
2011-05-31 00:32:07 +02:00
Andrew Bartlett
c615ebed6e
s3-lib Replace StrCaseCmp() with strcasecmp_m()
...
strcasecmp_m() never needs to call to talloc, and via next_codepoint()
still has an ASCII fast-path bypassing iconv() calls.
Andrew Bartlett
2011-05-18 16:12:08 +02:00
Michael Adam
26b6831164
s3:registry: add a warning debug message when the sorted subkeys is created from key_exists()
2011-05-12 11:48:30 +02:00
Michael Adam
daf5f29d49
s3:registry: recreate the sorted subkeys cache when storing keys
...
This is to avoid turning the next read operation into a write op.
2011-05-12 11:48:30 +02:00
Michael Adam
1a6ac6a944
s3:registry: add create_sorted_subkeys() to delete and recreate the sorted subkeys key
...
This is to be used from other places than the key_exists() code path.
2011-05-12 11:48:30 +02:00
Michael Adam
b1eac2daf3
s3:registry: turn create_sorted_subkeys_internal to NTSTATUS return type
...
(from bool)
2011-05-12 11:48:30 +02:00
Michael Adam
f5f9355ebe
s3:registry: rename create_sorted_subkeys() to create_sorted_subkeys_internal()
2011-05-12 11:48:29 +02:00
Michael Adam
04f0a1cb7b
s3:registry: fix a typo in a debug message
2011-05-12 11:48:29 +02:00
Günther Deschner
d8cfca3a9b
s3: only include tdb headers where needed.
...
Guenther
2011-05-06 10:48:10 +02:00
Volker Lendecke
b48e22347d
s3: Fix Coverity ID 2047, UNUSED_VALUE
...
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Fri Apr 22 10:53:24 CEST 2011 on sn-devel-104
2011-04-22 10:53:24 +02:00
Günther Deschner
0e771263ee
s3-includes: only include system/filesys.h when needed.
...
Guenther
2011-03-30 01:13:07 +02:00
Michael Adam
14502c5458
s3:registry: fix comments in regdb_store_regdb_version()
2011-01-27 21:43:48 +01:00
Michael Adam
d91189727a
s3:registry: improve debug messages about regdb refcount changes
...
Autobuild-User: Michael Adam <obnox@samba.org>
Autobuild-Date: Tue Dec 7 15:18:03 CET 2010 on sn-devel-104
2010-12-07 15:18:03 +01:00
Volker Lendecke
4b2e2f94bb
s3: Streamline regdb_normalize_keynames_fn a bit
...
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Thu Oct 28 14:32:11 UTC 2010 on sn-devel-104
2010-10-28 14:32:11 +00:00
Volker Lendecke
8b87603de4
s3: Fix the registry upgrade code
...
The strings have the 0-terminator as part of the keys. The rest of the registry
code would not cope well without.
2010-10-28 15:50:14 +02:00
Michael Adam
cda2db5edf
s3:registry: fix some trailing spaces in reg_backend_db
...
Autobuild-User: Michael Adam <obnox@samba.org>
Autobuild-Date: Tue Oct 12 14:15:42 UTC 2010 on sn-devel-104
2010-10-12 14:15:42 +00:00
Günther Deschner
7a05ca2c9c
s3-build: use dbwrap.h only where needed.
...
Guenther
2010-08-26 00:25:55 +02:00
Günther Deschner
813fbbd68c
s3-build: avoid to globally include printing and spoolss headers.
...
This shrinks precompiled headers by 3MB and will slightly speed up any build.
Guenther
2010-07-31 00:50:31 +02:00
Andreas Schneider
96c25cdad5
s3-spoolss: Create winprint print processor key.
...
Signed-off-by: Jim McDonough <jmcd@samba.org>
2010-07-27 10:27:14 -04:00
Andreas Schneider
65eb38bc00
s3-registry: Init all needed registry keys for printing.
...
Signed-off-by: Jim McDonough <jmcd@samba.org>
2010-07-27 10:27:06 -04:00
Günther Deschner
ddb8fae401
s3-registry: allow to read NULL entries (that we allow to store) back from the tdb.
...
Guenther
2010-07-02 10:50:21 +02:00
Michael Adam
6d973607c3
s3:registry: use regdb_store_regdb_version() in regdb_init().
2010-06-25 18:13:06 +02:00
Michael Adam
2f44dcc96b
s3:registry: use regdb_store_regdb_version() in regdb_upgrade_v1_to_v2()
2010-06-25 18:12:28 +02:00
Michael Adam
5641ee02fd
s3:registry: add a function regdb_store_regdb_version()
2010-06-25 18:11:35 +02:00
Michael Adam
a9bec6b779
s3:registry: rename regdb_upgrade_to_version_2() -> regdb_upgrade_v1_to_v2()
2010-06-25 18:04:52 +02:00
Michael Adam
8e4f812823
s3:registry: improve logic of upgrade code in regdb_init()
...
Don't overwrite unknown versions (0 or > 2) of the registry.
2010-06-25 17:35:42 +02:00
Michael Adam
3703b79b11
s3:registry: fix some debug messages in regdb_ini()
2010-06-25 17:35:42 +02:00
Andreas Schneider
15bacaf3c5
s3-registry: Convert registry key delimiter from slash to backslash.
...
This is needed to support keynames containing a '/' like TCP/IP. Which
is used in serveral standard paths.
Signed-off-by: Michael Adam <obnox@samba.org>
2010-06-25 17:35:41 +02:00
Andreas Schneider
f540833632
s3-registry: Added a db upgrade function to normalize the key delimiter.
...
This converts the key delimiter from a slash to a blackslash. We need to
support keynames with a backslash.
Signed-off-by: Michael Adam <obnox@samba.org>
2010-06-25 17:35:41 +02:00
Michael Adam
5cac4e648c
s3:registry: use normalize_reg_path() in regdb_set_secdesc()
...
instead of normalize_dbkey
2010-06-24 15:36:20 +02:00
Michael Adam
4c948251d9
s3:registry: use normalize_reg_path() in regdb_get_secdesc()
...
instead of normalize_dbkey.
2010-06-24 15:36:20 +02:00
Michael Adam
0fe1ff99a1
s3:registry: move reg_objects.h to registry/ and use it only where needed
...
Every place outside of registry/ where this is used, should probably
be changed to use pure reg_api.c code.
2010-05-25 10:35:31 +02:00
Michael Adam
a71dac4882
s3:registry: user regval_ctr/blob accessor functions in reg_backend_db.c
2010-05-25 10:35:28 +02:00
Michael Adam
773255ba50
s3:registry: rename reg_util.{c,h} to reg_util_internal.{c,h}
2010-05-25 10:35:27 +02:00
Michael Adam
d335f292ce
s3:registry: extract the reg_backend_db prototypes into their own header.
...
And use them only where needed.
2010-05-25 10:35:25 +02:00
Michael Adam
9ccf66379a
s3:registry: adapt callers of regval_ctr_addvalue to uint8 * instead of char *
2010-05-25 10:35:25 +02:00
Michael Adam
4ae77b2ef9
s3:registry: extract the reg_util prototypes into their own header.
...
And use them only where needed.
2010-05-25 10:35:25 +02:00
Gregor Beck
0a173444ac
s3: registry: fix query empty valuenames
...
Remove a check introduced with commit 80c2446321
wich causes queries for values with empty name to fail. Empty valuenames are
used for the so called default value of a key.
Signed-off-by: Michael Adam <obnox@samba.org>
2010-05-21 00:22:45 +02:00
Günther Deschner
fe31b67d5e
s3-registry: only include registry headers when really needed.
...
Guenther
2010-05-18 01:15:38 +02:00
Günther Deschner
3d5972c43f
s3-libgpo: move group policy protos to where they belong.
...
Guenther
2010-05-17 21:07:17 +02:00
Andrew Tridgell
7cff685c7e
s3: convert registry and printing code to TYPESAFE_QSORT()
2010-02-14 18:44:21 +11:00
Michael Adam
a752bbd10d
s3:registry: eliminate race condition in creating/scanning sorted subkeys
...
Called, from key_exists, scan_sorted_subkeys re-creates the sorted
subkeys record of the given key and then searches through it.
The race is that between creation and parsing of the sorted subkey
record, another process that stores some other subkey of the same
parent key will delete the sorted subkey record, resulting in an
WERR_BADFILE of an operation that should actually succeed.
This patch fixes the issue by wrapping the creation and parsing
into a transaction.
Michael
2010-02-12 23:12:12 +01:00
Michael Adam
cc5b22a016
s3:registry: add an extra check for dsize==0 to regdb_fetch_keys_internal()
...
Don't only rely on dptr == NULL.
I stumbled over this one when rewriting some of the dbwrap_ctdb code.
Michael
2009-11-03 01:02:39 +01:00
Michael Adam
f6f2151a39
s3:registry: add safety check for return value of tdb_unpack to regdb_fetch_keys_internal()
...
Prevents segfaults in some situations.
(For a non existent or empty record, we sometimes rely on the fetch operation
to return dsize==0 and sometimes we rely on dptr==NULL.)
Michael
2009-11-03 01:02:38 +01:00
Günther Deschner
1b0f3b7e3a
s3-registry: use regval_ctr_addvalue_sz().
...
Greatly simplifies and cleanes up the code.
Guenther
2009-09-30 00:30:12 +02:00
Günther Deschner
2c11b73391
s3-registry: use push_reg_sz().
...
Guenther
2009-09-30 00:29:49 +02:00
Michael Adam
5a525f7f28
s3:registry: db backend: add my C
...
Michael
2009-07-15 14:01:58 +02:00
Michael Adam
78576117eb
s3:registry: flush the provided subkey_ctr in regdb_fetch_keys_internal()
...
This way, we always return what has really been read from the db,
and not more. The callers assume exactly this, but one could hand
in an already pre-filled subkey container...
Michael
2009-07-15 14:01:58 +02:00
Michael Adam
dc0bcfa188
s3:registry: turn regdb_fetch_keys_internal() from int to WERROR return type
...
This way, more error information is propagated to the callers.
Michael
2009-07-15 14:01:57 +02:00
Michael Adam
c52dd1d5b8
s3:registry: use transaction wrapper in create_sorted_subkeys()
...
Michael
2009-07-15 14:01:56 +02:00
Michael Adam
109ea29b2c
s3:registry: restructure logic of create_sorted_subkes() slightly
...
This makes it clearer to me, and it also makes it easier to
use the transaction retry wrapper in the next step.
Michael
2009-07-15 14:01:56 +02:00
Michael Adam
2d6dbcd0b1
s3:registry: use transaction wrapper in regdb_delete_subkey().
...
Michael
2009-07-15 14:01:55 +02:00
Michael Adam
a48d8353c7
s3:registry: add a comment header for the delete_subkey set of commands.
...
Michael
2009-07-15 14:01:55 +02:00
Michael Adam
5640598cbb
s3:registry: add a comment header for the create_subkey set of functions
...
Michael
2009-07-15 14:01:54 +02:00