fix(parity): receiver temp-dir confinement, server I/O floor, delete budget
Address review findings on feat/rsync-parity: - confine --temp-dir below the receive root (reject absolute/.. like backup-dir/partial-dir); keep EXDEV non-atomic fallback - floor server session I/O deadlines at SERVER_IO_TIMEOUT_SEC (60s) and install it on the socket layer at startup (slow-loris) - charge each --delete-missing-args directory removal once and clamp the extras-walk remaining budget so it can never underflow past --max-delete - normalize --compress-choice=auto to zstd client-side and accept it on receive so auto transfers no longer fail - map received --max-alloc=0 to MAX_SERVER_ALLOC (receive path only) - zero File.dest_state; include log-file-format in report_dest_info; add STATUS_DELETE_LIMIT name; recognize --skip-compress as a separate-value option; OOM-guard send_list_only root entry; drop the dead -M= branch; record the bare relative protected prefix for -R size-prunes in both scanners; refresh delete-manifest comment - pin the rsync tarball sha256 and bump integrator image to v11 Tests: temp-dir rejection/relative/cross-device, server timeout floor, delete-missing dir budget regression, compress-choice=auto e2e, max-alloc=0 receive mapping, dest_state, report_dest_info modes, skip-compress dash value, -M short forms, -R root size-prune mirror protection (rsync 3.4.1 confirmed).
This commit is contained in:
+4
-3
@@ -328,9 +328,10 @@ typedef struct Config {
|
||||
char* tls_key;
|
||||
char* tls_ca;
|
||||
/* --timeout: per-message I/O deadline in seconds. 0 (rsync's default)
|
||||
* disables the deadline entirely on both the socket layer and the protocol
|
||||
* layer; a positive value sets it. See protocol_session_set_io_timeout and
|
||||
* tcp_set_timeouts. */
|
||||
* disables the deadline entirely on the client's own socket and protocol
|
||||
* layers; a positive value sets it. A server session never inherits the
|
||||
* disabled value: it applies the SERVER_IO_TIMEOUT_SEC floor (see
|
||||
* protocol_server_io_timeout_sec and tcp_set_timeouts). */
|
||||
int timeout;
|
||||
/* --contimeout: connect()/accept timeout in seconds (rsync's default 60);
|
||||
* 0 disables it. Transport layer only. */
|
||||
|
||||
Reference in New Issue
Block a user