mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-05-25 07:15:35 -04:00
Compare commits
6 Commits
v3.0.3pre3
...
v3.0.3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
db8f3f7350 | ||
|
|
85fd80ce10 | ||
|
|
a24d64bfaa | ||
|
|
33cc92a63a | ||
|
|
5e7f63f0bf | ||
|
|
8bd77e7098 |
13
NEWS
13
NEWS
@@ -1,4 +1,4 @@
|
||||
NEWS for rsync 3.0.3 (UNRELEASED)
|
||||
NEWS for rsync 3.0.3 (29 Jun 2008)
|
||||
Protocol: 30 (unchanged)
|
||||
Changes since 3.0.2:
|
||||
|
||||
@@ -39,11 +39,14 @@ Changes since 3.0.2:
|
||||
- Fixed a problem with how a destination path with a trailing slash or
|
||||
a trailing dot-dir was compared against the daemon excludes.
|
||||
|
||||
- Fixed the sending of large (size > 16GB) files when talking to an older
|
||||
rsync (protocols < 30): we now use a compatible block size limit.
|
||||
|
||||
- If a file's length is so huge that we overflow a checksum buffer count
|
||||
(i.e. several hundred TB), warn the user and avoid sending an invalid
|
||||
checksum struct over the wire.
|
||||
|
||||
- If an source arg is excluded, --relative no longer adds the excluded
|
||||
- If a source arg is excluded, --relative no longer adds the excluded
|
||||
arg's implied dirs to the transfer. This fix also made the exclude
|
||||
check happen in the better place in the sending code.
|
||||
|
||||
@@ -59,6 +62,12 @@ Changes since 3.0.2:
|
||||
|
||||
- The description of the --inplace option was improved.
|
||||
|
||||
EXTRAS:
|
||||
|
||||
- Added a new script in the support directory, deny-rsync, which allows
|
||||
an admin to (temporarily) replace the rsync command with a script that
|
||||
sends an error message to the remote client via the rsync protocol.
|
||||
|
||||
DEVELOPER RELATED:
|
||||
|
||||
- Fixed a testcase failure if the tests are run as root and made some
|
||||
|
||||
2
OLDNEWS
2
OLDNEWS
@@ -2745,7 +2745,7 @@ Changes since 2.4.6:
|
||||
|
||||
Partial Protocol History
|
||||
RELEASE DATE VER. DATE OF COMMIT* PROTOCOL
|
||||
?? ??? 2008 3.0.3 30
|
||||
29 Jun 2008 3.0.3 30
|
||||
08 Apr 2008 3.0.2 30
|
||||
03 Apr 2008 3.0.1 30
|
||||
01 Mar 2008 3.0.0 11 Nov 2006 30
|
||||
|
||||
@@ -5,7 +5,7 @@ AC_CONFIG_SRCDIR([byteorder.h])
|
||||
AC_CONFIG_HEADER(config.h)
|
||||
AC_PREREQ(2.59)
|
||||
|
||||
RSYNC_VERSION=3.0.3pre3
|
||||
RSYNC_VERSION=3.0.3
|
||||
AC_SUBST(RSYNC_VERSION)
|
||||
AC_MSG_NOTICE([Configuring rsync $RSYNC_VERSION])
|
||||
|
||||
|
||||
12
generator.c
12
generator.c
@@ -763,11 +763,12 @@ static void sum_sizes_sqroot(struct sum_struct *sum, int64 len)
|
||||
else if (len <= BLOCK_SIZE * BLOCK_SIZE)
|
||||
blength = BLOCK_SIZE;
|
||||
else {
|
||||
int32 max_blength = protocol_version < 30 ? OLD_MAX_BLOCK_SIZE : MAX_BLOCK_SIZE;
|
||||
int32 c;
|
||||
int cnt;
|
||||
for (c = 1, l = len, cnt = 0; l >>= 2; c <<= 1, cnt++) {}
|
||||
if (cnt >= 31 || c >= MAX_BLOCK_SIZE)
|
||||
blength = MAX_BLOCK_SIZE;
|
||||
if (c < 0 || c >= max_blength)
|
||||
blength = max_blength;
|
||||
else {
|
||||
blength = 0;
|
||||
do {
|
||||
@@ -1952,9 +1953,12 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
|
||||
if (read_batch)
|
||||
goto cleanup;
|
||||
|
||||
if (statret != 0 || whole_file || sx.st.st_size <= 0)
|
||||
if (statret != 0 || whole_file)
|
||||
write_sum_head(f_out, NULL);
|
||||
else {
|
||||
else if (sx.st.st_size <= 0) {
|
||||
write_sum_head(f_out, NULL);
|
||||
close(fd);
|
||||
} else {
|
||||
if (generate_and_send_sums(fd, sx.st.st_size, f_out, f_copy) < 0) {
|
||||
rprintf(FWARNING,
|
||||
"WARNING: file is too large for checksum sending: %s\n",
|
||||
|
||||
3
io.c
3
io.c
@@ -1354,6 +1354,7 @@ int read_vstring(int f, char *buf, int bufsize)
|
||||
* called by both the sender and the receiver. */
|
||||
void read_sum_head(int f, struct sum_struct *sum)
|
||||
{
|
||||
int32 max_blength = protocol_version < 30 ? OLD_MAX_BLOCK_SIZE : MAX_BLOCK_SIZE;
|
||||
sum->count = read_int(f);
|
||||
if (sum->count < 0) {
|
||||
rprintf(FERROR, "Invalid checksum count %ld [%s]\n",
|
||||
@@ -1361,7 +1362,7 @@ void read_sum_head(int f, struct sum_struct *sum)
|
||||
exit_cleanup(RERR_PROTOCOL);
|
||||
}
|
||||
sum->blength = read_int(f);
|
||||
if (sum->blength < 0 || sum->blength > MAX_BLOCK_SIZE) {
|
||||
if (sum->blength < 0 || sum->blength > max_blength) {
|
||||
rprintf(FERROR, "Invalid block length %ld [%s]\n",
|
||||
(long)sum->blength, who_am_i());
|
||||
exit_cleanup(RERR_PROTOCOL);
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
Summary: A fast, versatile, remote (and local) file-copying tool
|
||||
Name: rsync
|
||||
Version: 3.0.3
|
||||
%define fullversion %{version}pre3
|
||||
Release: 0.1.pre3
|
||||
%define srcdir src-previews
|
||||
%define fullversion %{version}
|
||||
Release: 1
|
||||
%define srcdir src
|
||||
Group: Applications/Internet
|
||||
Source0: http://rsync.samba.org/ftp/rsync/%{srcdir}/rsync-%{fullversion}.tar.gz
|
||||
#Source1: http://rsync.samba.org/ftp/rsync/%{srcdir}/rsync-patches-%{fullversion}.tar.gz
|
||||
@@ -66,8 +66,8 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_mandir}/man5/rsyncd.conf.5*
|
||||
|
||||
%changelog
|
||||
* Sun Jun 22 2008 Wayne Davison <wayned@samba.org>
|
||||
Released 3.0.3pre3.
|
||||
* Sun Jun 29 2008 Wayne Davison <wayned@samba.org>
|
||||
Released 3.0.3.
|
||||
|
||||
* Fri Mar 21 2008 Wayne Davison <wayned@samba.org>
|
||||
Added installation of /etc/xinetd.d/rsync file and some commented-out
|
||||
|
||||
3
rsync.h
3
rsync.h
@@ -129,6 +129,9 @@
|
||||
#define IO_BUFFER_SIZE (4092)
|
||||
#define MAX_BLOCK_SIZE ((int32)1 << 17)
|
||||
|
||||
/* For compatibility with older rsyncs */
|
||||
#define OLD_MAX_BLOCK_SIZE ((int32)1 << 29)
|
||||
|
||||
#define IOERR_GENERAL (1<<0) /* For backward compatibility, this must == 1 */
|
||||
#define IOERR_VANISHED (1<<1)
|
||||
#define IOERR_DEL_LIMIT (1<<2)
|
||||
|
||||
4
rsync.yo
4
rsync.yo
@@ -1,5 +1,5 @@
|
||||
mailto(rsync-bugs@samba.org)
|
||||
manpage(rsync)(1)(22 Jun 2008)()()
|
||||
manpage(rsync)(1)(29 Jun 2008)()()
|
||||
manpagename(rsync)(a fast, versatile, remote (and local) file-copying tool)
|
||||
manpagesynopsis()
|
||||
|
||||
@@ -2882,7 +2882,7 @@ url(http://rsync.samba.org/)(http://rsync.samba.org/)
|
||||
|
||||
manpagesection(VERSION)
|
||||
|
||||
This man page is current for version 3.0.3pre3 of rsync.
|
||||
This man page is current for version 3.0.3 of rsync.
|
||||
|
||||
manpagesection(INTERNAL OPTIONS)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
mailto(rsync-bugs@samba.org)
|
||||
manpage(rsyncd.conf)(5)(22 Jun 2008)()()
|
||||
manpage(rsyncd.conf)(5)(29 Jun 2008)()()
|
||||
manpagename(rsyncd.conf)(configuration file for rsync in daemon mode)
|
||||
manpagesynopsis()
|
||||
|
||||
@@ -700,7 +700,7 @@ url(http://rsync.samba.org/)(http://rsync.samba.org/)
|
||||
|
||||
manpagesection(VERSION)
|
||||
|
||||
This man page is current for version 3.0.3pre3 of rsync.
|
||||
This man page is current for version 3.0.3 of rsync.
|
||||
|
||||
manpagesection(CREDITS)
|
||||
|
||||
|
||||
36
support/deny-rsync
Executable file
36
support/deny-rsync
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
# Send an error message via the rsync-protocol to a non-daemon client rsync.
|
||||
#
|
||||
# Usage: deny-rsync "message"
|
||||
|
||||
protocol_version=29
|
||||
exit_code=4 # same as a daemon that refuses an option
|
||||
|
||||
# e.g. byte_escape 29 => \035
|
||||
function byte_escape {
|
||||
echo -ne "\\0$(printf "%o" $1)"
|
||||
}
|
||||
|
||||
msg="$1"
|
||||
if [ "${#msg}" -gt 254 ]; then
|
||||
# truncate a message that is too long for this naive script to handle
|
||||
msg="${msg:0:251}..."
|
||||
fi
|
||||
msglen=$(( ${#msg} + 1 )) # add 1 for the newline we append below
|
||||
|
||||
# Send protocol version. All numbers are LSB-first 4-byte ints.
|
||||
echo -ne "$(byte_escape $protocol_version)\\000\\000\\000"
|
||||
|
||||
# Send a zero checksum seed.
|
||||
echo -ne "\\000\\000\\000\\000"
|
||||
|
||||
# The following is equivalent to rprintf(FERROR_XFER, "%s\n", $msg).
|
||||
# 1. Message header: ((MPLEX_BASE + FERROR_XFER) << 24) + $msglen.
|
||||
echo -ne "$(byte_escape $msglen)\\000\\000\\010"
|
||||
# 2. The actual data.
|
||||
echo -E "$msg"
|
||||
|
||||
# Make sure the client gets our message, not a write failure.
|
||||
sleep 1
|
||||
|
||||
exit $exit_code
|
||||
Reference in New Issue
Block a user