On 04/07/2016 11:15, Rafał Miłecki wrote: > Function mktime respects current time zone and calling it results in > converting time back to the UTC. It means we were never returning a > time for local zone but GMT one. > > The easiest solution is to use tm_gmtoff from struct tm. Unfortunately > this isn't part of POSIX but it seems to be the best idea anyway. > > Alternative (worse?) solutions: > 1) Use timegm that is nonstandard GNU extension > 2) Work with TZ env (getenv & (un)setenv) that is not thread-safe > 3) Use timegm (next to localtime) and implement function comparing two > struct tm. This is what glibc does internally (tm_diff) when compiled > without HAVE_TM_GMTOFF. > > Signed-off-by: Rafał Miłecki <zaj...@gmail.com> > --- > system.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/system.c b/system.c > index fb7fbe4..d1b8ac0 100644 > --- a/system.c > +++ b/system.c > @@ -202,7 +202,7 @@ static int system_info(struct ubus_context *ctx, struct > ubus_object *obj, > blob_buf_init(&b, 0); > > blobmsg_add_u32(&b, "uptime", info.uptime); > - blobmsg_add_u32(&b, "localtime", mktime(tm)); > + blobmsg_add_u32(&b, "localtime", now + tm->tm_gmtoff); > > c = blobmsg_open_array(&b, "load"); > blobmsg_add_u32(&b, NULL, info.loads[0]); >
Hi, seems you used an older tree. this patch does not apply due to commit f355e233714e ("add ifdefs to make system.c compile on non-linux systems") John _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev