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/smpp_openbsc.c b/src/libmsc/smpp_openbsc.c
index 64d4f1e..91666a9 100644
--- a/src/libmsc/smpp_openbsc.c
+++ b/src/libmsc/smpp_openbsc.c
@@ -267,6 +267,13 @@
 	else
 		sms->validity_minutes = (t_validity_absolute - t_now) / 60;
 
+	if (sms->validity_minutes < net->sms_queue_cfg->minimum_validity_mins) {
+		LOGP(DLSMS, LOGL_INFO, "SMS to %s: Overriding ESME-provided validity period (%lu) "
+		     "with minimum SMSC validity period (%u) minutes\n", submit->destination_addr,
+		     sms->validity_minutes, net->sms_queue_cfg->minimum_validity_mins);
+		sms->validity_minutes = net->sms_queue_cfg->minimum_validity_mins;
+	}
+
 	*psms = sms;
 	return ESME_ROK;
 }