[SCM] Samba Shared Repository - branch v3-6-test updated

Michael Adam obnox at samba.org
Sun Jan 30 07:01:14 MST 2011


The branch, v3-6-test has been updated
       via  a49339e s3:net registry: ignore WERR_BADFILE when --force is given in deletekey[_recursive]
       via  831e749 s3:registry: in deletekey_recursive, fix return code upon error.
       via  ede74fa s3:net registry: fix a debug message.
       via  9f292f4 s3:net registry: fix a debug message.
      from  cf700e5 s3: On FreeBSD, compile zfsacl if sunacl.h is around

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit a49339e3152db984f21ef4e99fdad40cc7988904
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 831e7490d78a7780c8e169f4e3b70002e89105a2
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 ede74fab144912bc6c47edb50f5ed0559b41674a
Author: Michael Adam <obnox at samba.org>
Date:   Sun Jan 30 12:33:13 2011 +0100

    s3:net registry: fix a debug message.

commit 9f292f4ca815cc723bf00d8d73d3d3c1a0319f2a
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