From 345d99a9b5d54061e11e4d8f347899c1852cb99f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Tue, 16 Jul 2024 23:50:24 +0200 Subject: [PATCH] relay/api: fix timezone of dates sent to clients (issue #2151) --- ChangeLog.adoc | 1 + src/plugins/relay/api/relay-api-msg.c | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ChangeLog.adoc b/ChangeLog.adoc index 4453ff9d6..da2066a03 100644 --- a/ChangeLog.adoc +++ b/ChangeLog.adoc @@ -15,6 +15,7 @@ === Fixed * relay/api: fix crash when sending data to a remote buffer when the remote has been deleted (issue #2157) +* relay/api: fix timezone of dates sent to clients (issue #2151) [[v4.3.5]] == Version 4.3.5 (2024-07-16) diff --git a/src/plugins/relay/api/relay-api-msg.c b/src/plugins/relay/api/relay-api-msg.c index 5260d4456..4f5fa2de9 100644 --- a/src/plugins/relay/api/relay-api-msg.c +++ b/src/plugins/relay/api/relay-api-msg.c @@ -58,8 +58,10 @@ #define MSG_ADD_HDATA_TIME_USEC(__json_name, \ __var_name, __var_name_usec) \ time_value = weechat_hdata_time (hdata, pointer, __var_name); \ - gmtime_r (&time_value, &gm_time); \ - tv.tv_sec = mktime (&gm_time); \ + local_time = localtime (&time_value); \ + time_value -= local_time->tm_gmtoff; \ + local_time = localtime (&time_value); \ + tv.tv_sec = mktime (local_time); \ tv.tv_usec = weechat_hdata_integer (hdata, pointer, \ __var_name_usec); \ weechat_util_strftimeval (str_time, sizeof (str_time), \ @@ -492,7 +494,7 @@ relay_api_msg_line_data_to_json (struct t_gui_line_data *line_data, int i, tags_count; time_t time_value; struct timeval tv; - struct tm gm_time; + struct tm *local_time; hdata = relay_hdata_line_data; pointer = line_data; @@ -731,7 +733,7 @@ relay_api_msg_hotlist_to_json (struct t_gui_hotlist *hotlist) cJSON *json, *json_count; time_t time_value; struct timeval tv; - struct tm gm_time; + struct tm *local_time; char str_time[256], str_key[32]; int i, array_size; long long buffer_id;