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

Stefan Metzmacher metze at samba.org
Sat Apr 12 08:03:49 GMT 2008


The branch, v3-2-test has been updated
       via  b313acdd31c97d032c3890764addf66c6b9a4d89 (commit)
       via  5f5d90ef76b969ecbe564399368a7450c4e3d155 (commit)
      from  64450cc1e441355aa8925b7183e90872eeab20b1 (commit)

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


- Log -----------------------------------------------------------------
commit b313acdd31c97d032c3890764addf66c6b9a4d89
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Mar 31 11:24:10 2008 +0200

    groupdb: make mapping_tdb compatible to mapping_ldb
    
    mapping_ldb replaces the record if it already exists.
    I'm not sure if that a good thing, but for now
    both backends should provide the same behavior.
    
    metze

commit 5f5d90ef76b969ecbe564399368a7450c4e3d155
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Mar 28 08:24:28 2008 +0100

    groupdb: readd groupdb:backend parametric option
    
    This reverts c5adb92c020e38644baf1afc8fc570a518cd6307.
    
    The reason is that ldb doesn't work for cluster setups yet.
    
    metze

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

Summary of changes:
 source/groupdb/mapping.c     |   22 ++++++++++++++++++++--
 source/groupdb/mapping_tdb.c |    2 +-
 2 files changed, 21 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/groupdb/mapping.c b/source/groupdb/mapping.c
index 1ddda58..ce66bfa 100644
--- a/source/groupdb/mapping.c
+++ b/source/groupdb/mapping.c
@@ -30,12 +30,30 @@ static const struct mapping_backend *backend;
  */
 static bool init_group_mapping(void)
 {
+	const char *backend_string;
+
 	if (backend != NULL) {
 		/* already initialised */
 		return True;
 	}
-	
-	backend = groupdb_ldb_init();
+
+	/*
+	 * default to using the ldb backend. This parameter should
+	 * disappear in future versions of Samba3.
+	 *
+	 * But it's needed for cluster setups, because it's
+	 * not yet possible to distribute a ldb inside a cluster.
+	 */
+	backend_string = lp_parm_const_string(-1, "groupdb", "backend", "ldb");
+
+	if (strcmp(backend_string, "ldb") == 0) {
+		backend = groupdb_ldb_init();
+	} else if (strcmp(backend_string, "tdb") == 0) {
+		backend = groupdb_tdb_init();
+	} else {
+		DEBUG(0,("Unknown groupdb backend '%s'\n", backend_string));
+		smb_panic("Unknown groupdb backend");
+	}
 
 	return backend != NULL;
 }
diff --git a/source/groupdb/mapping_tdb.c b/source/groupdb/mapping_tdb.c
index ffd7d20..c6d9735 100644
--- a/source/groupdb/mapping_tdb.c
+++ b/source/groupdb/mapping_tdb.c
@@ -143,7 +143,7 @@ static bool add_mapping_entry(GROUP_MAP *map, int flag)
 
 	status = dbwrap_trans_store(
 		db, string_term_tdb_data(key),
-		make_tdb_data((uint8_t *)buf, len), flag);
+		make_tdb_data((uint8_t *)buf, len), TDB_REPLACE);
 
 	TALLOC_FREE(key);
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list