s3:registry: add a delete_subkey method to the backend ops.
authorMichael Adam <obnox@samba.org>
Thu, 26 Feb 2009 01:54:50 +0000 (02:54 +0100)
committerMichael Adam <obnox@samba.org>
Thu, 26 Feb 2009 12:22:55 +0000 (13:22 +0100)
This is to provide a more atomic means of deleting a subkey of a key.

Michael

source3/include/proto.h
source3/include/reg_objects.h
source3/registry/reg_dispatcher.c

index a4187dc2c6cd7405d5311fb14bce3c45da1020de..27b4ce9604c713825f85982e4aeabf933ba46628 100644 (file)
@@ -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,
index 29cd4c563d92cd6c71280f49dab639c4b46e8152..a03ac1bff461f0e4b45f4b42ee75ca50dbd2233a 100644 (file)
@@ -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,
index 555e821bf1a33a3c71ed416d23a0e0336f9efaa6..106d38e9a537d0088c662aa356d9676b8826714b 100644 (file)
@@ -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