1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-28 17:47:29 +03:00

58 Commits

Author SHA1 Message Date
Michael Adam
e935d8616b s3:registry: replace typedef REGISTRY_OPS by struct registry_ops
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
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
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
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
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
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
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
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
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
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
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
Michael Adam
282c9ff8ae registry: honour the WERROR that regsubkey_ctr_addkey gives us in reg_load_tree.
Michael
(This used to be commit c2d9baa29edb2356f32ca19aea828184e9ac7b93)
2008-04-13 15:45:33 +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 2f9ee2f782c77ed99669af5ac2ba40cb0978f0da)
2008-04-13 01:43:42 +02:00
Michael Adam
0bf8ba9f26 registry: reg_deletevalue should return error, when the value does not exist.
Michael
(This used to be commit 04b48984bbf84c55bb41a74a11cbcc7358377fed)
2008-03-31 17:22:02 +02:00
Michael Adam
bb0bf5c902 Remove (now) unused function make_default_reg_sd().
Michael
(This used to be commit 2c66413de284fb4cb9dc7def0ee4eb07b986c9ca)
2008-02-18 17:41:21 +01:00
Michael Adam
7ba906634b Grab secdesc for key from registry for reg_savekey()
instead of construction another default secdesc.

Michael
(This used to be commit 194e00822c349aa0c11641672b35b0e0c021da08)
2008-02-18 17:41:21 +01:00
Michael Adam
abdedc7940 Reformat copied reg_savekey/reg_restorekey code.
Sticking to coding rules.

Michael
(This used to be commit 2c54ef2d07ab440f1c163b666caedcb9c061543b)
2008-02-15 17:32:32 +01:00
Michael Adam
355faf2e3d Move the implementation of _winreg_RestoreKey to reg_api.c
This removes the internals of reg_api from srv_winreg_nt.c entirely,
only reg_api is used there, now. This enlarges the dependencies of
reg_api somewhat now since it adds regfio. But this can be separated
out later. The current goal is to achieve a complete use of reg_api.

Michael
(This used to be commit 2222acbac955cd6d5bd48d1ce5cf4b4c7c067093)
2008-02-15 16:23:10 +01:00
Michael Adam
c720a0e228 Move implementation of _winreg_SaveKey() from srv_winreg_nt.c to reg_api.c
This gives a new function reg_savekey() and hides a piece of
the backend code from srv_winreg_nt.c. One step towards using
reg_api throughout samba code.

Michael
(This used to be commit bf6340d00dd631fdc909c20632250977a3a112c4)
2008-02-15 16:23:10 +01:00
Michael Adam
8fffca2e95 Adapt a comment to current circumstances.
Michael
(This used to be commit 84ec89ab9f7837e8a9830a0236fddc2d00d1c0d6)
2008-02-15 16:23:10 +01:00
Volker Lendecke
33f3eeaa00 Fix some "set but never used" warnings
(This used to be commit 4a6dadc5178f4861e9c032321939db3b639734b5)
2008-01-20 17:44:40 +01:00
Michael Adam
1ea809383e Fix typo in debug message.
Michael
(This used to be commit d7a8d7ffbd724a59aa3fc4bdeca6be5d5a0e7258)
2008-01-18 09:40:57 +01:00
Michael Adam
32a8e74078 Add a reg_getversion() function to reg_api and use it in srv_winreg_nt.c.
Michael
(This used to be commit 903223b160eef6ba6ff19a8bfef19e5fe7008631)
2008-01-17 16:25:11 +01:00
Michael Adam
7f8e4bc68e Add my (C) to reg_api.c - Michael
(This used to be commit 81d6a1fbed5e685376637af8e8bcd70ab2701aa0)
2008-01-17 16:25:11 +01:00
Michael Adam
138f7ec451 Add a comment header comparing winreg.idl and reg_api.c.
Michael
(This used to be commit 15163926a8ae1116a0f0986f35fc16bcf9ce6ce2)
2008-01-17 16:25:11 +01:00
Michael Adam
da4ecfc0fa Add reg_api functions reg_getkeysecurity() and reg_setkeysecurity().
These are wrappers around the lower level functions regkey_get_secdesc()
and regkey_set_secdesc(). Next step towards hiding reg_frontend from
the surface.

Michael
(This used to be commit 7251a24b489a008243091279d96157cacec35b62)
2008-01-17 16:25:11 +01:00
Michael Adam
fcb47f5ea9 Comment out unused reg_create_path() and reg_delete_path().
These functions are unused. Comment them out for now.

