regarding other places: when I developed that patch I found another similar use 
of mktime in the module ow_1923.c, however I didn't touch the code since I had 
no corresponding iButton for testing.

Clemens

> From: Paul Alfille [mailto:[email protected]] 
> Sent: Sunday, 10 February, 2013 1:15 AM
> To: OWFS (One-wire file system) discussion and help
> Subject: Re: [Owfs-developers] Patch - DS1921 Thermochron iButton - reading 
> udate values depends on local time zone
> 
> Thank you. The patch had been overlooked, but now is applied. I'm going to 
> see if there are other places with the same error.
> Paul
> 
> On Fri, Feb 8, 2013 at 6:42 AM, Egger Clemens <[email protected]> wrote:
> Hi Paul,
> 
> any feedback for me regarding this patch?
> 
> Best regards,
> Clemens Egger
> 
> 
> > -----Original Message-----
> > From: Egger Clemens
> > Sent: Wednesday, 23 January, 2013 1:16 PM
> > To: OWFS Developer's list
> > Subject: Patch - DS1921 Thermochron iButton - reading udate values
> > depends on local time zone
> >
> > Hi,
> >
> > working with the DS1921 Thermochron iButton I noticed that, when writing a
> > time value to clock/udate and reading it immediately afterwards, the
> > returned value differs notably to the written value. This is dependent on 
> > the
> > local time zone and whether it's daylight saving time or not. My environment
> > variable TZ usually reads "Europe/Berlin". In the following example there's 
> > a
> > difference of 3600 seconds i.e. 1 hour between the two values.
> >
> > $ ./owwrite -s 3000 21.D5542E000000/clock/udate 1352387000; ./owread -s
> > 3000 21.D5542E000000/clock/udate
> >   1352383400
> >
> > Looking at the source code, I discovered that the function mktime is used to
> > convert a struct tm to time_t. However mktime uses the local time zone
> > which explains the time shift.
> >
> > The following workaround makes the time shift disappear: just set the TZ
> > environment variable to UTC when invoking the server.
> > TZ=UTC ./owserver -u -p 3000
> >
> > There's a function timegm which is basically the opposite part to gmtime. 
> > The
> > latter is already used in the code when writing a udate value to the 
> > iButton.
> > In my opinion timegm would be more suitable than mktime. I developed a
> > patch to fix this issue, see attachment.
> >
> > BTW: I already submitted this patch last year Nov 8 to this list, but I 
> > never got
> > any feedback - just in case this sounds familiar.
> >
> > Best regards
> > Clemens Egger
>

------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Owfs-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/owfs-developers

Reply via email to