On Wed, Apr 20, 2022 at 03:00:15PM +0200, Theo Buehler wrote:
> Found this when looking at the timezone issue a couple of weeks back and
> then forgot about it:
> 
> This setenv() + localtime() looks like a hack to me and I don't really
> understand why it should be preferable over using gmtime() directly. The
> only change in output that I can see is that it causes %Z to print GMT
> instead of UTC, so I modified the format string accordingly (but I have
> no strong opinion on this).

UTC is the proper timezone here. Not sure why gmtime results in %Z to
return GMT since gmtime converts into UTC. On the other hand timezones
in struct tm are strange so it probably just defaults to GMT for a 0
offset time.
 
> Index: output.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/rpki-client/output.c,v
> retrieving revision 1.25
> diff -u -p -r1.25 output.c
> --- output.c  19 Apr 2022 13:52:24 -0000      1.25
> +++ output.c  19 Apr 2022 15:55:44 -0000
> @@ -204,9 +204,8 @@ outputheader(FILE *out, struct stats *st
>       int             i;
>  
>       time(&t);
> -     setenv("TZ", "UTC", 1);
> -     tp = localtime(&t);
> -     strftime(tbuf, sizeof tbuf, "%a %b %e %H:%M:%S %Z %Y", tp);
> +     tp = gmtime(&t);
> +     strftime(tbuf, sizeof tbuf, "%a %b %e %H:%M:%S UTC %Y", tp);
>  
>       gethostname(hn, sizeof hn);
>  
> Index: output-json.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/rpki-client/output-json.c,v
> retrieving revision 1.24
> diff -u -p -r1.24 output-json.c
> --- output-json.c     19 Apr 2022 13:52:24 -0000      1.24
> +++ output-json.c     19 Apr 2022 14:18:04 -0000
> @@ -31,8 +31,7 @@ outputheader_json(FILE *out, struct stat
>       int             i;
>  
>       time(&t);
> -     setenv("TZ", "UTC", 1);
> -     tp = localtime(&t);
> +     tp = gmtime(&t);
>       strftime(tbuf, sizeof tbuf, "%FT%TZ", tp);
>  
>       gethostname(hn, sizeof hn);
> 

OK claudio@

-- 
:wq Claudio

Reply via email to