sms: Introduce VTY-configurable minimum SMS validity period

This is meant as a safeguard against users or user equipment which
doesn't set a reasonable validity period.  Using this setting, the
SMSC administrator can set a minimum SMS validity period. Any SMS
submitted with lower validity period will be extended to that minimum.

Change-Id: I192528a6f9059d158fa12876a247d61bd7edaec8
Related: OS#5567
diff --git a/src/libmsc/smsc_vty.c b/src/libmsc/smsc_vty.c
index 547b7d5..e99b236 100644
--- a/src/libmsc/smsc_vty.c
+++ b/src/libmsc/smsc_vty.c
@@ -99,12 +99,16 @@
 }
 
 DEFUN(cfg_sms_def_val_per, cfg_sms_def_val_per_cmd,
-      "validity-period default <1-5256000>",
+      "validity-period (minimum|default) <1-5256000>",
       "Configure validity period for SMS\n"
+      "Minimum SMS validity period in minutes\n"
       "Default SMS validity period in minutes\n"
-      "Default SMS validity period in minutes\n")
+      "Validity period in minutes\n")
 {
-	smqcfg->default_validity_mins = atoi(argv[0]);
+	if (!strcmp(argv[0], "minimum"))
+		smqcfg->minimum_validity_mins = atoi(argv[1]);
+	else
+		smqcfg->default_validity_mins = atoi(argv[1]);
 	return CMD_SUCCESS;
 }
 
@@ -177,6 +181,7 @@
 	vty_out(vty, " database delete-delivered %u%s", smqcfg->delete_delivered, VTY_NEWLINE);
 	vty_out(vty, " database delete-expired %u%s", smqcfg->delete_expired, VTY_NEWLINE);
 
+	vty_out(vty, " validity-period minimum %u%s", smqcfg->minimum_validity_mins, VTY_NEWLINE);
 	vty_out(vty, " validity-period default %u%s", smqcfg->default_validity_mins, VTY_NEWLINE);
 
 	return 0;