Fixes #3812
My guess is that we run tzset before we have a valid date, so the DST element can't happen. This moves that to every time we attempt to calculate the offset, as well as moving to localtime() to make sure we get the proper timezone offset.
I misunderstood the problem the first time around (and had a local node broadcasting a bogus time). The solution is actually really simple: Just use the real time for our "now" variable, to calculate the offset.
Fixes #3812 My guess is that we run tzset before we have a valid date, so the DST element can't happen. This moves that to every time we attempt to calculate the offset, as well as moving to localtime() to make sure we get the proper timezone offset.