[SCM] Samba Shared Repository - branch master updated

Michael Adam obnox at samba.org
Sun Jan 30 06:54:01 MST 2011


The branch, master has been updated
       via  e57d4c4 s3:net registry: ignore WERR_BADFILE when --force is given in deletekey[_recursive]
       via  b1f800a s3:registry: in deletekey_recursive, fix return code upon error.
       via  e81ddbc s3:net registry: fix a debug message.
       via  3649798 s3:net registry: fix a debug message.
      from  e6e7c72 s3: On FreeBSD, compile zfsacl if sunacl.h is around

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit e57d4c41d7606ab7853383f5de2f572e01bb7942
Author: Michael Adam <obnox at samba.org>
Date:   Sun Jan 30 13:49:14 2011 +0100

    s3:net registry: ignore WERR_BADFILE when --force is given in deletekey[_recursive]
    
    Autobuild-User: Michael Adam <obnox at samba.org>
    Autobuild-Date: Sun Jan 30 14:53:13 CET 2011 on sn-devel-104

commit b1f800a0d17e9a927cb5d998438b3fdb6b302b13
Author: Michael Adam <obnox at samba.org>
Date:   Sun Jan 30 13:44:31 2011 +0100

    s3:registry: in deletekey_recursive, fix return code upon error.
    
    correctly keep the werr from inside the transaction when the opearation
    inside the transaction fails.
    
    What is the correct behaviour if the cancel operation fails?

commit e81ddbcadedd30a76abc16246eaf7c60d19029bf
Author: Michael Adam <obnox at samba.org>
Date:   Sun Jan 30 12:33:13 2011 +0100

    s3:net registry: fix a debug message.

commit 3649798beed23de0f72bee33fdfa9a5d4ff861f6
Author: Michael Adam <obnox at samba.org>
Date:   Sun Jan 30 12:21:31 2011 +0100

    s3:net registry: fix a debug message.

-----------------------------------------------------------------------

Summary of changes:
 source3/registry/reg_api.c   |   13 ++++++++++---
 source3/utils/net_registry.c |    8 +++++---
 2 files changed, 15 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/registry/reg_api.c b/source3/registry/reg_api.c
index a98eaf8..acce7ab 100644
--- a/source3/registry/reg_api.c
+++ b/source3/registry/reg_api.c
@@ -840,14 +840,21 @@ static WERROR reg_deletekey_recursive_trans(struct registry_key *parent,
 	werr = reg_deletekey_recursive_internal(parent, path, del_key);
 
 	if (!W_ERROR_IS_OK(werr)) {
+		WERROR werr2;
+
 		DEBUG(1, (__location__ " failed to delete key '%s' from key "
 			  "'%s': %s\n", path, parent->key->name,
 			  win_errstr(werr)));
-		werr = regdb_transaction_cancel();
-		if (!W_ERROR_IS_OK(werr)) {
+
+		werr2 = regdb_transaction_cancel();
+		if (!W_ERROR_IS_OK(werr2)) {
 			DEBUG(0, ("reg_deletekey_recursive_trans: "
 				  "error cancelling transaction: %s\n",
-				  win_errstr(werr)));
+				  win_errstr(werr2)));
+			/*
+			 * return the original werr or the
+			 * error from cancelling the transaction?
+			 */
 		}
 	} else {
 		werr = regdb_transaction_commit();
diff --git a/source3/utils/net_registry.c b/source3/utils/net_registry.c
index 163d059..1e87e80 100644
--- a/source3/utils/net_registry.c
+++ b/source3/utils/net_registry.c
@@ -277,7 +277,9 @@ static int net_registry_deletekey_internal(struct net_context *c, int argc,
 	} else {
 		werr = reg_deletekey(hivekey, subkeyname);
 	}
-	if (!W_ERROR_IS_OK(werr)) {
+	if (!W_ERROR_IS_OK(werr) &&
+	    !(c->opt_force && W_ERROR_EQUAL(werr, WERR_BADFILE)))
+	{
 		d_fprintf(stderr, "reg_deletekey %s: %s\n", _("failed"),
 			  win_errstr(werr));
 		goto done;
@@ -598,7 +600,7 @@ static int net_registry_deletevalue(struct net_context *c, int argc,
 
 	werr = reg_deletevalue(key, argv[1]);
 	if (!W_ERROR_IS_OK(werr)) {
-		d_fprintf(stderr, _("reg_deletekey failed: %s\n"),
+		d_fprintf(stderr, _("reg_deletevalue failed: %s\n"),
 			  win_errstr(werr));
 		goto done;
 	}
@@ -934,7 +936,7 @@ static WERROR import_delete_val (struct import_ctx* ctx, struct registry_key* pa
 
 	werr = reg_deletevalue(parent, name);
 	if (!W_ERROR_IS_OK(werr)) {
-		d_fprintf(stderr, _("reg_deletekey failed: %s\n"),
+		d_fprintf(stderr, _("reg_deletevalue failed: %s\n"),
 			  win_errstr(werr));
 	}
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list