diff options
author | Přemysl Janouch <p.janouch@gmail.com> | 2015-07-14 06:43:15 +0200 |
---|---|---|
committer | Přemysl Janouch <p.janouch@gmail.com> | 2015-07-14 06:43:15 +0200 |
commit | 880a8ef080e812614a55a80fb882291e8f072f9b (patch) | |
tree | 3500fe0d374caf0fec9a452b7cca8b880bb70188 /degesch.c | |
parent | 6f966d4aeebd07d5118a62102a2bc5b878903a9e (diff) | |
download | xK-880a8ef080e812614a55a80fb882291e8f072f9b.tar.gz xK-880a8ef080e812614a55a80fb882291e8f072f9b.tar.xz xK-880a8ef080e812614a55a80fb882291e8f072f9b.zip |
degesch: finally fix rearm_date_change_timer()
Diffstat (limited to 'degesch.c')
-rw-r--r-- | degesch.c | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -9111,10 +9111,18 @@ on_flush_timer (struct app_context *ctx) static void rearm_date_change_timer (struct app_context *ctx) { - const time_t seconds_per_day = 60 * 60 * 12; + struct tm tm_; const time_t now = time (NULL); - const time_t midnight = (now + seconds_per_day - 1) - / seconds_per_day * seconds_per_day; + if (!soft_assert (localtime_r (&now, &tm_))) + return; + + tm_.tm_sec = tm_.tm_min = tm_.tm_hour = 0; + tm_.tm_mday++; + tm_.tm_isdst = -1; + + const time_t midnight = mktime (&tm_); + if (!soft_assert (midnight != (time_t) -1)) + return; poller_timer_set (&ctx->date_chg_tmr, (midnight - now) * 1000); } |