From 6d9bf382bdab18e06102934c738643786f2d9538 Mon Sep 17 00:00:00 2001 From: Max Vasilyev Date: Mon, 1 Feb 2016 14:29:17 +0000 Subject: [PATCH] TZ offset in minutes for Synchronet, patch by Rob Swindell, 1:103/705 --- goldlib/gmb3/gmosmb1.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/goldlib/gmb3/gmosmb1.cpp b/goldlib/gmb3/gmosmb1.cpp index 74baf50..906ff83 100644 --- a/goldlib/gmb3/gmosmb1.cpp +++ b/goldlib/gmb3/gmosmb1.cpp @@ -495,6 +495,18 @@ add2: return true; } +// ------------------------------------------------------------------ +// Returns current timezone offset based on TZ environment variable. + +int tzoffset_in_minutes() +{ + time32_t t1 = gtime(NULL); + struct tm tp; ggmtime(&tp, &t1); + tp.tm_isdst = -1; + time32_t t2 = gmktime(&tp); + int dt = (int)(t1 - t2); + return dt / 60; +} // ------------------------------------------------------------------ @@ -541,8 +553,10 @@ void SMBArea::save_hdr(int mode, gmsg* msg) struct tm tp; ggmtime(&tp, &msg->written); tp.tm_isdst = -1; smsg.hdr.when_written.time = gmktime(&tp); + smsg.hdr.when_written.zone = tzoffset_in_minutes(); } smsg.hdr.when_imported.time = gtime(NULL); + smsg.hdr.when_imported.zone = tzoffset_in_minutes(); // Transfer attributes if(msg->attr.pvt()) smsg.hdr.attr |= MSG_PRIVATE;