On Monday 01 January 2007 16:08, Tilghman Lesher wrote: > On Monday 01 January 2007 06:17, Hans Petter Selasky wrote: > > On Monday 01 January 2007 04:07, Kevin P. Fleming wrote: > > > Hans Petter Selasky wrote: > > > > From examining the code, this seems to be the case: > > > > > > > > gettimeofday(&cdr->start, NULL); > > > > gettimeofday(&cdr->answer, NULL); > > > > gettimeofday(&cdr->end, NULL); > > > > > > If you had read the man page for gettimeofday(), you would not have > > > asked this question :-) > > > > > > gettimeofday(), when passed NULL as the second parameter (which we > > > always do and is recommended practice) returns the number of > > > seconds/microseconds since the Unix 'epoch' (January 1, 1970). It does > > > not care about timezones at all, and is not affected by timezones or > > > time shifts. In other words, it returns absolute time, not local time. > > <snip> > > > Here you clearly see that gettimeofday() is directly connected with the > > local time on the computer. On the other hand, CLOCK_MONOTONIC is not. > > That is what you want to use. Or am I wrong ? > > The manpage for gettimeofday(2) returns this nugget, which is probably > explains the problem on your system: > > Under Linux there is some peculiar 'warp clock' semantics associated > to the settimeofday system call if on the very first call (after booting) > that has a non-NULL tz argument, the tv argument is NULL and the > tz_minuteswest field is non-zero. In such a case it is assumed that the > CMOS clock is on local time, and that it has to be incremented by this > amount to get UTC system time. No doubt it is a bad idea to use this > feature. > > No doubt when you set up your system, you opted to have the clock set to > local time instead of UTC. Systems which are set to dual boot with Windows > typically have their clocks set to local time (because that's what Windows > uses), while servers (which need not this weirdness) should have their > hardware clocks set to UTC.
Your right. My system was not set to UTC. After a short trip into "sysinstall" the "Time Zone" is now set to UTC. Now I also see that "date" adjusts automatically on the 25th of March 2007, while "time()" does not increment by an hour. Thanks. > > It is further instructive that if you read the libc source to *BSD, you > will find that time(3) is defined by calling gettimeofday(2) with a NULL > second argument. Ok. --HPS _______________________________________________ --Bandwidth and Colocation provided by Easynews.com -- asterisk-dev mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-dev
