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.
Add safety check for local --remove-source-files. A local_server copy now includes the dev+ino info from the destination file so that the sender can make sure that it is not going to delete the destination file. Fixes mistakes such as: rsync -aiv --remove-source-files dir .
Fix handling of daemon module names in file-list verification; convert some while loops to for loops.
Handle files-from args that span 2 buffers.
Some extra file-list safety checks.
Add debugging comment about read_buf_().
Preparing for release of 3.2.4pre1
Time-limit options are not being checked enough (#179) The `--stop-at`, `--stop-after`, and `--time-limit`` options should have their limit checked when receiving and sending data, not just when receiving. Fixes #177.
Use mallinfo2, when available, and use %zd for size_t values on C99. An exhanced version of pull request #265.
Allow the generator's msg iobuf to get bigger too.
Change daemon variable & simplify some option code - Rename daemon_over_rsh -> daemon_connection since it is also used to indicate if a non-rsh daemon connection is active. - Move the daemon-over-rsh exception out of server_options() to the one caller that needs that behavior. - Don't allow noop_io_until_death() to be short-circuited when talking to a daemon over a socket, because it can't send errors via stderr.
Improve error output for local & remote-shell xfers
Add the --stop-after & --stop-at options.
Some memory allocation improvements - All the memory-allocation macros now auto-check for failure and exit with a failure message that incudes the caller's file and lineno info. This includes strdup(). - Added the `--max-alloc=SIZE` option to be able to override the memory allocator's sanity-check limit. It defaults to 1G (as before). Fixes bugzilla bug 12769.
Output who_am_i() info in all rsyserr() messages.
Some indentation fixes.
Avoid a deadlock due to huge amounts of verbose messages. Allow the receiver to increase their iobuf.msg xbuf if it fills up. This ensures that the receiver will never block trying to output a message, and thus it will always drain the data from the sender and keep the whole thing from clogging up.
Avoid noop_io_until_death() if --msgs2stderr was specified.
Use MSG_FLUSH in a couple more spots.
Correctly send last error to sender