[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