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

876 Commits

Author SHA1 Message Date
Günther Deschner
91e8f8ded2 s3-registry: move regf based reg_api calls into own file.
Guenther
2010-09-20 02:27:41 +02:00
Günther Deschner
323f729df0 s3-registry: add reg_querymultiplevalues to reg_api matching table.
Guenther
2010-09-20 02:27:41 +02:00
Andrew Bartlett
3bb77516b8 s3-privs Convert from user_has_privileges() -> security_token_has_privilege()
This new call is available in the merged privileges code, and
takes an enum as the parameter, rather than a bitmask.

Andrew Bartlett

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2010-09-11 18:46:09 +10:00
Andrew Bartlett
2387e3bcfe s3-privs Call security_token_set_privilege() rather than manual assignment
This avoids as much direct modifiction of the bitmask as possible.

Andrew Bartlett

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2010-09-11 18:46:09 +10:00
Andrew Bartlett
d1bb21b0d5 s3:auth Remove NT_USER_TOKEN
The all UPPER case typedef is no longer the preferred Samba style
and this makes it easier to see that this is the IDL-derivied structure

Andrew Bartlett

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2010-09-11 18:46:06 +10:00
Andrew Bartlett
4bfc8d3b1a s3-auth Change struct nt_user_token -> struct security_token
This common structure is defined in security.idl

Andrew Bartlett

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2010-09-11 18:46:05 +10:00
Andrew Bartlett
eee63b7e75 s3-auth Rename NT_USER_TOKEN privileges -> privilege_mask
This is closer to the struct security_token from security.idl

Andrew Bartlett
2010-08-31 11:25:41 +10:00
Andrew Bartlett
8c15cf54ae s3-auth Rename NT_USER_TOKEN user_sids -> sids
This is closer to the struct security_token from security.idl
2010-08-31 10:20:14 +10: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
7b6fc9f414 s3-dcerpc: only include rpc_dce.h where needed.
Guenther
2010-08-26 00:20:29 +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
71be0ec140 s3-registry: Redirect KEY_CONTROL_PRINTERS to KEY_WINNT_PRINTERS.
Signed-off-by: Jim McDonough <jmcd@samba.org>
2010-07-27 10:27:06 -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
914fd13edd s3-registry: use some prs macros to the only place where they are used.
Guenther
2010-07-16 02:20:34 +02:00
Simo Sorce
f4c6c7e7b8 Move the remnants of rpc_parse code under registry/
The registry code is the only last user of this code.
Move everything under registry/ and hope someone will get rid od
it completely from there in the future.

Signed-off-by: Günther Deschner <gd@samba.org>
2010-07-16 01:51:18 +02:00
Simo Sorce
67b6fe3dc3 s3-misc: Move smb_io_time() to regfio.c
This is the last file using this function and we do not want anyone
else to keep using hand marshalled stuff anyway.
So make it also private to that file.

Signed-off-by: Günther Deschner <gd@samba.org>
2010-07-16 01:51:18 +02:00
Günther Deschner
d9429a874c s3-registry: remove 2 byte winreg type limitation.
We already pull and push 4 byte winreg type in the registry.tdb, we were just
not using full 4 bytes within the reg_object functions.

With this change we finally pass the set extended value torture test.

Guenther
2010-07-02 10:50:22 +02: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
Günther Deschner
786198e523 s3-registry: remove unused reg_util_marshalling code.
Guenther
2010-07-02 10:50:21 +02:00
Günther Deschner
b381fba089 s3-registry: avoid using registry_value union.
Just pull and push data as is.

