aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKeith <keith@rhizomatica.org>2017-08-16 22:45:07 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2017-08-27 17:40:56 +0200
commit5742ab8aab16dd87551aba3e0a489b098c57025d (patch)
tree28387e52cf1ae98ee53ea624764eddd3053fe6b9 /src
parenta441e9d60b33122caff72f469393b991e17d090f (diff)
libmsc: Use actual delivery time in delivery reports.
Set the time on the status report to the time the message was delivered, as this may not be the same as the time when we are delivering the report to the originating MS. Change-Id: I9056429d40bf02731f004b7833f1de45a0d1add8
Diffstat (limited to 'src')
-rw-r--r--src/libmsc/db.c1
-rw-r--r--src/libmsc/gsm_04_11.c4
2 files changed, 3 insertions, 2 deletions
diff --git a/src/libmsc/db.c b/src/libmsc/db.c
index 3495806de..ae7e2876b 100644
--- a/src/libmsc/db.c
+++ b/src/libmsc/db.c
@@ -742,6 +742,7 @@ static struct gsm_sms *sms_from_result(struct gsm_network *net, dbi_result resul
/* FIXME: validity */
/* FIXME: those should all be get_uchar, but sqlite3 is braindead */
+ sms->created = dbi_result_get_datetime(result, "created");
sms->reply_path_req = dbi_result_get_ulonglong(result, "reply_path_req");
sms->status_rep_req = dbi_result_get_ulonglong(result, "status_rep_req");
sms->is_report = dbi_result_get_ulonglong(result, "is_report");
diff --git a/src/libmsc/gsm_04_11.c b/src/libmsc/gsm_04_11.c
index 55642aa4a..c5bcce75e 100644
--- a/src/libmsc/gsm_04_11.c
+++ b/src/libmsc/gsm_04_11.c
@@ -312,11 +312,11 @@ static int gsm340_gen_sms_status_report_tpdu(struct msgb *msg,
/* generate TP-SCTS (Service centre timestamp) */
smsp = msgb_put(msg, 7);
- gsm340_gen_scts(smsp, time(NULL));
+ gsm340_gen_scts(smsp, sms->created);
/* generate TP-DT (Discharge time, in TP-SCTS format). */
smsp = msgb_put(msg, 7);
- gsm340_gen_scts(smsp, time(NULL));
+ gsm340_gen_scts(smsp, sms->created);
/* TP-ST (status) */
smsp = msgb_put(msg, 1);