Michael
(This used to be commit 0cb8399d7c6f228b38c918f8c6c77fd31c346f89)
2008-01-17 16:25:11 +01:00
Michael Adam
99b195a6aa Move reg_create_path() and reg_delete_path() to reg_api.c
Michael
(This used to be commit 4d82cc586c089a16d1d2db214f5e198062890b58)
2008-01-17 16:25:11 +01:00
Michael Adam
b6eaf05479 Add some sectioning comments to reg_api.c
Michael
(This used to be commit d3c9c273740b42e5da101f53d4df3aee70cdacf7)
2008-01-17 16:25:11 +01:00
Michael Adam
1a15320dcd Make utility function reg_deletekey_recursive_internal() static.
Michael
(This used to be commit 3e661273229bcf021276cc0b71350acf8d8fed7c)
2008-01-17 16:25:11 +01:00
Michael Adam
982c71fcd2 Use the proper boolean functions.
Michael
(This used to be commit beaa83f32bd367f1b6ec72ef80a8a258d662f523)
2008-01-15 14:56:00 +01:00
Michael Adam
8a01076334 Remove some trailing spaces.
Michael
(This used to be commit 1941c365b50d48fc90f0f98059b8cccf6c7a1a06)
2008-01-15 14:55:04 +01:00
Michael Adam
d35bda0ffd Add detection for need of update to the registry db.
This only detects if the tdb sequence number has changed
since the data has last been read.

Michael
(This used to be commit 3f081ebeadf30a7943723703ecae479e0412c60c)
2008-01-14 19:38:01 +01:00
Michael Adam
feb4d82724 Fix a permissions error in reg_deletekey_recursive().
Michael
(This used to be commit 4a56d3d7075bd8bbd5e139c9433789ab29f6a70e)
2007-12-31 03:25:54 +01:00
Volker Lendecke
7cbdb48475 Remove tiny code duplication
ndr_size_security_descriptor does the same as sec_desc_size
(This used to be commit bc3bd7a8e7c6e9e27acb195c86abb92c0f53112f)
2007-12-29 23:13:26 +01:00
Günther Deschner
99d9993fdb When deleting a key from the registry make sure the non-default
security descriptor gets deleted as well.

Guenther
(This used to be commit d140d68537225b6a6a99be3d9b09354e3f6ad8c9)
2007-11-06 00:50:47 +01:00
Jeremy Allison
30191d1a57 RIP BOOL. Convert BOOL -> bool. I found a few interesting
bugs in various places whilst doing this (places that assumed
BOOL == int). I also need to fix the Samba4 pidl generation
(next checkin).
Jeremy.
(This used to be commit f35a266b3cbb3e5fa6a86be60f34fe340a3ca71f)
2007-10-18 17:40:25 -07:00
Günther Deschner
6334c7cc5f r25417: Use DBGC_REGISTRY class.
Guenther
(This used to be commit 43ca04918a5a1b2379083dc624b346ceb8476a38)
2007-10-10 12:31:04 -05:00
Günther Deschner
4d7a1c3bcf r25370: Allow to delete registry keys recursively without deleting the final key.
Guenther
(This used to be commit e9922cd8aeb70aebb162ad598fda76ad69226b94)
2007-10-10 12:31:01 -05:00
Günther Deschner
873bc06d95 r24418: Adding reg_deleteallvalues().
Guenther
(This used to be commit f7457c6173107f1730ae2e31c5377df3dbd2454e)
2007-10-10 12:29:44 -05:00
Andrew Tridgell
153cfb9c83 r23801: The FSF has moved around a lot. This fixes their Mass Ave address.
(This used to be commit 87c91e4362c51819032bfbebbb273c52e203b227)
2007-10-10 12:28:27 -05:00
Jeremy Allison
d824b98f80 r23779: Change from v2 or later to v3 or later.
Jeremy.
(This used to be commit 407e6e695b8366369b7c76af1ff76869b45347b3)
2007-10-10 12:28:20 -05:00
Michael Adam
3618a07708 r23584: Use a while loop instead of a for loop without increment... :-)
Michael
(This used to be commit fb4ade3b4d203eead7798b8d98938cff2abb9c29)
2007-10-10 12:23:32 -05:00
Michael Adam
394291281a r23583: Add a utility function to recursively delete a Registry
key with all its subkeys. (reg_deletekey will refuse to
delete a key with subkeys with WERR_ACCESS_DENIED).

Michael
(This used to be commit 41c3ff6e277601a9c7ac29009fd89ff9c961ca46)
2007-10-10 12:23:32 -05:00