Guenther
2010-07-02 10:50:21 +02:00
Günther Deschner
74721bf706 s3-registry: fix malloc/talloc mismatch upon free in reg_enumvalue().
Guenther
2010-07-01 01:22:11 +02:00
Günther Deschner
21869f5ed0 s3-registry: add reg_querymultiplevalues() to reg_api.
Guenther
2010-06-30 21:46:08 +02:00
Günther Deschner
158504381e s3-registry: missed one perflib keyname delimiter.
Guenther
2010-06-28 14:18:04 +02:00
Günther Deschner
658048ecbc s3-registry: fix printing keyname delimiter.
Guenther
2010-06-28 13:16:31 +02:00
Günther Deschner
3d24040ac6 s3-registry: fix perfmon keyname delimiter.
Guenther
2010-06-28 13:16:31 +02:00
Andreas Schneider
378cd5dc38 s3-registry: Fixed keyname delimiter in KEY_CURRENT_VERSION_NORM. 2010-06-28 12:56:13 +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
2a0340baa3 s3:registry: remove unused function normalize_dbkey() 2010-06-24 15:36:21 +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
Günther Deschner
84a8f0451d s3-build: only include generated spoolss headers (not ndr headers).
Guenther
2010-06-03 11:00:27 +02:00
Günther Deschner
f9f8007361 s3-build: only use ndr_security.h where needed.
Guenther
2010-05-31 11:32:37 +02:00
Michael Adam
af2cbaa700 s3:registry: add C for substantial changes to reg_objects 2010-05-25 10:53:17 +02:00
Michael Adam
80293b8067 s3:registry:reg_objects: Remove use of uint{8,16,32} in favour of C99 types 2010-05-25 10:35:32 +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
75e691ae6b s3:registry: hide definition of regval_ctr and regval_blob in reg_objects.c 2010-05-25 10:35:31 +02:00
Michael Adam
5fbf935ffc s3:registry: use regval_ctr/blob accessor functoin in reg_eventlog.c 2010-05-25 10:35:29 +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
0d20053f10 s3:registry: use regval_ctr/blob accessor functions in reg_api.c 2010-05-25 10:35:28 +02:00
Michael Adam
987514d98d s3:registry:reg_objects: add regval_ctr_set_seqnum() 2010-05-25 10:35:28 +02:00
Michael Adam
6b331321e3 s3:registry:reg_objects: add regval_ctr_get_seqnum() 2010-05-25 10:35:28 +02:00
Michael Adam
e0d5bccfd3 s3:registry:reg_objects: add regval_ctr_init() 2010-05-25 10:35:28 +02:00
Michael Adam
97846edfa5 s3:registry: move definition of registry_hook to reg_init_full.c - it's only user 2010-05-25 10:35:27 +02:00
Michael Adam
e829b42978 s3:registry: extract registry_pull/push_value prototypes into own header
reg_util_marshalling.h and use them only where needed.
2010-05-25 10:35:27 +02:00
Michael Adam
36b74e03cf s3:registry: rename lib/util_reg_api.c to registry/reg_util_marshalling.c 2010-05-25 10:35:27 +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
f3053739b7 s3:registry: move prototype registry_create_admin_token() to new header reg_util_token.h
and use it only where necessary.
2010-05-25 10:35:26 +02:00
Michael Adam
e3f7fab668 s3:registry: move registry_create_admin_token() to new reg_util_token.c 2010-05-25 10:35:26 +02:00
Michael Adam
847a19df94 s3:registry: extract reg_eventlog prototypes to header of their own
and use them only where needed.
2010-05-25 10:35:26 +02:00
Michael Adam
5a92d88f38 s3:registry: extract reg_perfcount prototypes into header of their own.
And use them only when necessary.
2010-05-25 10:35:26 +02:00
Michael Adam
b94267aa3f s3:registry: extraxt the reg_dispatcher prototypes into their own header.
And use them only where needed.
2010-05-25 10:35:26 +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
70a81796fc s3:registry: fix regval_ctr_addvalue() to take data as uint8 *, not char *. 2010-05-25 10:35:25 +02:00
Michael Adam
f7f9ce30ca s3:registry: fix data_p arg of regval_compose to be 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
Michael Adam
a4efda959a s3:registry: extract the reg_util_legacy prototypes into their own header.
And use them only where necessary.
2010-05-25 10:35:24 +02:00
Michael Adam
14a025062e s3:registry: extract the reg_cachehook prototypes into their own header.
And use them only where necessary.
2010-05-25 10:35:24 +02:00
Michael Adam
d59d9dfb90 s3:registry: add C to reg_cachehook, confessing considerable changes in 2008 2010-05-25 10:35:23 +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
d4474ba470 s3-secdesc: use SD_REVISION from security.idl.
Guenther
2010-05-18 12:52:18 +02:00
Günther Deschner
7f6bb48bdf s3-secdesc: remove "typedef struct security_descriptor SEC_DESC".
Guenther
2010-05-18 12:30:12 +02:00
Günther Deschner
8951c8301a s3-secdesc: remove "typedef struct security_acl SEC_ACL".
Guenther
2010-05-18 12:30:12 +02:00
Günther Deschner
a8b01d1f3b s3-secdesc: remove "typedef struct security_ace SEC_ACE".
Guenther
2010-05-18 12:30:11 +02:00
Jelmer Vernooij
b8268cf7b0 s3: Remove use of iconv_convenience. 2010-05-18 11:45:31 +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
Günther Deschner
c6ebab846d s3: only include gen_ndr headers where needed.
This shrinks include/includes.h.gch by the size of 7 MB and reduces build time
as follows:

ccache build w/o patch
real    4m21.529s
ccache build with patch
real    3m6.402s

pch build w/o patch
real    4m26.318s
pch build with patch
real    3m6.932s

Guenther
2010-05-06 00:22:59 +02:00
Günther Deschner
7532640a74 s3-spoolss: publish "Monitor" in winreg for drivers.
Found by torture test.

Guenther
2010-04-27 17:56:48 +02:00
Günther Deschner
70ec7e0700 s3-spoolss: fix winreg attribute for storing datatype.
Found by torture test (and checked with w2k, w2k3 and w2k8).

Guenther
2010-04-27 17:56:47 +02:00
Günther Deschner
63b111bd32 s3: add iconv_convenience handle to pull/push sz helpers.
Guenther
2010-04-09 18:33:45 +02:00
Günther Deschner
84f3eeeca3 s3-registry: fix fill_in_printer_values() for datatype and printprocessor.
It is wise and good to enforce RAW and winprint, but we need to be consistent
with spoolss (and enforce it there).

Found by torture test.

