Port-macppc archive


netatalk 3.0.4 timestamps - NetBSD 6.0

My trouble with timestamps in Netatalk appears to be a problem with the
initialization of the client connection.

>From what I read in the AFP spec, the timestamps are seconds from
Jan 1, 2000.  My timestamps on all the files and directories are
all off about 13.5 years, which just happens to be value of the the year
and date today (May, 2013)

After digging around in the code a bit, I don't see anything that is
broken in the timestamps on individual files.

I did notice in the AFP spec that the client gets a timestamp from
the server and uses that to adjust the times:

"AFP represents date-time values with four-byte signed integers. The 
FPGetSrvrParms command allows the AFP client to obtain the current value of the 
server's clock. At login time, the AFP client should read this value (s) and 
the value of the AFP client's clock (w) and computer the offset between these 
values (s - w). All subsequent date-time values read from the server should be 
adjusted by adding this offset to the date-time. This adjustment will correct 
for differences between the two clocks and will ensure that all computers see a 
consistent time base."

Unfortunately, I have not had much sucess in finding the precise
code that handles the FPGetSrvrParams message, and the gettimeofday()
handling code is full of conditionals do it's slow going.

I have also noticed some complaints in the config.log:
        config.log:configure:13062: checking for gettimeofday
warning: warning: reference to compatibility gettimeofday(); include 
<sys/time.h> to generate correct reference

My current theory is that the FPGetSrvrParams is returning the wrong info,
(aka zero) and the client is "adjusting" my timestamps accordingly.

Any help in the form of pointers and insight to how the code
works would save me time, and might make it possible for me to
fix this.



Home | Main Index | Thread Index | Old Index