aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openbsc/include/openbsc/gsm_data.h1
-rw-r--r--openbsc/src/libmsc/db.c1
-rw-r--r--openbsc/src/libmsc/gsm_04_11.c4
3 files changed, 4 insertions, 2 deletions
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index 6829d22d9..4035b396b 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -456,6 +456,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/openbsc/src/libmsc/db.c b/openbsc/src/libmsc/db.c
index 631e05f5d..4ba12ca69 100644
--- a/openbsc/src/libmsc/db.c
+++ b/openbsc/src/libmsc/db.c
@@ -1641,6 +1641,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/openbsc/src/libmsc/gsm_04_11.c b/openbsc/src/libmsc/gsm_04_11.c
index 5e736b3d5..ddef444c5 100644
--- a/openbsc/src/libmsc/gsm_04_11.c
+++ b/openbsc/src/libmsc/gsm_04_11.c
@@ -310,11 +310,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);