Guenther
2010-04-08 16:21:40 +02:00
Günther Deschner
b4d09134fd s3-registry: make sure root has full registry access (in particular for make test).
Guenther
2010-03-16 15:13:52 +01:00
Michael Adam
9a825dc770 s3:registry-legacy: use talloc_stackframe() instead of NULL in regkey_open_internal()
Michael
2010-03-16 00:12:25 +01:00
Andrew Tridgell
7cff685c7e s3: convert registry and printing code to TYPESAFE_QSORT() 2010-02-14 18:44:21 +11:00
Volker Lendecke
613777e6dc s3: Remove unused comparison fn from "struct sorted_tree" 2010-02-13 13:26:11 +01:00
Volker Lendecke
2260732084 s3: SORTED_TREE -> struct sorted_tree 2010-02-13 13:26:11 +01: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
Andrew Tridgell
aa52a0925d s3-registry: update to use new DLIST macros
(cherry picked from commit 3437713ad7e5bccafde30553a8232119fd2a9eb9)
2010-02-10 15:42:00 -08:00
Volker Lendecke
1b4a3cc3f4 s3: Fix some DEBUG statements 2010-02-07 20:56:09 +01:00
Volker Lendecke
ff2d7d9b82 s3: Fix some comments 2010-02-07 12:29:25 +01:00
Volker Lendecke
5552b44960 s3: Fix some nonempty blank lines 2010-02-07 12:29:25 +01:00
Karolin Seeger
9ce9fdd9f4 s3/registry: Fix typo in comment.
Karolin
2010-01-25 19:50:21 +01:00
Volker Lendecke
9acbed13e8 s3: Fix some nonempty blank lines 2010-01-22 13:34:25 +01:00
Volker Lendecke
ee4a3606e6 s3: Fix a typo in a comment 2010-01-22 13:34:25 +01:00
Günther Deschner
35c50dcce3 s3-spoolss: use driver level info8 everywhere in spoolss server internally.
Guenther
2009-12-08 11:05:21 +01:00
Volker Lendecke
77fb5e19d8 s3: "regf_hbin_allocate" only looks at the size 2009-11-29 11:22:04 +01:00
Volker Lendecke
d5e5d09d73 s3: "read_block" only looks at the size 2009-11-29 11:22:04 +01:00
Volker Lendecke
13e70058c0 s3: "write_block" does not use the sbuf at all 2009-11-29 11:22:04 +01:00
Volker Lendecke
44ce5603dd s3: Pass the "fake dir create times" parameter to sys_*stat
Step 0 to restore it as a per-share paramter
2009-11-29 11:22:01 +01:00
Günther Deschner
ec56895bde s3-printing: use spoolss types and structs while getting and deleting drivers.
Guenther
2009-11-23 12:19:11 +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
e80891db41 s3-perfcount: more cleanup.
Guenther
2009-10-01 12:19:48 +02:00
Günther Deschner
25ab8828a1 s3-perfcount: only pass down prs_struct when really required.
Guenther
2009-10-01 12:19:48 +02:00
Günther Deschner
cd82d4ba56 s3: add perfcount idl and generated files.
Guenther
2009-10-01 12:19:43 +02:00
Günther Deschner
347eb9b970 s3-printing: more use of pull_reg_sz().
Guenther
2009-10-01 11:40:31 +02:00
Günther Deschner
ad836c4d48 s3-registry: use pull_reg_sz() where appropriate.
(and move away from rpcstr_pull and rpcstr_pull_talloc).

Guenther
2009-10-01 11:40:30 +02:00
Günther Deschner
05e8e90976 s3-registry: add regval_ctr_addvalue_multi_sz.
Guenther
2009-09-30 16:23:33 +02:00
Günther Deschner
26e798da19 s3: remove unused regval_convert_multi_sz().
Guenther
2009-09-30 00:34:01 +02:00
Günther Deschner
2ccf75d9a9 s3: remove unused regval_build_multi_sz().
Guenther
2009-09-30 00:33:54 +02:00
Günther Deschner
661342ee2f s3-registry: use pull_reg_multi_sz().
Guenther
2009-09-30 00:30:59 +02:00
Günther Deschner
2d6e5e160b s3: use push_reg_multi_sz().
Guenther
2009-09-30 00:30:25 +02: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
a50cc61ee6 s3-registry: add regval_ctr_addvalue_sz.
Guenther
2009-09-30 00:29:56 +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
92df5e4a02 s3:registry: add function regsubkey_ctr_reinit()
This reinitializes an already allocated regsubkey_ctr structure,
emptying out the subkey array and hash table.

Michael
2009-07-15 14:01:57 +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
Michael Adam
8c7b960493 s3:registry: use transaction wrapper in regdb_create_subkey()
Michael
2009-07-15 14:01:54 +02:00
Michael Adam
86d747e19f s3:registry: use transaction wrapper in regdb_store_keys_internal().
Michael
2009-07-15 14:01:53 +02:00
Michael Adam
f93c9e0d41 s3:registry: don't leak to talloc_stack in regdb_store_keys_internal2()
and catch one potential talloc failure.

Michael
2009-07-15 14:01:53 +02:00
Michael Adam
3eec829e2f s3:registry: unify exit logic and remove leaking to talloc_stack in regdb_store_keys_internal()
Michael
2009-07-15 14:01:53 +02:00
Michael Adam
14f593aa0f s3:registry: change regdb_store_keys_internal2() to return WERROR
instead of bool for better error propagation.

