diff options
author | Michael Adam <obnox@samba.org> | 2009-02-26 02:54:50 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2009-02-26 13:22:55 +0100 |
commit | 97508eefb78598fcf15c07b4c0cb92dbf21c30f7 (patch) | |
tree | 1dbe3cfc92c06c47135900debb2b0bafb22b27dd /source3 | |
parent | 61bdfd09edbdea38486bbca3c148d224c7d523fc (diff) | |
download | samba-97508eefb78598fcf15c07b4c0cb92dbf21c30f7.tar.gz samba-97508eefb78598fcf15c07b4c0cb92dbf21c30f7.tar.bz2 samba-97508eefb78598fcf15c07b4c0cb92dbf21c30f7.zip |
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
Diffstat (limited to 'source3')
-rw-r--r-- | source3/include/proto.h | 1 | ||||
-rw-r--r-- | source3/include/reg_objects.h | 1 | ||||
-rw-r--r-- | source3/registry/reg_dispatcher.c | 9 |
3 files changed, 11 insertions, 0 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index a4187dc2c6..27b4ce9604 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -5096,6 +5096,7 @@ void reghook_dump_cache( int debuglevel ); bool store_reg_keys( REGISTRY_KEY *key, struct regsubkey_ctr *subkeys ); bool store_reg_values( REGISTRY_KEY *key, REGVAL_CTR *val ); WERROR create_reg_subkey(REGISTRY_KEY *key, const char *subkey); +WERROR delete_reg_subkey(REGISTRY_KEY *key, const char *subkey); int fetch_reg_keys( REGISTRY_KEY *key, struct regsubkey_ctr *subkey_ctr ); int fetch_reg_values( REGISTRY_KEY *key, REGVAL_CTR *val ); bool regkey_access_check( REGISTRY_KEY *key, uint32 requested, uint32 *granted, diff --git a/source3/include/reg_objects.h b/source3/include/reg_objects.h index 29cd4c563d..a03ac1bff4 100644 --- a/source3/include/reg_objects.h +++ b/source3/include/reg_objects.h @@ -132,6 +132,7 @@ typedef struct { int (*fetch_values) ( const char *key, REGVAL_CTR *val ); bool (*store_subkeys)( const char *key, struct regsubkey_ctr *subkeys ); WERROR (*create_subkey)(const char *key, const char *subkey); + WERROR (*delete_subkey)(const char *key, const char *subkey); bool (*store_values)( const char *key, REGVAL_CTR *val ); bool (*reg_access_check)( const char *keyname, uint32 requested, uint32 *granted, diff --git a/source3/registry/reg_dispatcher.c b/source3/registry/reg_dispatcher.c index 555e821bf1..106d38e9a5 100644 --- a/source3/registry/reg_dispatcher.c +++ b/source3/registry/reg_dispatcher.c @@ -109,6 +109,15 @@ WERROR create_reg_subkey(REGISTRY_KEY *key, const char *subkey) return WERR_NOT_SUPPORTED; } +WERROR delete_reg_subkey(REGISTRY_KEY *key, const char *subkey) +{ + if (key->ops && key->ops->delete_subkey) { + return key->ops->delete_subkey(key->name, subkey); + } + + return WERR_NOT_SUPPORTED; +} + /*********************************************************************** High level wrapper function for enumerating registry subkeys Initialize the TALLOC_CTX if necessary |