diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2019-01-28 11:13:32 +0100 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2019-01-28 11:13:32 +0100 |
commit | 0aaa6989c86eb6f15f49faee7ab0c013ebe89171 (patch) | |
tree | a4381f5c2261145a26e596cf82e009a209c91f54 /src/fig | |
parent | c823c87d6f286310e9efd9e723f2e14c3320d31f (diff) | |
download | dabmux-0aaa6989c86eb6f15f49faee7ab0c013ebe89171.tar.gz dabmux-0aaa6989c86eb6f15f49faee7ab0c013ebe89171.tar.bz2 dabmux-0aaa6989c86eb6f15f49faee7ab0c013ebe89171.zip |
Use reentrant gmtime and localtime functions, and other tweaks
Diffstat (limited to 'src/fig')
-rw-r--r-- | src/fig/FIG0_10.cpp | 16 | ||||
-rw-r--r-- | src/fig/FIG0_9.cpp | 5 |
2 files changed, 11 insertions, 10 deletions
diff --git a/src/fig/FIG0_10.cpp b/src/fig/FIG0_10.cpp index 3ce2847..56ce9fb 100644 --- a/src/fig/FIG0_10.cpp +++ b/src/fig/FIG0_10.cpp @@ -101,22 +101,22 @@ FillStatus FIG0_10::fill(uint8_t *buf, size_t max_size) buf += 2; remaining -= 2; - tm* timeData; + struct tm timeData; time_t dab_time_seconds = 0; uint32_t dab_time_millis = 0; get_dab_time(&dab_time_seconds, &dab_time_millis); - timeData = gmtime(&dab_time_seconds); + gmtime_r(&dab_time_seconds, &timeData); fig0_10->RFU = 0; - fig0_10->setMJD(gregorian2mjd(timeData->tm_year + 1900, - timeData->tm_mon + 1, - timeData->tm_mday)); + fig0_10->setMJD(gregorian2mjd(timeData.tm_year + 1900, + timeData.tm_mon + 1, + timeData.tm_mday)); fig0_10->LSI = 0; fig0_10->ConfInd = 1; fig0_10->UTC = 1; - fig0_10->setHours(timeData->tm_hour); - fig0_10->Minutes = timeData->tm_min; - fig0_10->Seconds = timeData->tm_sec; + fig0_10->setHours(timeData.tm_hour); + fig0_10->Minutes = timeData.tm_min; + fig0_10->Seconds = timeData.tm_sec; fig0_10->setMilliseconds(dab_time_millis); buf += 6; remaining -= 6; diff --git a/src/fig/FIG0_9.cpp b/src/fig/FIG0_9.cpp index cf73625..dcee17c 100644 --- a/src/fig/FIG0_9.cpp +++ b/src/fig/FIG0_9.cpp @@ -139,8 +139,9 @@ FillStatus FIG0_9::fill(uint8_t *buf, size_t max_size) if (ensemble->lto_auto) { time_t now = time(NULL); - struct tm* ltime = localtime(&now); - time_t now2 = timegm(ltime); + struct tm ltime; + localtime_r(&now, <ime); + time_t now2 = timegm(<ime); ensemble->lto = (now2 - now) / 1800; } |