Michael
2009-07-15 14:01:52 +02:00
Michael Adam
1c65c98f33 s3:registry: refactor adding of builtin reg values out
into regdb_ctr_add_value(). For readability.

Michael
2009-07-15 14:01:52 +02:00
Michael Adam
cf4f808b8b s3:registry: use transaction wrapper in init_registry_data()
Michael
2009-07-15 14:01:51 +02:00
Michael Adam
e6340963cf s3:registry: add regdb_store_values_internal() that takes a db_context argument
Michael
2009-07-15 14:01:51 +02:00
Michael Adam
302265aae1 s3:registry: add a regdb_fetch_values_internal() that takes a db_context argument
Michael
2009-07-15 14:01:50 +02:00
Michael Adam
8a5b164b20 s3:registry: use transaction wrapper in init_registry_key().
Michael
2009-07-15 14:01:50 +02:00
Michael Adam
95ebf534d2 s3:registry: add db_context argument to init_registry_key_internal()
Michael
2009-07-15 14:01:49 +02:00
Michael Adam
a00109e1e6 s3:registry: panic upon error at transaction_cancel in create_sorted_subkeys
Michael
2009-07-15 14:01:49 +02:00
Michael Adam
3189828087 s3:registry: fix a comment in create_sorted_subkeys()
Michael
2009-07-15 14:01:48 +02:00
Michael Adam
4c366a0946 s3:registry: don't loop transaction_commit in create_sorted_subkeys() upon error
This would try to commit a higher level transaction upon commit-error.

Michael
2009-07-15 14:01:48 +02:00
Michael Adam
6cb14409af s3:registry: in regdb_delete_subkey(), don't use the transaction wrappers.
This way, the db handle gets used explicitly and the core of the
function can be abstracted.

Michael
2009-07-15 14:01:47 +02:00
Michael Adam
4eeacd6ef0 s3:registry: in regdb_delete_subkey(), panic if transaction_cancel fails
Michael
2009-07-15 14:01:47 +02:00
Michael Adam
355892c296 s3:registry: panic upon failed transaction_cancel in regdb_create_subkey()
Michael
2009-07-15 14:01:47 +02:00
Michael Adam
3409a44da2 s3:registry: don't use exported transaction wrappers in regdb_create_subkey()
So that the regdb handle is again explicit and the core of the
function can be abstracted.

Michael
2009-07-15 14:01:46 +02:00
Michael Adam
1dfaa371fa s3:registry: create regdb_store_keys_internal() with db_context argument
and let exported regdb_store_keys() just call regdb_store_keys_internal()
with regdb as an argument. Internally, in reg_backend_db.c, always use the
_internal version.

Michael
2009-07-15 14:01:46 +02:00
Michael Adam
eb1958ca3d s3:registry: rename regdb_store_keys_internal() to regdb_store_keys_internal2()
Michael
2009-07-15 14:01:45 +02:00
Michael Adam
589bacfbdb s3:registry: create regdb_fetch_keys_internal() with db_context argument
and let exported regdb_fetch_keys() just call regdb_fetch_keys_internal()
with regdb as an argument. Internally, in reg_backend_db.c, always use the
_internal version.

Michael
2009-07-15 14:01:45 +02:00
Michael Adam
db4f797e35 s3:registry: add db_context argument to scan_parent_subkeys()
Michael
2009-07-15 14:01:44 +02:00
Michael Adam
c01d955ac0 s3:registry: add db_context argument to regdb_fetch_key_internal()
Michael
2009-07-15 14:01:44 +02:00
Michael Adam
a18a10c07a s3:registry: add db_context argument to regdb_store_keys_internal()
Michael
2009-07-15 14:01:43 +02:00
Michael Adam
528bf38875 s3:registry: add db_context argument to regdb_delete_key_lists()
Michael
2009-07-15 14:01:43 +02:00
Michael Adam
86e927cb05 s3:registry: add db_context argument to regdb_delete_subkeylist()
Michael
2009-07-15 14:01:42 +02:00
Michael Adam
bd983dba6b s3:registry: add db_context argument to regdb_delete_secdesc()
Michael
2009-07-15 14:01:42 +02:00
Michael Adam
ec6b6727d8 s3:registry: add db_context argument to regdb_delete_values()
Michael
2009-07-15 14:01:41 +02:00
Michael Adam
2b380c73a4 s3:registry: add db_context argument to regdb_delete_key_with_prefix()
Michael
2009-07-15 14:01:41 +02:00
Michael Adam
d554c0d7a9 s3:registry: don't store differently cased entries for the same keys.
This happened for instance during registry initialization, when
entries for HKLM\Software and HKLM\SOFTWARE were created.
Searching these entries was case insensitive though.
But the entries ended up in the subkey-lists anyways.

This is solved by making the subkeys_hash in the regsubkey_container
structs case insensitive (using the new _bystring_upper() wrappers).

Michael
2009-07-15 14:01:40 +02:00
Günther Deschner
9f15ef11bd s3-account_policy: add pdb_policy_type enum.
Guenther
2009-07-14 12:12:18 +02:00
Volker Lendecke
49ca690b4b Introduce "struct stat_ex" as a replacement for SMB_STRUCT_STAT
This patch introduces

