aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/openbsc/gsm_data.h1
-rw-r--r--src/libmsc/db.c1
-rw-r--r--src/libmsc/gsm_04_11.c4
3 files changed, 4 insertions, 2 deletions
diff --git a/include/openbsc/gsm_data.h b/include/openbsc/gsm_data.h
index 51cf6dcd4..f4de38105 100644
--- a/include/openbsc/gsm_data.h
+++ b/include/openbsc/gsm_data.h
@@ -511,6 +511,7 @@ struct gsm_sms {
} smpp;
unsigned long validity_minutes;
+ time_t created;
bool is_report;
uint8_t reply_path_req;
uint8_t status_rep_req;
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);