From 7c8e2cc7aca1a789bbcf989a14be177d59041959 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Wed, 29 Aug 2012 16:47:30 +0200 Subject: libosmogsm: Back-port SMS related fixes from openbsc This was fixed in 9c3dc90d16a40789081c84e46620f4d66689fec1 of openbsc.git, after the sms code had been migrated here: introduce HAVE_TM_GMTOFF_IN_TM Not all architectures have the tm.tm_gmtoff member. This fixes cygwin builds. --- src/gsm/gsm0411_utils.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/gsm/gsm0411_utils.c b/src/gsm/gsm0411_utils.c index 5076ec82..ebde8fca 100644 --- a/src/gsm/gsm0411_utils.c +++ b/src/gsm/gsm0411_utils.c @@ -25,6 +25,7 @@ * */ +#include "../../config.h" #include #include @@ -80,7 +81,12 @@ void gsm340_gen_scts(uint8_t *scts, time_t time) *scts++ = gsm411_bcdify(tm->tm_hour); *scts++ = gsm411_bcdify(tm->tm_min); *scts++ = gsm411_bcdify(tm->tm_sec); - *scts++ = gsm411_bcdify(0); /* GMT */ +#ifdef HAVE_TM_GMTOFF_IN_TM + *scts++ = gsm411_bcdify(tm->tm_gmtoff/(60*15)); +#else +#warning find a portable way to obtain timezone offset + *scts++ = 0; +#endif } /* Decode 03.40 TP-SCTS (into utc/gmt timestamp) */ @@ -101,6 +107,9 @@ time_t gsm340_scts(uint8_t *scts) tm.tm_hour = gsm411_unbcdify(*scts++); tm.tm_min = gsm411_unbcdify(*scts++); tm.tm_sec = gsm411_unbcdify(*scts++); +#ifdef HAVE_TM_GMTOFF_IN_TM + tm.tm_gmtoff = gsm411_unbcdify(*scts++) * 15*60; +#endif /* according to gsm 03.40 time zone is "expressed in quarters of an hour" */ -- cgit v1.2.3