diff -u -r --new-file --exclude=CVS rsync-2.0.1/README rsync-2.0.2/README --- rsync-2.0.1/README Thu May 14 17:07:50 1998 +++ rsync-2.0.2/README Fri May 15 15:43:12 1998 @@ -57,6 +57,9 @@ --exclude-from FILE exclude files listed in FILE --suffix SUFFIX override backup suffix --version print version number + --daemon run as a rsync daemon + --config FILE specify alternate rsyncd.conf file + --port PORT specify alternate rsyncd port number SETUP @@ -81,6 +84,14 @@ Once built put a copy of rsync in your search path on the local and remote systems (or use "make install"). That's it! +RSYNC SERVERS +------------- + +rsync can also talk to "rsync servers" which can provide anonymous or +authenticated rsync. See the rsync.conf(5) man page for details on how +to setup a rsync server. See the rsync(1) man page for info on how to +connect to a rsync server. + MAILING LIST ------------ @@ -138,7 +149,8 @@ AVAILABILITY ------------ -The main ftp site for rsync is ftp://samba.anu.edu.au/pub/rsync +The main ftp site for rsync is ftp://samba.anu.edu.au/pub/rsync +This is also available as rsync://samba.anu.edu.au/rsyncftp/ Mirrors are available at: diff -u -r --new-file --exclude=CVS rsync-2.0.1/cvs.log rsync-2.0.2/cvs.log --- rsync-2.0.1/cvs.log Fri May 15 11:19:51 1998 +++ rsync-2.0.2/cvs.log Fri May 15 17:37:07 1998 @@ -3774,3 +3774,79 @@ Log Message: preparing for release of 2.0.1 + +**************************************** +Date: Friday May 15, 1998 @ 15:37 +Author: tridge + +Update of /data/cvs/rsync +In directory samba:/tmp/cvs-serv23211 + +Modified Files: + rsync.1 rsync.yo rsyncd.conf.5 rsyncd.conf.yo +Log Message: +- added some notes about encryption and authentication to the man +pages + +- documented the RSYNC_PASSWORD environment variable + + + + + +**************************************** +Date: Friday May 15, 1998 @ 15:42 +Author: tridge + +Update of /data/cvs/rsync +In directory samba:/tmp/cvs-serv25521 + +Modified Files: + README +Log Message: +updated the README a bit + + + +**************************************** +Date: Friday May 15, 1998 @ 17:11 +Author: tridge + +Update of /data/cvs/rsync +In directory samba:/tmp/cvs-serv1718 + +Modified Files: + io.c +Log Message: +fixed a select bug which caused rsync to use far more cpu time than +necessary on the server + + + +**************************************** +Date: Friday May 15, 1998 @ 17:34 +Author: tridge + +Update of /data/cvs/rsync +In directory samba:/tmp/cvs-serv5877 + +Modified Files: + flist.c io.c rsync.h +Log Message: +added write buffering during the file list sending. This makes things +a bit more efficient (less system calls) + + + +**************************************** +Date: Friday May 15, 1998 @ 17:37 +Author: rsync-bu + +Update of /data/cvs/rsync +In directory samba:/data/people/rsync-bugs/rsync + +Modified Files: + version.h +Log Message: +preparing for release of 2.0.2 + diff -u -r --new-file --exclude=CVS rsync-2.0.1/flist.c rsync-2.0.2/flist.c --- rsync-2.0.1/flist.c Thu May 14 17:07:51 1998 +++ rsync-2.0.2/flist.c Fri May 15 17:35:41 1998 @@ -573,6 +573,10 @@ flist->malloced); if (!flist->files) out_of_memory("send_file_list"); + if (f != -1) { + io_start_buffering(f); + } + for (i=0;i= 17 then send the io_error flag */ if (f != -1 && remote_version >= 17) { write_int(f, io_error); + } + + if (f != -1) { + io_end_buffering(f); + write_flush(f); } if (verbose > 2) diff -u -r --new-file --exclude=CVS rsync-2.0.1/io.c rsync-2.0.2/io.c --- rsync-2.0.1/io.c Thu May 14 17:07:51 1998 +++ rsync-2.0.2/io.c Fri May 15 17:35:41 1998 @@ -148,7 +148,8 @@ tv.tv_sec = io_timeout; tv.tv_usec = 0; - if (select(fd+1, &fds, NULL, NULL, &tv) != 1) { + if (select(fd+1, &fds, NULL, NULL, + io_timeout?&tv:NULL) != 1) { check_timeout(); } } @@ -300,7 +301,7 @@ } -static int writefd(int fd,char *buf,int len) +static int writefd_unbuffered(int fd,char *buf,int len) { int total = 0; fd_set w_fds, r_fds; @@ -374,6 +375,58 @@ return total; } +static char *io_buffer; +static int io_buffer_count; + +void io_start_buffering(int fd) +{ + io_buffer = (char *)malloc(IO_BUFFER_SIZE); + if (!io_buffer) out_of_memory("writefd"); + io_buffer_count = 0; +} + +void io_end_buffering(int fd) +{ + if (io_buffer_count) { + if (writefd_unbuffered(fd, io_buffer, + io_buffer_count) != + io_buffer_count) { + rprintf(FERROR,"write failed\n"); + exit_cleanup(1); + } + io_buffer_count = 0; + } + free(io_buffer); + io_buffer = NULL; +} + +static int writefd(int fd,char *buf,int len1) +{ + int len = len1; + + if (!io_buffer) return writefd_unbuffered(fd, buf, len); + + while (len) { + int n = MIN(len, IO_BUFFER_SIZE-io_buffer_count); + if (n > 0) { + memcpy(io_buffer+io_buffer_count, buf, n); + buf += n; + len -= n; + io_buffer_count += n; + } + + if (io_buffer_count == IO_BUFFER_SIZE) { + if (writefd_unbuffered(fd, io_buffer, + io_buffer_count) != + io_buffer_count) { + return -1; + } + io_buffer_count = 0; + } + } + + return len1; +} void write_int(int f,int32 x) diff -u -r --new-file --exclude=CVS rsync-2.0.1/rsync.1 rsync-2.0.2/rsync.1 --- rsync-2.0.1/rsync.1 Fri May 15 11:03:11 1998 +++ rsync-2.0.2/rsync.1 Fri May 15 15:43:12 1998 @@ -153,6 +153,11 @@ if you specify no path name on the remote server then the list of accessible paths on the server will be shown\&. .PP +Some paths on the remote server may require authentication\&. If so then +you will receive a password prompt when you connect\&. You can avoid the +password prompt by setting the environment variable RSYNC_PASSWORD to +the password you want to use\&. This may be useful when scripting rsync\&. +.PP .SH "RUNNING AN RSYNC SERVER" .PP An rsync server is configured using a config file which by default is diff -u -r --new-file --exclude=CVS rsync-2.0.1/rsync.h rsync-2.0.2/rsync.h --- rsync-2.0.1/rsync.h Thu May 14 17:07:51 1998 +++ rsync-2.0.2/rsync.h Fri May 15 17:35:41 1998 @@ -51,6 +51,7 @@ #define WRITE_SIZE (32*1024) #define CHUNK_SIZE (32*1024) #define MAX_MAP_SIZE (4*1024*1024) +#define IO_BUFFER_SIZE (4096) #define MAX_ARGS 1000 diff -u -r --new-file --exclude=CVS rsync-2.0.1/rsync.yo rsync-2.0.2/rsync.yo --- rsync-2.0.1/rsync.yo Thu May 14 16:57:50 1998 +++ rsync-2.0.2/rsync.yo Fri May 15 15:43:12 1998 @@ -139,6 +139,11 @@ list of accessible paths on the server will be shown. ) +Some paths on the remote server may require authentication. If so then +you will receive a password prompt when you connect. You can avoid the +password prompt by setting the environment variable RSYNC_PASSWORD to +the password you want to use. This may be useful when scripting rsync. + manpagesection(RUNNING AN RSYNC SERVER) An rsync server is configured using a config file which by default is diff -u -r --new-file --exclude=CVS rsync-2.0.1/rsyncd.conf.5 rsync-2.0.2/rsyncd.conf.5 --- rsync-2.0.1/rsyncd.conf.5 Fri May 15 11:03:11 1998 +++ rsync-2.0.2/rsyncd.conf.5 Fri May 15 15:43:12 1998 @@ -245,6 +245,23 @@ The default is no "hosts deny" option, which means all hosts can connect\&. .IP .PP +.SH "AUTHENTICATION STRENGTH" +.PP +The authentication protocol used in rsync is a 128 bit MD4 based +challenge response system\&. Although I believe that no one has ever +demonstrated a brute-force break of this sort of system you should +realise that this is not a "military strength" authentication system\&. +It should be good enough for most purposes but if you want really top +quality security then I recommend that you run rsync over ssh\&. +.PP +Also note that the rsync server protocol does not currently provide any +encryption of the data that is transferred over the link\&. Only +authentication is provided\&. Use ssh as the transport if you want +encryption\&. +.PP +Future versions of rsync may support SSL for better authentication and +encryption, but that is still being investigated\&. +.PP .SH "EXAMPLES" .PP A simple rsyncd\&.conf file that allow anonymous rsync to a ftp area at diff -u -r --new-file --exclude=CVS rsync-2.0.1/rsyncd.conf.yo rsync-2.0.2/rsyncd.conf.yo --- rsync-2.0.1/rsyncd.conf.yo Fri May 15 11:03:11 1998 +++ rsync-2.0.2/rsyncd.conf.yo Fri May 15 15:43:12 1998 @@ -227,6 +227,23 @@ enddit() +manpagesection(AUTHENTICATION STRENGTH) + +The authentication protocol used in rsync is a 128 bit MD4 based +challenge response system. Although I believe that no one has ever +demonstrated a brute-force break of this sort of system you should +realise that this is not a "military strength" authentication system. +It should be good enough for most purposes but if you want really top +quality security then I recommend that you run rsync over ssh. + +Also note that the rsync server protocol does not currently provide any +encryption of the data that is transferred over the link. Only +authentication is provided. Use ssh as the transport if you want +encryption. + +Future versions of rsync may support SSL for better authentication and +encryption, but that is still being investigated. + manpagesection(EXAMPLES) A simple rsyncd.conf file that allow anonymous rsync to a ftp area at diff -u -r --new-file --exclude=CVS rsync-2.0.1/version.h rsync-2.0.2/version.h --- rsync-2.0.1/version.h Fri May 15 11:19:40 1998 +++ rsync-2.0.2/version.h Fri May 15 17:36:58 1998 @@ -1 +1 @@ -#define VERSION "2.0.1" +#define VERSION "2.0.2"