struct stat_ex {
        dev_t           st_ex_dev;
        ino_t           st_ex_ino;
        mode_t          st_ex_mode;
        nlink_t         st_ex_nlink;
        uid_t           st_ex_uid;
        gid_t           st_ex_gid;
        dev_t           st_ex_rdev;
        off_t           st_ex_size;
        struct timespec st_ex_atime;
        struct timespec st_ex_mtime;
        struct timespec st_ex_ctime;
        struct timespec st_ex_btime; /* birthtime */
        blksize_t       st_ex_blksize;
        blkcnt_t        st_ex_blocks;
};
typedef struct stat_ex SMB_STRUCT_STAT;

It is really large because due to the friendly libc headers playing macro
tricks with fields like st_ino, so I renamed them to st_ex_xxx.

Why this change? To support birthtime, we already have quite a few #ifdef's at
places where it does not really belong. With a stat struct that we control, we
can consolidate the nanosecond timestamps and the birthtime deep in the VFS
stat calls.

At this moment it is triggered by a request to support the birthtime field for
GPFS. GPFS does not extend the system level struct stat, but instead has a
separate call that gets us the additional information beyond posix. Without
being able to do that within the VFS stat calls, that support would have to be
scattered around the main smbd code.

It will very likely break all the onefs modules, but I think the changes will
be reasonably easy to do.
2009-05-26 17:48:23 +02:00
Günther Deschner
7ac1ae8d1c s3-printing: fix debug statement in virtual registry layer
(key_driver_fetch_keys).

Guenther
2009-05-06 10:20:52 +02:00
Michael Adam
e935d8616b s3:registry: replace typedef REGISTRY_OPS by struct registry_ops
Michael
2009-04-27 11:21:04 +02:00
Michael Adam
c9b1734419 s3:registry replace typedef REGISTRY_HOOK by struct registry_hook.
Michael
2009-04-27 11:21:04 +02:00
Michael Adam
cec8428747 s3:registry: replace typedef REGISTRY_KEY by struct registry_key_handle
Michael
2009-04-27 11:21:04 +02:00
Michael Adam
8185d31fb0 s3:registry: replace typedef REGISTRY_VALUE by struct regval_blob
Michael
2009-04-27 11:21:03 +02:00
Michael Adam
221151a2a2 s3:registry: replace typedef REGVAL_CTR by struct regval_ctr.
This paves the way for hiding the typedef and the implementation
from the surface.

Michael
2009-04-27 11:21:02 +02:00
Jelmer Vernooij
f4195183a4 s3: Use common security_descriptor_equal(). 2009-04-21 18:17:40 +02:00
Günther Deschner
38264bb3b8 s3-secdesc: move all winreg access bits to IDL.
Guenther
2009-04-21 12:42:51 +02:00
Michael Adam
8c023fea86 s3:registry: Prevent creation of keys containing the '/' character.
This creates a broken registry that can only be fixed with
tdbtool, since the '/' sign is used as a key separator after
normalization at a lower level.

This makes e.g. "net conf setparm abc/def comment xyz" fail with
WERR_INVALID_PARAM, which is much more desirable than a broken
registry.tdb.

Michael
2009-04-17 11:46:14 +02:00
Günther Deschner
8000479d18 s3-registry: remove last sec_io_desc() caller.
This is a temporary solution while waiting for the regf merge from s4.

Guenther
2009-03-25 22:50:40 +01:00
Günther Deschner
6549408a4d s3-spoolss: rename construct_dev_mode_new to construct_dev_mode.
Guenther
2009-03-17 18:39:43 +01:00
Günther Deschner
827ba0a64b s3-spoolss/registry: use libndr to push a spoolss_DeviceMode in fill_in_printer_values().
Guenther
2009-03-17 18:39:36 +01:00
Günther Deschner
96998f0358 s3-spoolss/registry: use marshall_sec_desc in fill_in_printer_values().
Guenther
2009-03-17 18:39:29 +01:00
Günther Deschner
d759f9961a s3-spoolss: move SYSTEMTIME parsing to a more generic place, as suggested.
Guenther
2009-03-17 18:39:23 +01:00
Volker Lendecke
62db0ea0cf Use talloc_tos() in regkey_access_check() 2009-02-27 11:20:17 +01:00
Michael Adam
2f4b821320 s3:registry: tighten the subkey loop in reg_deletekey_recursive()
and loop from the end to the beginning so that we don't need
to rehash the subkeys...

This gets "net conf drop" with 2000 shares down to 14 seconds
on my box.

Michael
2009-02-26 13:22:56 +01:00
Michael Adam
270ab5544b s3:registry: use delete_reg_subkey() in reg_deletekey()
This further speeds up net conf drop.

Michael
2009-02-26 13:22:55 +01:00
Michael Adam
ae8c584218 s3:registry: implement delete_subkey in the smbconf backend
delegating the call to the db backend

Michael
2009-02-26 13:22:55 +01:00
Michael Adam
b5fbe06d74 s3:registry: implement delete_subkey in the db backend
Michael
2009-02-26 13:22:55 +01:00
Michael Adam
97508eefb7 s3:registry: add a delete_subkey method to the backend ops.
This is to provide a more atomic means of deleting a subkey of a key.

