1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00
Commit Graph

648 Commits

Author SHA1 Message Date
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