1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-04 05:18:06 +03:00
Commit Graph

512 Commits

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