@@ -170,7 +170,7 @@ int we_os_update(struct flb_we *ctx)
170
170
DWORD caption_len = sizeof (caption ), build_len = sizeof (build_number );
171
171
uint64_t timestamp = 0 ;
172
172
char label_caption [90 ];
173
- TIME_ZONE_INFORMATION tzi ;
173
+ DYNAMIC_TIME_ZONE_INFORMATION dtzi ;
174
174
DWORD tztype = 0 ;
175
175
char * displaytz ;
176
176
@@ -223,21 +223,23 @@ int we_os_update(struct flb_we *ctx)
223
223
224
224
cmt_gauge_set (ctx -> os -> time , timestamp , (double )timestamp /1000000000L , 0 , NULL );
225
225
226
- tztype = GetTimeZoneInformation (& tzi );
226
+ _tzset ();
227
+
228
+ tztype = GetDynamicTimeZoneInformation (& dtzi );
227
229
switch (tztype ) {
228
230
case TIME_ZONE_ID_STANDARD :
229
- displaytz = we_convert_wstr (tzi .StandardName , CP_UTF8 );
231
+ displaytz = we_convert_wstr (dtzi .StandardName , CP_UTF8 );
230
232
cmt_gauge_set (ctx -> os -> tz , timestamp , 1.0 , 1 , (char * []) {displaytz });
231
233
flb_free (displaytz );
232
234
break ;
233
235
case TIME_ZONE_ID_DAYLIGHT :
234
- displaytz = we_convert_wstr (tzi .DaylightName , CP_UTF8 );
236
+ displaytz = we_convert_wstr (dtzi .DaylightName , CP_UTF8 );
235
237
cmt_gauge_set (ctx -> os -> tz , timestamp , 1.0 , 1 , (char * []) {displaytz });
236
238
flb_free (displaytz );
237
239
break ;
238
240
case TIME_ZONE_ID_UNKNOWN :
239
241
/* The current timezone does not use daylight saving time. */
240
- displaytz = we_convert_wstr (tzi .StandardName , CP_UTF8 );
242
+ displaytz = we_convert_wstr (dtzi .StandardName , CP_UTF8 );
241
243
cmt_gauge_set (ctx -> os -> tz , timestamp , 1.0 , 1 , (char * []) {displaytz });
242
244
flb_free (displaytz );
243
245
break ;
0 commit comments