Read a 4-byte mtime as unsigned (old-protocol).
authorWayne Davison <wayne@opencoder.net>
Sat, 1 Oct 2022 15:23:47 +0000 (08:23 -0700)
committerWayne Davison <wayne@opencoder.net>
Sun, 2 Oct 2022 16:54:54 +0000 (09:54 -0700)
commitfdf5e577f59cf709eb3559137ce3be1431522d07
treee70283988e21936f6b7a81b68121ad92ba859326
parent19bd0dd34022d0b8e2ae45f12029602f129c28c1
Read a 4-byte mtime as unsigned (old-protocol).

When conversing with a protocol 29 or earlier rsync, the modtime values
are arriving as 4-byte integers.  This change interprets these short
values as unsigned integers, allowing the time that can be conveyed to
range from 1-Jan-1970 to 7-Feb-2106 instead of the signed range of
13-Dec-1901 to 19-Jan-2038.  Given that we are fast approaching 2038,
any old-protocol transfers will be better served using the unsigned
range rather than the signed.

It is important to keep in mind that protocol 30 & 31 convey the full
8-byte mtime value (plus nanoseconds), allowing for a huge span of time
that is not affected by this change.
flist.c
io.c