[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-543-g5c28c74

Michael Adam obnox at samba.org
Sun Mar 30 01:06:25 GMT 2008


The branch, v3-2-test has been updated
       via  5c28c74aa06a82559f498373b3d6e9892d5c2cbe (commit)
      from  75eb30884a83266fd7331d8f1e3905a0245bb3d8 (commit)

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


- Log -----------------------------------------------------------------
commit 5c28c74aa06a82559f498373b3d6e9892d5c2cbe
Author: Michael Adam <obnox at samba.org>
Date:   Sun Mar 30 01:25:45 2008 +0100

    Revert "regdb: use dbwrap->fetch() instead of fetch_locked() for readonly access"
    
    This reverts commit 4e2be189e97f653b75bd88135a631ce0f42db267.
    
    Metze, this broke the registry (reg_api layer), but I don't yet know
    exactly how and why. By the way, the locks there had the purpose of
    fetching the seqnum that really matches the data.
    
    This needs some more thought / debugging. But I wanted to have
    the tree in a working state again.
    
    Michael

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

Summary of changes:
 source/registry/reg_backend_db.c |   21 ++++++++++-----------
 1 files changed, 10 insertions(+), 11 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/registry/reg_backend_db.c b/source/registry/reg_backend_db.c
index ad17068..06f3d1a 100644
--- a/source/registry/reg_backend_db.c
+++ b/source/registry/reg_backend_db.c
@@ -706,7 +706,7 @@ int regdb_fetch_keys(const char *key, REGSUBKEY_CTR *ctr)
 	fstring subkeyname;
 	int ret = -1;
 	TALLOC_CTX *frame = talloc_stackframe();
-	TDB_DATA value;
+	struct db_record *rec;
 
 	DEBUG(11,("regdb_fetch_keys: Enter key => [%s]\n", key ? key : "NULL"));
 
@@ -722,16 +722,16 @@ int regdb_fetch_keys(const char *key, REGSUBKEY_CTR *ctr)
 	}
 	strupper_m(path);
 
-	ret = regdb->fetch(regdb, frame, string_term_tdb_data(path), &value);
-	if (ret != 0) {
+	rec = regdb->fetch_locked(regdb, frame, string_term_tdb_data(path));
+	if (rec == NULL) {
 		ret = 0;
 		goto fail;
 	}
 
 	ctr->seqnum = regdb_get_seqnum();
 
-	buf = value.dptr;
-	buflen = value.dsize;
+	buf = rec->value.dptr;
+	buflen = rec->value.dsize;
 
 	if ( !buf ) {
 		DEBUG(5,("regdb_fetch_keys: tdb lookup failed to locate key [%s]\n", key));
@@ -841,8 +841,8 @@ int regdb_fetch_values( const char* key, REGVAL_CTR *values )
 {
 	char *keystr = NULL;
 	TALLOC_CTX *ctx = talloc_stackframe();
+	struct db_record *rec;
 	int ret = 0;
-	TDB_DATA value;
 
 	DEBUG(10,("regdb_fetch_values: Looking for value of key [%s] \n", key));
 
@@ -855,20 +855,19 @@ int regdb_fetch_values( const char* key, REGVAL_CTR *values )
 		goto done;
 	}
 
-	ret = regdb->fetch(regdb, ctx, string_term_tdb_data(keystr), &value);
-	if (ret != 0) {
-		ret = 0;
+	rec = regdb->fetch_locked(regdb, ctx, string_term_tdb_data(keystr));
+	if (rec == NULL) {
 		goto done;
 	}
 
 	values->seqnum = regdb_get_seqnum();
 
-	if (!value.dptr) {
+	if (!rec->value.dptr) {
 		/* all keys have zero values by default */
 		goto done;
 	}
 
-	regdb_unpack_values(values, value.dptr, value.dsize);
+	regdb_unpack_values(values, rec->value.dptr, rec->value.dsize);
 	ret = regval_ctr_numvals(values);
 
 done:


-- 
Samba Shared Repository


More information about the samba-cvs mailing list