Michael
2009-02-26 13:22:55 +01:00
Michael Adam
61bdfd09ed s3:registry: refactor deletion of various subkey lists out of regdb_store_keys()
Micheal
2009-02-26 13:22:55 +01:00
Michael Adam
13ceeeedbc s3:registry: streamline and cleanup regdb_set_secdesc() somewhat.
Michael
2009-02-26 13:22:55 +01:00
Michael Adam
2fb944bde1 s3:registry: refactor deletion of value/secdesc/subkey list tdb records out
of regdb_store_values().

Michael
2009-02-26 13:22:55 +01:00
Michael Adam
741e902888 s3:registry: streamline reg_deletekey() somewhat.
use W_ERROR_... macros and separate assignments from checks

Michael
2009-02-26 13:22:55 +01:00
Michael Adam
4b444e4ac4 s3:registry: use create_reg_subkey() in reg_createkey().
Instead of calling store_reg_keys()

On my box, importing 2000 shares into an empty smbconf key
now takes some 32 seconds.

Michael
2009-02-26 13:22:55 +01:00
Michael Adam
d73dafb5fe s3:registry: implement create_subkey for the smbconf backend
by delegating to the db backend

Michael
2009-02-26 13:22:54 +01:00
Michael Adam
20e40d3b7d s3:registry: implement create_subkey for the db backend.
Michael
2009-02-26 13:22:54 +01:00
Michael Adam
602bfeb360 s3:registry: add a create_subkey method to the backend ops.
This is to provide a more atomic means of adding a subkey of a key.

Michael
2009-02-26 13:22:54 +01:00
Michael Adam
0b22f8b99c s3:registry: hash the list of subkeys in the regsubkey_ctr
This removes many loops over all the arrays
(from regsubkey_ctr_key_exists) and thus
reduces "net conf drop" from 1m55 to 48seconds
and "net conf import" from 1m55 to 58 seconds
for 2000 shares on my box.

Michael
2009-02-26 13:22:54 +01:00
Michael Adam
149d94dd8f s3:registry: remove definition of regsubkey_ctr from the surface.
All access is now through accessor functions in reg_objects.c
This allows for performance tuning under the hood in the next step.

Michael
2009-02-26 13:22:53 +01:00
Michael Adam
1ce0035abb s3:registry: use regsubkey_ctr_init() in reg_eventlog.c
Michael
2009-02-26 13:22:53 +01:00
Michael Adam
69be6f5c1d s3:registry: use regsubkey_ctr_get_seqnum() in reg_backend_db.c
Michael
2009-02-26 13:22:53 +01:00
Michael Adam
8a74b535c8 s3:registry: use regsubkey_ctr_set_seqnum() in reg_backend_db.c
Michael
2009-02-26 13:22:53 +01:00
Michael Adam
3c15d053f5 s3:registry: use regsubkey_ctr_init() in reg_backend_db.c
instead of using talloc directly.

Michael
2009-02-26 13:22:53 +01:00
Michael Adam
ea2b74090d s3:registry: use regsubkey_ctr_init() in reg_api.c
instead of using talloc on struct regsubkey_ctr.

Michael
2009-02-26 13:22:52 +01:00
Michael Adam
cd8bfd3a84 s3:registry: add regsubkey_ctr_get_seqnum() to hide implementation
Michael
2009-02-26 13:22:52 +01:00
Michael Adam
63ed47c9e4 s3:registry: add regsubkey_ctr_set_seqnum to hide implementation from caller.
Michael
2009-02-26 13:22:52 +01:00
Michael Adam
763f41f39c s3:registry: add a regsubkey_ctr_init function for allocating a regsubkey_ctr
Michael
2009-02-26 13:22:51 +01:00
Michael Adam
060abd7e38 s3:registry: fix a comment
Michael
2009-02-26 13:22:51 +01:00
Michael Adam
63b576424d s3:registry: don't directly access key->subkeys->subkeys[] in reg_backend_db.c
Use the reg_objects accessor regsubkey_ctr_specific_key() instead.

Michael
2009-02-26 13:22:51 +01:00
Michael Adam
8c1e4034fe s3:registry: don't directly access key->subkeys->subkeys[] in reg_api.c
Use the reg_objects accessor regsubkey_ctr_specific_key() instead.

Michael
2009-02-26 13:22:51 +01:00
Michael Adam
62b53507d2 s3:registry: don't directly access key->subkeys->num_subkeys in reg_backend_db.
Use the reg_objects api instead.

Michael
2009-02-26 13:22:51 +01:00
Michael Adam
e05b7a8627 s3:registry: don't directly access key->subkeys->num_subkeys in reg_api.c
Use the reg_objects api instead.

Michael
2009-02-26 13:22:51 +01:00
Michael Adam
58fc61217d s3:registry: replace typedef "REGSUBKEY_CTR" by "struct regsubkey_ctr"
This paves the way for hiding the typedef and the implementation from the
surface.

Michael
2009-02-26 13:22:51 +01:00
Michael Adam
b56f449d6b Revert "Fix a O(n^2) algorithm in regdb_fetch_keys()"
This reverts commit a13f065bad.

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
2009-02-26 13:22:51 +01:00
Michael Adam
9f97674ef7 s3:registry: wrap deletekey_recursive in one big transaction.
This speeds up "net conf drop" with 2000 shares on my box from
4m40s to 1m50s, leaving virtually only cpu load.

