Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ OBJS1_NO_MAIN=flist.o rsync.o generator.o receiver.o cleanup.o sender.o exclude.
OBJS1=$(OBJS1_NO_MAIN) main.o
OBJS2=options.o io.o compat.o hlink.o token.o uidlist.o socket.o hashtable.o \
usage.o fileio.o batch.o clientname.o chmod.o acls.o xattrs.o
OBJS3=progress.o pipe.o @MD5_ASM@ @ROLL_SIMD@ @ROLL_ASM@
OBJS3=progress.o pipe.o niceness.o @MD5_ASM@ @ROLL_SIMD@ @ROLL_ASM@
DAEMON_OBJ = params.o loadparm.o clientserver.o access.o connection.o authenticate.o
popt_OBJS= popt/popt.o popt/poptconfig.o \
popt/popthelp.o popt/poptparse.o popt/poptint.o
Expand Down
4 changes: 4 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
excludes.

### ENHANCEMENTS:
- Added `--nice` to adjust CPU and I/O scheduling priorities for local and
remote rsync processes. Daemon clients and rrsync cannot raise server-side
priorities.
- Human-readable output now uses dynamic precision to show three significant
digits and appends `i` to binary unit suffixes. `--progress` uses the same
formatter for transfer rates and labels byte counts and rates with `B` and
Expand Down Expand Up @@ -73,6 +76,7 @@ test improvements.
- Updated platform tests and fleet-test coverage for the 3.5.0 fixes.

------------------------------------------------------------------------------

# NEWS for rsync 3.5.0 (13 Aug 2026)

## Changes in this version:
Expand Down
2 changes: 2 additions & 0 deletions clientserver.c
Original file line number Diff line number Diff line change
Expand Up @@ -1442,6 +1442,7 @@ int start_daemon(int f_in, int f_out)
* (when rsync is run by init and run by a remote shell). */
if (!load_config(0))
exit_cleanup(RERR_SYNTAX);
niceness_apply();

/* Bound the handshake before ANY peer input is read -- the PROXY-protocol
* header below is peer-supplied too, and was previously unbounded. An
Expand Down Expand Up @@ -1802,6 +1803,7 @@ int daemon_main(void)
exit_cleanup(RERR_SYNTAX);
}
set_dparams(0);
niceness_apply();

/* "proxy protocol = true" with no trusted-proxy list rejects every
* connection as an untrusted proxy peer (fail-closed). That is intended,
Expand Down
4 changes: 2 additions & 2 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ AC_CHECK_HEADERS(poll.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h
sys/acl.h acl/libacl.h attr/xattr.h sys/xattr.h sys/extattr.h dl.h \
popt.h popt/popt.h linux/falloc.h netinet/in_systm.h netgroup.h \
zlib.h xxhash.h openssl/md4.h openssl/md5.h zstd.h lz4.h sys/file.h \
sys/resource.h bsd/string.h idn2.h wchar.h)
sys/resource.h bsd/string.h idn2.h wchar.h linux/ioprio.h sys/syscall.h)
AC_CHECK_HEADERS([netinet/ip.h], [], [], [[#include <netinet/in.h>]])
AC_HEADER_MAJOR_FIXED

Expand Down Expand Up @@ -978,7 +978,7 @@ AC_CHECK_FUNCS(waitpid wait4 getcwd chown chmod lchmod mknod mkfifo fdopendir \
seteuid strerror putenv iconv_open locale_charset nl_langinfo getxattr \
extattr_get_link sigaction sigprocmask setattrlist getgrouplist \
initgroups utimensat futimens posix_fallocate attropen setvbuf nanosleep usleep \
setenv unsetenv mbrtowc)
setenv unsetenv mbrtowc setpriority)

dnl dirfd() is a macro or static inline on several systems (the BSDs), so the
dnl default AC_CHECK_FUNCS link probe -- which declares `char dirfd(void);` and
Expand Down
4 changes: 4 additions & 0 deletions main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1309,6 +1309,9 @@ void start_server(int f_in, int f_out, int argc, char *argv[])

if (protocol_version >= 23)
io_start_multiplex_out(f_out);
/* Priority diagnostics need the negotiated message channel.
* File-list work starts below. */
niceness_apply();
Comment thread
steadytao marked this conversation as resolved.
if (am_daemon && io_timeout && protocol_version >= 31)
send_msg_int(MSG_IO_TIMEOUT, io_timeout);

Expand Down Expand Up @@ -1344,6 +1347,7 @@ int client_run(int f_in, int f_out, pid_t pid, int argc, char *argv[])
int exit_code = 0, exit_code2 = 0;
char *local_name = NULL;

niceness_apply();
cleanup_child_pid = pid;
if (!read_batch) {
set_nonblocking(f_in);
Expand Down
Loading
Loading