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/gsm_04_11.c b/src/libmsc/gsm_04_11.c
index 722973e..743e272 100644
--- a/src/libmsc/gsm_04_11.c
+++ b/src/libmsc/gsm_04_11.c
@@ -626,6 +626,12 @@
 		  osmo_hexdump(gsms->user_data, gsms->user_data_len));
 
 	gsms->validity_minutes = gsm340_validity_period(sms_vpf, sms_vp);
+	if (gsms->validity_minutes < net->sms_queue_cfg->minimum_validity_mins) {
+		LOG_TRANS(trans, LOGL_INFO, "Overriding user-provided validity period (%lu) "
+			  "with minimum SMSC validity period (%u) minutes\n", gsms->validity_minutes,
+			  net->sms_queue_cfg->minimum_validity_mins);
+		gsms->validity_minutes = net->sms_queue_cfg->minimum_validity_mins;
+	}
 
 	rc = sms_route_mt_sms(trans, gsms);