diff options
-rw-r--r-- | include/openbsc/gsm_data.h | 1 | ||||
-rw-r--r-- | src/libmsc/db.c | 1 | ||||
-rw-r--r-- | src/libmsc/gsm_04_11.c | 4 |
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); |