Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Fixes bug 10163.
|
|
The cleanup code will try to flush the output buffer in some
circumstances, which is not valid if we're handling an async signal
(since it might have interrupted some partial I/O in the main thread).
These signals now set a flag and try to let the main I/O handler take
care of the exit strategy. Fixes a protocol error that could happen
when trying to exit after a kill signal.
|
|
- If iconv() returns EINVAL or EILSEQ and the error is being ignored, make
sure that there is room in the output buffer to store the erroneous char.
- When accepting an erroneous char, be sure to break if there are no more
input characters (without calling iconv() with a zero input length).
|
|
|
|
|
|
|
|
The code now avoids any special internal meaning for uid/gid -1, which
allows it to be mapped to a better value (use 4294967295 instead of -1
as the ID to map). Replaced atol() with something than can return a
value > 0x7FFFFFFF and that will error-out if the value overflows. If
chown() is called with a uid or gid of -1, complain that the ID is not
settable and signal a transfer error. Fixes bug 6936.
|
|
|
|
|
|
|
|
|
|
Fixes part of the problem in bug 5147.
|
|
- The receiver now sends keep-alive messages to the generator
when it is actively doing work and hasn't sent anything
recently. This ensures that the generator won't timeout
if the receiver is working hard.
- The perform_io() code has improved keep-alive participation.
- Allow the sender to send some keep-alive messages, which
ensures that if it is in a lull, it can probe the socket.
|
|
The receiving side also switches timeout handling from the receiver to
the generator, which obviates the need for the sender to send any
keep-alive messages at all (for protocol 31 and beyond). Given this
setup, all keep-alive messages are now sent as empty MSG_DATA messages,
with MSG_NOOP messages only being understood and (when necessary) acted
upon to forward a keep-alive event to an older receiver. This is both
safer and more compatible with older versions.
|
|
|
|
|
|
all the time (we only waste from 1-3 bytes some of the time).
|
|
|
|
|
|
Files-from data is now sent as multiplexed I/O so that it can mingle
with any messages (such as debug output). Requires protocol 31.
Protocol 31 no longer disables output verbosity in a couple instances
that used to cause protocol issues.
Got rid of MSG_* messages that have implied raw data that follows after
them. We instead send a negative index value as a part of the raw data
stream, which is guaranteed to be output together with the following
data. This only affects the (in-progress) protocol 31 and the (self-
contained) communication stream from the receiver to the generator.
Added --debug=IO and improved --debug=FLIST. Some --debug=IO output
requires --msgs2stderr to be used to see it (i.e. sending a message
about sending a message would send another message, ad infinitum).
|
|
|
|
|
|
|
|
- Backups do not interfere with an atomic update (when possible).
- Backing up a file will remove a directory that is in the way
and visa versa.
- Unify the backup-dir and non-backup-dir code in backup.c.
- Improved the backup tests a little bit.
|
|
|
|
|
|
|
|
I/O error for the incremental directory that generated the error. The
PROTOCOL_VERSION was bumped to 31 to implement this.
|
|
if the index isn't found.
|
|
code will not delete in a directory prior to receiving an I/O error
for that directory (or not receiving it, as the case may be).
|
|
lone --info=misc2 message into a --debug=iconv message so that
all iconv info will be output when requesting iconv debugging.
|
|
messages to be seen in a situation where rsync is dying (as long
as stderr is a viable output method for the remote rsync).
|
|
fine-grained output control (in addition to the coarse -v).
|
|
handle when --link-dest is also used.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tell the client if the server can set the times on a symlink (both
the server->client byte and the client->server use of -e). Make use
of this info to allow the proper output of the 't' flag when rsync
can set the time on a symlink (and we're talking protocol >= 30).
Added output of "[no] symtimes" info in the --version message.
Fixed the itemize.test so that it works when rsync believes that it
can set the time of a symlink, but it can't really do it.
|
|
|
|
transfer succeeded, but the final rename failed.
|
|
The sending side now has a sorted file-list in iconv mode so that it
can output progress in sorted order. Simplified the over-the-wire
index values to ensure both sides will always agree on the values.
Optimized the allocation of the dir_flist->sorted array on the
receiving side with --iconv and incremental recursion.
|
|
|
|
value. Also fixed the removal of rsync-internal xattr values on the
destination files when we aren't copying rsync-internal xattr values.
|
|
transfer errors, normal errors, and warnings. New messages are
translated into old FERROR/FINFO categories for older protocols.
|
|
at least).
|
|
|