Michael
2009-02-26 11:05:23 +01:00
Michael Adam
ba0e944c46 s3:registry: provide transaction_start|commit|cancel fns for the registry tdb
Michael
2009-02-26 11:05:22 +01:00
Volker Lendecke
170830c008 Wrap creating the sorted subkey cache in a transaction
Signed-off-by: Michael Adam <obnox@samba.org>
2009-02-26 11:05:22 +01:00
Volker Lendecke
5c91cdcc47 Add a comment describing the sorted subkeys
Signed-off-by: Michael Adam <obnox@samba.org>
2009-02-26 11:05:22 +01:00
Volker Lendecke
1b1aac412c Add sorted subkey cache
On my box this gets net conf list for 1000 records down to .1 seconds

Signed-off-by: Michael Adam <obnox@samba.org>
2009-02-26 11:05:22 +01:00
Jeremy Allison
0b62cdbed0 Quieten down a boatload of shadowed variable warnings on Solaris.
Makes real problems easier to spot.
Jeremy.
2009-02-23 15:03:29 -08:00
Jeremy Allison
2ca48d3740 Fix printf type warning.
Jeremy.
2009-02-19 13:11:36 -08:00
Volker Lendecke
a13f065bad Fix a O(n^2) algorithm in regdb_fetch_keys() 2009-02-19 20:06:29 +01:00
Volker Lendecke
d0ee90ace9 Fix a buffer handling bug when adding lots of registry keys
This is *ancient*... From 2002, and nobody noticed until someone added lots of
shares using net conf... :-)
2009-02-19 14:26:50 +01:00
Volker Lendecke
b222de4eb3 Remove a pointless NULL check 2009-02-14 22:01:03 +01:00
Volker Lendecke
4e34c0ceca Fix some nonempty blank lines 2009-02-14 22:01:03 +01:00
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
Michael Adam
3f01e05a77 registry: change registry_init_basic() to return WERROR instead of bool
Michael
(This used to be commit 6a31e659cb)
2008-04-13 15:33:48 +02:00
Michael Adam
80b6d7b1d6 registry: change reghook_cache_add() to return WERROR instead of bool
Michael
(This used to be commit e65a999989)
2008-04-13 15:33:48 +02:00
Michael Adam
5166d562ea registry cachehook: change helper function keyname_to_path() to return WERROR.
Michael
(This used to be commit 78bb005ee4)
2008-04-13 15:33:47 +02:00
Michael Adam
01f4bd4f4d adt_tree: change pathtree_add to return WERR instead of bool.
Michael
(This used to be commit da45fb92f6)
2008-04-13 15:33:47 +02:00
Michael Adam
84c5da2ff4 registry cachehook: revert logic to make fast path more obvious and reduce indent.
Michael
(This used to be commit e97d558c56)
2008-04-13 15:33:47 +02:00
Michael Adam
4b4306eb4a registry: change reghook_cache_init() to return WERROR and use it in the callers.
Michael
(This used to be commit 2f4ca62dce)
2008-04-13 15:33:47 +02:00
Michael Adam
2ffe46e24d registry cachehook: compare cache_tree against NULL, not 0.
Michael
(This used to be commit 4bfc0be55f)
2008-04-13 15:33:47 +02:00
Michael Adam
26a5652f6d registry: change init_registry_key() and init_registry_data() to return WERR
Michael
(This used to be commit e0718f04a7)
2008-04-13 15:33:47 +02:00
Michael Adam
cb624c4057 registry: unify debug output in the registry init functions.
Michael
(This used to be commit 4fd9b45ffc)
2008-04-13 15:33:47 +02:00
Michael Adam
6b85938f27 registry: change regdb_init() to return WERROR instead of bool.
Michael
(This used to be commit c312852abc)
2008-04-13 15:33:47 +02:00
Michael Adam
bcb19766d6 registry: make registry_init_smbconf() hook the registry ops onto given key.
This still defaults to HKLM\Software\Samba\smbconf, but is interchangeable now.
This allows us to open the libsmbconf registry backend on different registry keys.

Michael
(This used to be commit 8fe1a2f567)
2008-04-13 15:33:47 +02:00
Michael Adam
b5a75ec402 registry cachehook: add talloc failed debug messages.
Michael
(This used to be commit 9841ee7fd4)
2008-04-13 01:47:16 +02:00
Michael Adam
a721f0a729 registry cachehook: eliminate a couple trailing spaces (empty lines).
Michael
(This used to be commit c9f01aee37)
2008-04-13 01:44:57 +02:00
Michael Adam
0fa8845fa0 registry cachehook: fix memleak (to talloc_tos()): free key at the end.
Michael
(This used to be commit 3f5955d361)
2008-04-13 01:43:43 +02:00
Michael Adam
227904434a registry cachehook: refactor normalization of keyname out.
Michael
(This used to be commit acb9c98dff)
2008-04-13 01:43:42 +02:00
Michael Adam
bbca983507 registry: adapt copied function header comments.
Michael
(This used to be commit 2e762be0db)
2008-04-13 01:43:42 +02:00
Michael Adam
413c2e9b0a registry: remove the REGISTRY_HOOKS layer from the reghook cache.
There is no need to save the keyname again, we only need to
get the REGISTRY_OPS out of the pathtree.

