- - The rsync daemon-over-ssh code now looks for SSH_CONNECTION and
- SSH2_CLIENT in addition to SSH_CLIENT to figure out the IP address.
-
- - Added the --checksum-seed=N option for advanced users.
-
- - Batch writing/reading has a brand-new implementation that is simpler,
- fixes a few weird problems with the old code (such as no longer
- sprinkling the batch files into different dirs or even onto different
- systems), and is much less intrusive into the code (making it easier
- to maintain for the future). The new code generates just one data
- file instead of three, which makes it possible to read the batch via
- stdin. Also, the old requirement of using the same fixed checksum-
- seed for all batch processing has been removed.
-
- - If an rsync daemon has a module set with "list = no" (which hides its
- presence in the list of available modules), a user that fails to
- authenticate gets the same "unknown module" error that they would get
- if the module were actually unknown (while still logging the real
- error to the daemon's log file). This prevents fishing for module
- names.
-
- - The daemon's "refuse options" config item now allows you to match
- option names using wildcards and/or the single-letter option names.
-
- INTERNAL:
-
- - Some cleanup in the exclude code has saved some per-exclude memory
- and made the code easier to maintain.
-
- - Improved the argv-overflow checking for a remote command that has
- a lot of args.
-
- - Use rsyserr() in the various places that were still calling
- rprintf() with strerror() as an arg.
-
- - If an rsync daemon is listening on multiple sockets (to handle both
- IPv4 and IPv6 to a single port), we now close all the unneeded file
- handles after we accept a connection (we used to close just one of
- them).
-
- - Optimized the handling of larger block sizes (rsync used to slow to
- a crawl if the block size got too large). Also cap the block size.
-
- - Optimized away a loop in hash_search().