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

Volker Lendecke vlendec at samba.org
Tue Feb 15 11:32:54 MST 2011


The branch, v3-6-test has been updated
       via  29db913 s3-amend: Don't overwrite existing values
      from  4f9a0a0 s3-selftest: move all skipped test to skiplist.

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


- Log -----------------------------------------------------------------
commit 29db91386cf2e639e7fa5dd683427e71a27cb7cd
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Feb 15 18:16:43 2011 +0100

    s3-amend: Don't overwrite existing values
    
    This saves a ton of tdb transactions on smbd startup
    
    Andreas, Günther, please check!
    (cherry picked from commit f56432c348d0243b43a8cce42c0a438902854272)

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

Summary of changes:
 source3/registry/reg_api.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/registry/reg_api.c b/source3/registry/reg_api.c
index acce7ab..7c2e01d 100644
--- a/source3/registry/reg_api.c
+++ b/source3/registry/reg_api.c
@@ -659,6 +659,7 @@ done:
 WERROR reg_setvalue(struct registry_key *key, const char *name,
 		    const struct registry_value *val)
 {
+	struct regval_blob *existing;
 	WERROR err;
 	int res;
 
@@ -670,6 +671,15 @@ WERROR reg_setvalue(struct registry_key *key, const char *name,
 		return err;
 	}
 
+	existing = regval_ctr_getvalue(key->values, name);
+
+	if ((existing != NULL) &&
+	    (regval_size(existing) == val->data.length) &&
+	    (memcmp(regval_data_p(existing), val->data.data,
+		    val->data.length) == 0)) {
+		return WERR_OK;
+	}
+
 	res = regval_ctr_addvalue(key->values, name, val->type,
 				  val->data.data, val->data.length);
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list