svn commit: samba r20654 - in branches: SAMBA_3_0/source/utils SAMBA_3_0_24/source/utils

vlendec at samba.org vlendec at samba.org
Wed Jan 10 15:31:43 GMT 2007


Author: vlendec
Date: 2007-01-10 15:31:42 +0000 (Wed, 10 Jan 2007)
New Revision: 20654

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

Log:
Fix from Karolin Seeger <ks at sernet.de>: Accept "forever", "off" and "never" as
key words for -1 as policy values for net sam policy.

Volker

Modified:
   branches/SAMBA_3_0/source/utils/net_sam.c
   branches/SAMBA_3_0_24/source/utils/net_sam.c


Changeset:
Modified: branches/SAMBA_3_0/source/utils/net_sam.c
===================================================================
--- branches/SAMBA_3_0/source/utils/net_sam.c	2007-01-10 13:25:39 UTC (rev 20653)
+++ branches/SAMBA_3_0/source/utils/net_sam.c	2007-01-10 15:31:42 UTC (rev 20654)
@@ -375,8 +375,22 @@
 
 	account_policy = argv[0];
 	field = account_policy_name_to_fieldnum(account_policy);
-	value = strtoul(argv[1], &endptr, 10);
 
+	if (strequal(argv[1], "forever") || strequal(argv[1], "never")
+	    || strequal(argv[1], "off")) {
+		value = -1;
+	}
+	else {
+		value = strtoul(argv[1], &endptr, 10);
+
+		if ((endptr == argv[1]) || (endptr[0] != '\0')) {
+			d_printf("Unable to set policy \"%s\"! Invalid value "
+				 "\"%s\".\n", 
+				 account_policy, argv[1]); 
+			return -1;
+		}
+	}
+
 	if (field == 0) {
 		const char **names;
                 int i, count;
@@ -398,12 +412,6 @@
 			  "value!\n");
 	}
 
-	if ((endptr == argv[1]) || (endptr[0] != '\0')) {
-		d_printf("Unable to set policy \"%s\"! Invalid value %s.\n", 
-			  account_policy, argv[1]); 
-		return -1;
-	}
-		
 	if (!pdb_set_account_policy(field, value)) {
 		d_fprintf(stderr, "Valid account policy, but unable to "
 			  "set value!\n");

Modified: branches/SAMBA_3_0_24/source/utils/net_sam.c
===================================================================
--- branches/SAMBA_3_0_24/source/utils/net_sam.c	2007-01-10 13:25:39 UTC (rev 20653)
+++ branches/SAMBA_3_0_24/source/utils/net_sam.c	2007-01-10 15:31:42 UTC (rev 20654)
@@ -375,8 +375,22 @@
 
 	account_policy = argv[0];
 	field = account_policy_name_to_fieldnum(account_policy);
-	value = strtoul(argv[1], &endptr, 10);
 
+	if (strequal(argv[1], "forever") || strequal(argv[1], "never")
+	    || strequal(argv[1], "off")) {
+		value = -1;
+	}
+	else {
+		value = strtoul(argv[1], &endptr, 10);
+
+		if ((endptr == argv[1]) || (endptr[0] != '\0')) {
+			d_printf("Unable to set policy \"%s\"! Invalid value "
+				 "\"%s\".\n", 
+				 account_policy, argv[1]); 
+			return -1;
+		}
+	}
+
 	if (field == 0) {
 		const char **names;
                 int i, count;
@@ -398,12 +412,6 @@
 			  "value!\n");
 	}
 
-	if ((endptr == argv[1]) || (endptr[0] != '\0')) {
-		d_printf("Unable to set policy \"%s\"! Invalid value %s.\n", 
-			  account_policy, argv[1]); 
-		return -1;
-	}
-		
 	if (!pdb_set_account_policy(field, value)) {
 		d_fprintf(stderr, "Valid account policy, but unable to "
 			  "set value!\n");



More information about the samba-cvs mailing list