[PATCH] sam backend parameter

Stefan (metze) Metzmacher metze at metzemix.de
Tue Oct 1 07:49:01 GMT 2002


Hi Jelmer,

here's a patch witch changes the syntax of the sam backend parameter:

now it's plugin[|DOMAIN][:options] ... I think it nicer:-)

If you didn't accept that patch please move the 'strchr' to 'strrchr', (but 
there're also a few other bugs, in the parsing sam_backend_string in 
make_backend_entry()), because as it is now it didn't work with:

plugin[:options][|DOMAIN] :-(

plugin:/usr/lib/samba/sam_passdb.so:test|test2:test3|test4|MX.BASE

breaks it...


metze
-----------------------------------------------------------------------------
Stefan "metze" Metzmacher <metze at metzemix.de>
-------------- next part --------------
diff -Npur --exclude=CVS --exclude=*.bak --exclude=*.o --exclude=*.po --exclude=.#* HEAD/source/sam/interface.c HEAD-fix/source/sam/interface.c
--- HEAD/source/sam/interface.c	Mon Sep 30 07:29:04 2002
+++ HEAD-fix/source/sam/interface.c	Tue Oct  1 09:35:27 2002
@@ -136,23 +136,22 @@ static NTSTATUS make_backend_entry(SAM_B
 	
 	SAM_ASSERT(sam_backend_string && backend_entry);
 	
-	backend_entry->module_name = sam_backend_string;
-	
-	DEBUG(5,("makeing backend_entry for %s\n", backend_entry->module_name));
-	
+	DEBUG(5,("makeing backend_entry for %s\n", sam_backend_string));
+
+	if ((tmp = strchr(tmp_string, ':')) != NULL) {
+		*tmp = 0;
+		backend_entry->module_params = smb_xstrdup(tmp + 1);
+		DEBUG(20,("options for the backend: %s\n",backend_entry->module_params));
+	}
+		
 	if ((tmp = strchr(tmp_string, '|')) != NULL) {
-		DEBUGADD(20,("a domain name has been specified\n"));
 		*tmp = 0;
 		backend_entry->domain_name = smb_xstrdup(tmp + 1);
-		tmp_string = tmp + 1;
+		DEBUGADD(20,("the domain name is: %s\n",backend_entry->domain_name));
 	}
 	
-	if ((tmp = strchr(tmp_string, ':')) != NULL) {
-		DEBUG(20,("options for the backend have been specified\n"));
-		*tmp = 0;
-		backend_entry->module_params = smb_xstrdup(tmp + 1);
-		tmp_string = tmp + 1;
-	}
+	backend_entry->module_name = smb_xstrdup(tmp_string);
+	DEBUGADD(20,("module name is: %s\n", backend_entry->module_name));
 		
 	if (backend_entry->domain_name == NULL) {
 		DEBUG(10,("make_backend_entry: no domain was specified for sam module %s. Using default domain %s\n",
diff -Npur --exclude=CVS --exclude=*.bak --exclude=*.o --exclude=*.po --exclude=.#* HEAD/source/torture/cmd_sam.c HEAD-fix/source/torture/cmd_sam.c
--- HEAD/source/torture/cmd_sam.c	Mon Sep 30 07:29:04 2002
+++ HEAD-fix/source/torture/cmd_sam.c	Tue Oct  1 09:26:32 2002
@@ -61,7 +61,7 @@ static NTSTATUS cmd_load_module(struct s
 	}
 
 	if (argc == 3)
-		asprintf(&plugin_arg[0], "plugin:%s|%s", argv[1], argv[2]);
+		asprintf(&plugin_arg[0], "plugin|%s:%s", argv[2], argv[1]);
 	else
 		asprintf(&plugin_arg[0], "plugin:%s", argv[1]);
 


More information about the samba-technical mailing list