Furthermore, this makes life easier, since we can now pass
in keynames as temporarily allocated strings.

Michael
(This used to be commit 2f9ee2f782)
2008-04-13 01:43:42 +02:00
Michael Adam
c890aef164 registry: move normalize_dbkey() from lib/util_reg.c to registry/reg_util.c
This function is only used inside registry code.

Michael
(This used to be commit 48745e3fbd)
2008-04-12 02:41:20 +02:00
Michael Adam
2830626877 registry: remove parameter checks from smbconf backend: they are in libsmbconf.
Michael
(This used to be commit 118cf38133)
2008-04-03 15:43:04 +02:00
Volker Lendecke
16198dc51e Convert dbwrap_trans_delete to NTSTATUS
Signed-off-by: Stefan Metzmacher <metze@samba.org>
(This used to be commit dead193f46)
2008-04-01 14:04:22 +02:00
Volker Lendecke
fcdfff1cc8 Convert dbwrap_trans_store to NTSTATUS
Signed-off-by: Stefan Metzmacher <metze@samba.org>
(This used to be commit 5f4de856af)
2008-04-01 14:04:22 +02:00
Stefan Metzmacher
b8dcade819 regdb: let regdb_fetch_keys() handle NULL and failure cases in the same way and return -1
metze
(This used to be commit 983fd58805)
2008-04-01 14:04:20 +02:00
Stefan Metzmacher
b55942a763 regdb: get the seqnum before the record, to not miss something
metze
(This used to be commit c214107bd9)
2008-04-01 14:04:20 +02:00
Stefan Metzmacher
2b21b02c6a regdb: use dbwrap->fetch() instead of fetch_locked() for readonly access"
This is the fixed version of commit 5c28c74aa0.

metze
(This used to be commit 924acd7f69)
2008-04-01 14:04:20 +02:00
Michael Adam
0bf8ba9f26 registry: reg_deletevalue should return error, when the value does not exist.
Michael
(This used to be commit 04b48984bb)
2008-03-31 17:22:02 +02:00
Michael Adam
ce0bbc82fd Revert "regdb: use dbwrap->fetch() instead of fetch_locked() for readonly access"
This reverts commit 4e2be189e9.

Metze, this broke the registry (reg_api layer), but I don't yet know
exactly how and why. By the way, the locks there had the purpose of
fetching the seqnum that really matches the data.

This needs some more thought / debugging. But I wanted to have
the tree in a working state again.

Michael
(This used to be commit 5c28c74aa0)
2008-03-30 03:05:34 +02:00
Michael Adam
f8fdc36fdb regdb: use == 0 (instead of != -1) as indicator for success of dbwrap_trans_[delete|store]()
Michael
(This used to be commit 7dcd0c1e53)
2008-03-27 18:14:57 +01:00
Michael Adam
c86d10ae83 regdb: use != 0 instead of == -1 check for transaction_[commit|cancel]
Michael
(This used to be commit b6ceeaabae)
2008-03-27 18:14:57 +01:00
Stefan Metzmacher
5439f5f710 regdb: use db_open_trans()
metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
(This used to be commit a77b5b91dd)
2008-03-27 18:14:56 +01:00
Stefan Metzmacher
618f22409a regdb: use regdb->transaction_start(regdb) != 0 consistent
metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
(This used to be commit 093c3bced9)
2008-03-27 18:14:56 +01:00
Stefan Metzmacher
2a95f3f874 regdb: use dbwrap->fetch() instead of fetch_locked() for readonly access
metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
(This used to be commit 4e2be189e9)
2008-03-27 18:14:56 +01:00
Stefan Metzmacher
d9de61341c regdb: use dbwrap_trans_store_int32
metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
(This used to be commit 9620696083)
2008-03-27 18:14:56 +01:00
Volker Lendecke
fac2d8546b Fix Coverity ID 471
(This used to be commit d3b6df67fe)
2008-03-23 18:28:24 +01:00
Volker Lendecke
2e2f1d57b1 Fix Coverity ID 477
(This used to be commit f17b1b0fc6)
2008-03-23 18:28:24 +01:00
Volker Lendecke
988cffe9ca Fix Coverity ID 478
(This used to be commit 5f77938dc4)
2008-03-23 18:28:23 +01:00
Michael Adam
178c430821 registry: add reg_init_basic() - init registry with only the db backend.
Michael
(This used to be commit 1831042bdc)
2008-03-22 02:05:53 +01:00
Michael Adam
4825cef8bc registry: close registry in exit path in registry_init_smbconf().
Michael
(This used to be commit 5aa3141bff)
2008-03-22 01:54:18 +01:00
Michael Adam
b8a949b566 registry: some whitespace cleanup in init_registry().
Michael
(This used to be commit f33095e44b)
2008-03-22 01:53:44 +01:00
Michael Adam
88d46f4ea4 registry: remove unneeded talloc stackframe variable.
Michael
(This used to be commit 81993db828)
2008-03-22 01:52:03 +01:00