svn commit: samba r21780 - in branches: SAMBA_3_0/source/utils SAMBA_3_0_25/source/utils

herb at samba.org herb at samba.org
Fri Mar 9 19:48:51 GMT 2007


Author: herb
Date: 2007-03-09 19:48:50 +0000 (Fri, 09 Mar 2007)
New Revision: 21780

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21780

Log:
let smbcontrol use POPT_COMMON_SAMBA options to allow setting debug
level. Fix calculation of argc after options are stripped. I couldn't
find a popt function that returned this.

Modified:
   branches/SAMBA_3_0/source/utils/smbcontrol.c
   branches/SAMBA_3_0_25/source/utils/smbcontrol.c


Changeset:
Modified: branches/SAMBA_3_0/source/utils/smbcontrol.c
===================================================================
--- branches/SAMBA_3_0/source/utils/smbcontrol.c	2007-03-09 19:28:35 UTC (rev 21779)
+++ branches/SAMBA_3_0/source/utils/smbcontrol.c	2007-03-09 19:48:50 UTC (rev 21780)
@@ -1145,25 +1145,15 @@
 	poptContext pc;
 	int opt;
 
-	static struct poptOption wbinfo_options[] = {
+	static struct poptOption long_options[] = {
+		POPT_AUTOHELP
 		{ "timeout", 't', POPT_ARG_INT, &timeout, 't', 
 		  "Set timeout value in seconds", "TIMEOUT" },
 
-		{ "configfile", 's', POPT_ARG_STRING, NULL, 's', 
-		  "Use alternative configuration file", "CONFIGFILE" },
-
+		POPT_COMMON_SAMBA
 		POPT_TABLEEND
 	};
 
-	struct poptOption options[] = {
-		{ NULL, 0, POPT_ARG_INCLUDE_TABLE, wbinfo_options, 0, 
-		  "Options" },
-
-		POPT_AUTOHELP
-		POPT_COMMON_VERSION
-		POPT_TABLEEND
-	};
-
 	load_case_tables();
 
 	setup_logging(argv[0],True);
@@ -1171,7 +1161,7 @@
 	/* Parse command line arguments using popt */
 
 	pc = poptGetContext(
-		"smbcontrol", argc, (const char **)argv, options, 0);
+		"smbcontrol", argc, (const char **)argv, long_options, 0);
 
 	poptSetOtherOptionHelp(pc, "[OPTION...] <destination> <message-type> "
 			       "<parameters>");
@@ -1182,12 +1172,7 @@
 	while ((opt = poptGetNextOpt(pc)) != -1) {
 		switch(opt) {
 		case 't':	/* --timeout */
-			argc -= 2;
 			break;
-		case 's':	/* --configfile */
-			pstrcpy(dyn_CONFIGFILE, poptGetOptArg(pc));
-			argc -= 2;
-			break;
 		default:
 			fprintf(stderr, "Invalid option\n");
 			poptPrintHelp(pc, stderr, 0);
@@ -1200,7 +1185,10 @@
            correct value in the above switch statement. */
 
 	argv = (const char **)poptGetArgs(pc);
-	argc--;			/* Don't forget about argv[0] */
+	argc = 0;
+	while (argv[argc] != NULL) {
+		argc++;
+	}
 
 	if (argc == 1)
 		usage(&pc);

Modified: branches/SAMBA_3_0_25/source/utils/smbcontrol.c
===================================================================
--- branches/SAMBA_3_0_25/source/utils/smbcontrol.c	2007-03-09 19:28:35 UTC (rev 21779)
+++ branches/SAMBA_3_0_25/source/utils/smbcontrol.c	2007-03-09 19:48:50 UTC (rev 21780)
@@ -1145,25 +1145,15 @@
 	poptContext pc;
 	int opt;
 
-	static struct poptOption wbinfo_options[] = {
+	static struct poptOption long_options[] = {
+		POPT_AUTOHELP
 		{ "timeout", 't', POPT_ARG_INT, &timeout, 't', 
 		  "Set timeout value in seconds", "TIMEOUT" },
 
-		{ "configfile", 's', POPT_ARG_STRING, NULL, 's', 
-		  "Use alternative configuration file", "CONFIGFILE" },
-
+		POPT_COMMON_SAMBA
 		POPT_TABLEEND
 	};
 
-	struct poptOption options[] = {
-		{ NULL, 0, POPT_ARG_INCLUDE_TABLE, wbinfo_options, 0, 
-		  "Options" },
-
-		POPT_AUTOHELP
-		POPT_COMMON_VERSION
-		POPT_TABLEEND
-	};
-
 	load_case_tables();
 
 	setup_logging(argv[0],True);
@@ -1171,7 +1161,7 @@
 	/* Parse command line arguments using popt */
 
 	pc = poptGetContext(
-		"smbcontrol", argc, (const char **)argv, options, 0);
+		"smbcontrol", argc, (const char **)argv, long_options, 0);
 
 	poptSetOtherOptionHelp(pc, "[OPTION...] <destination> <message-type> "
 			       "<parameters>");
@@ -1182,12 +1172,7 @@
 	while ((opt = poptGetNextOpt(pc)) != -1) {
 		switch(opt) {
 		case 't':	/* --timeout */
-			argc -= 2;
 			break;
-		case 's':	/* --configfile */
-			pstrcpy(dyn_CONFIGFILE, poptGetOptArg(pc));
-			argc -= 2;
-			break;
 		default:
 			fprintf(stderr, "Invalid option\n");
 			poptPrintHelp(pc, stderr, 0);
@@ -1200,7 +1185,10 @@
            correct value in the above switch statement. */
 
 	argv = (const char **)poptGetArgs(pc);
-	argc--;			/* Don't forget about argv[0] */
+	argc = 0;
+	while (argv[argc] != NULL) {
+		argc++;
+	}
 
 	if (argc == 1)
 		usage(&pc);



More information about the samba-cvs mailing list