See the file "instructions" (after applying this patch) for more info.
---- orig/Makefile.in 2005-07-07 23:11:07
+--- orig/Makefile.in 2005-11-07 04:29:00
+++ Makefile.in 2005-09-23 15:59:02
@@ -31,7 +31,7 @@ LIBOBJ=lib/wildmatch.o lib/compat.o lib/
ZLIBOBJ=zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o \
- main.o checksum.o match.o syscall.o log.o backup.o
+ main.o checksum.o match.o syscall.o log.o backup.o @EXTRA_OBJECT@
OBJS2=options.o flist.o io.o compat.o hlink.o token.o uidlist.o socket.o \
- fileio.o batch.o clientname.o
+ fileio.o batch.o clientname.o chmod.o
OBJS3=progress.o pipe.o
---- orig/cleanup.c 2005-03-05 18:58:38
+--- orig/cleanup.c 2005-11-10 16:58:36
+++ cleanup.c 2005-09-23 15:59:19
@@ -23,6 +23,7 @@
if (verbose > 2) {
rprintf(FINFO,"_exit_cleanup(code=%d, file=%s, line=%d): about to call exit(%d)\n",
---- orig/clientserver.c 2005-09-15 18:09:14
+--- orig/clientserver.c 2005-10-24 21:04:44
+++ clientserver.c 2005-09-23 15:59:36
-@@ -349,6 +349,9 @@ static int rsync_module(int f_in, int f_
- XFLG_ANCHORED2ABS | XFLG_OLD_PREFIXES);
+@@ -369,6 +369,9 @@ static int rsync_module(int f_in, int f_
+ XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES);
log_init();
+#ifdef HAVE_LIBODBC
+#endif
#ifdef HAVE_PUTENV
- s = lp_prexfer_exec(i);
-@@ -535,6 +538,9 @@ static int rsync_module(int f_in, int f_
+ if (*lp_prexfer_exec(i) || *lp_postxfer_exec(i)) {
+@@ -592,6 +595,9 @@ static int rsync_module(int f_in, int f_
rprintf(FLOG, "rsync %s %s from %s@%s (%s)\n",
am_sender ? "on" : "to",
request, auth_user, host, addr);
FN_LOCAL_BOOL(lp_ignore_errors, ignore_errors)
FN_LOCAL_BOOL(lp_ignore_nonreadable, ignore_nonreadable)
FN_LOCAL_BOOL(lp_list, list)
---- orig/log.c 2005-06-10 21:33:28
+--- orig/log.c 2005-10-26 16:49:08
+++ log.c 2005-09-23 16:01:13
-@@ -84,7 +84,7 @@ struct {
+@@ -86,7 +86,7 @@ struct {
/*
* Map from rsync error code to name, or return NULL.
*/
{
int i;
for (i = 0; rerr_names[i].name; i++) {
---- orig/main.c 2005-09-16 16:38:53
+--- orig/main.c 2005-11-12 20:13:05
+++ main.c 2005-09-23 16:01:22
-@@ -139,6 +139,9 @@ static void handle_stats(int f)
+@@ -159,6 +159,9 @@ static void handle_stats(int f)
if (am_daemon) {
log_exit(0, __FILE__, __LINE__);
if (f == -1 || !am_sender)
return;
}
---- orig/receiver.c 2005-09-16 05:41:02
+--- orig/receiver.c 2005-11-10 16:58:36
+++ receiver.c 2005-09-24 17:57:43
@@ -175,6 +175,10 @@ static int get_tmpname(char *fnametmp, c
if (maxname < 1) {
+}
+
+#endif /* SUPPORT_ACLS */
---- orig/backup.c 2005-06-10 21:33:27
+--- orig/backup.c 2005-11-10 16:58:36
+++ backup.c 2004-10-06 00:13:09
@@ -135,6 +135,7 @@ static int make_bak_dir(char *fullpath)
} else {
AC_CONFIG_FILES([Makefile lib/dummy zlib/dummy popt/dummy shconfig])
AC_OUTPUT
---- orig/flist.c 2005-11-07 04:29:01
+--- orig/flist.c 2005-11-10 16:58:36
+++ flist.c 2005-07-29 02:49:06
-@@ -960,6 +960,8 @@ static struct file_struct *send_file_nam
+@@ -961,6 +961,8 @@ static struct file_struct *send_file_nam
file = make_file(fname, flist, f == -2 ? SERVER_FILTERS : ALL_FILTERS);
if (!file)
return NULL;
maybe_emit_filelist_progress(flist->count + flist_count_offset);
-@@ -968,6 +970,10 @@ static struct file_struct *send_file_nam
+@@ -969,6 +971,10 @@ static struct file_struct *send_file_nam
if (file->basename[0]) {
flist->files[flist->count++] = file;
send_file_entry(file, f, base_flags);
if (f >= 0) {
/* Now send the uid/gid list. This was introduced in
* protocol version 15 */
---- orig/generator.c 2005-10-30 22:30:28
+--- orig/generator.c 2005-11-12 20:31:04
+++ generator.c 2005-05-12 23:34:00
-@@ -725,6 +725,10 @@ static void recv_generator(char *fname,
+@@ -744,6 +744,10 @@ static void recv_generator(char *fname,
if (set_perms(fname, file, statret ? NULL : &st, 0)
&& verbose && code && f_out != -1)
rprintf(code, "%s/\n", safe_fname(fname));
next;
}
---- orig/options.c 2005-11-07 04:29:01
+--- orig/options.c 2005-11-15 07:01:03
+++ options.c 2005-08-27 21:15:29
@@ -44,6 +44,7 @@ int keep_dirlinks = 0;
int copy_links = 0;
int preserve_perms = 0;
int preserve_devices = 0;
int preserve_uid = 0;
-@@ -187,6 +188,7 @@ static void print_rsync_version(enum log
+@@ -188,6 +189,7 @@ static void print_rsync_version(enum log
char const *got_socketpair = "no ";
char const *have_inplace = "no ";
char const *hardlinks = "no ";
char const *links = "no ";
char const *ipv6 = "no ";
STRUCT_STAT *dumstat;
-@@ -203,6 +205,10 @@ static void print_rsync_version(enum log
+@@ -204,6 +206,10 @@ static void print_rsync_version(enum log
hardlinks = "";
#endif
#ifdef SUPPORT_LINKS
links = "";
#endif
-@@ -217,9 +223,9 @@ static void print_rsync_version(enum log
+@@ -218,9 +224,9 @@ static void print_rsync_version(enum log
"Copyright (C) 1996-2005 by Andrew Tridgell and others\n");
rprintf(f, "<http://rsync.samba.org/>\n");
rprintf(f, "Capabilities: %d-bit files, %ssocketpairs, "
/* Note that this field may not have type ino_t. It depends
* on the complicated interaction between largefile feature
-@@ -289,6 +295,7 @@ void usage(enum logcode F)
+@@ -290,6 +296,7 @@ void usage(enum logcode F)
rprintf(F," -H, --hard-links preserve hard links\n");
rprintf(F," -K, --keep-dirlinks treat symlinked dir on receiver as dir\n");
rprintf(F," -p, --perms preserve permissions\n");
rprintf(F," -o, --owner preserve owner (root only)\n");
rprintf(F," -g, --group preserve group\n");
rprintf(F," -D, --devices preserve devices (root only)\n");
-@@ -394,6 +401,9 @@ static struct poptOption long_options[]
+@@ -399,6 +406,9 @@ static struct poptOption long_options[]
{"perms", 'p', POPT_ARG_VAL, &preserve_perms, 1, 0, 0 },
{"no-perms", 0, POPT_ARG_VAL, &preserve_perms, 0, 0, 0 },
{"no-p", 0, POPT_ARG_VAL, &preserve_perms, 0, 0, 0 },
{"times", 't', POPT_ARG_VAL, &preserve_times, 1, 0, 0 },
{"no-times", 0, POPT_ARG_VAL, &preserve_times, 0, 0, 0 },
{"no-t", 0, POPT_ARG_VAL, &preserve_times, 0, 0, 0 },
-@@ -994,6 +1004,24 @@ int parse_arguments(int *argc, const cha
+@@ -997,6 +1007,24 @@ int parse_arguments(int *argc, const cha
basis_dir[basis_dir_cnt++] = (char *)arg;
break;
default:
/* A large opt value means that set_refuse_options()
* turned this option off. */
-@@ -1421,6 +1449,8 @@ void server_options(char **args,int *arg
+@@ -1429,6 +1457,8 @@ void server_options(char **args,int *arg
if (preserve_hard_links)
argstr[x++] = 'H';
if (verbose > 1 && flags & PERMS_REPORT) {
enum logcode code = daemon_log_format_has_i || dry_run
? FCLIENT : FINFO;
---- orig/rsync.h 2005-10-14 18:45:50
+--- orig/rsync.h 2005-11-12 20:31:04
+++ rsync.h 2005-07-29 02:25:55
-@@ -651,6 +651,44 @@ struct stats {
+@@ -646,6 +646,44 @@ struct stats {
#include "lib/permstring.h"
#include "lib/addrinfo.h"
#include "proto.h"
/* We have replacement versions of these if they're missing. */
---- orig/rsync.yo 2005-11-07 04:29:02
+--- orig/rsync.yo 2005-11-15 07:01:04
+++ rsync.yo 2004-07-03 20:11:58
@@ -316,6 +316,7 @@ to the detailed description below for a
-H, --hard-links preserve hard links
-o, --owner preserve owner (root only)
-g, --group preserve group
-D, --devices preserve devices (root only)
-@@ -668,6 +669,11 @@ based on the source file's permissions,
+@@ -672,6 +673,11 @@ based on the source file's permissions,
umask setting
(which is the same behavior as other file-copy utilities, such as cp).
+
+#endif /* No ACLs. */
+#endif /* _SMB_ACLS_H */
---- orig/uidlist.c 2005-02-14 00:53:44
+--- orig/uidlist.c 2005-11-10 16:58:36
+++ uidlist.c 2004-07-03 20:11:58
@@ -34,6 +34,7 @@
extern int verbose;
/* read the uid list */
while ((id = read_int(f)) != 0) {
int len = read_byte(f);
-@@ -325,7 +326,7 @@ void recv_uid_list(int f, struct file_li
+@@ -324,7 +325,7 @@ void recv_uid_list(int f, struct file_li
+ }
}
-
- if (preserve_gid && !numeric_ids) {
+ if ((preserve_gid || preserve_acls) && !numeric_ids) {
/* read the gid list */
while ((id = read_int(f)) != 0) {
int len = read_byte(f);
-@@ -337,6 +338,18 @@ void recv_uid_list(int f, struct file_li
+@@ -336,6 +337,18 @@ void recv_uid_list(int f, struct file_li
}
}
handle relative symlinks properly, and that has not yet been fixed
in this modified version.
---- orig/flist.c 2005-08-17 06:45:07
+--- orig/flist.c 2005-11-10 16:58:36
+++ flist.c 2004-07-16 16:58:04
@@ -45,6 +45,7 @@ extern int filesfrom_fd;
extern int one_file_system;
extern int preserve_hard_links;
extern int preserve_perms;
extern int preserve_devices;
-@@ -734,6 +735,30 @@ static struct file_struct *receive_file_
+@@ -718,6 +719,30 @@ static struct file_struct *receive_file_
+ return file;
}
-
+#if SUPPORT_LINKS
+static int links_depth(char *linkname, STRUCT_STAT *st_ptr)
+{
/**
* Create a file_struct for a named file by reading its stat()
* information and performing extensive checks against global
-@@ -859,7 +884,13 @@ skip_filters:
+@@ -843,7 +868,13 @@ struct file_struct *make_file(char *fnam
basename_len = strlen(basename) + 1; /* count the '\0' */
#ifdef SUPPORT_LINKS
#else
linkname_len = 0;
#endif
---- orig/options.c 2005-08-27 21:11:26
+--- orig/options.c 2005-11-15 07:01:03
+++ options.c 2005-08-27 21:22:39
-@@ -42,6 +42,7 @@ int append_mode = 0;
+@@ -43,6 +43,7 @@ int append_mode = 0;
int keep_dirlinks = 0;
int copy_links = 0;
int preserve_links = 0;
int preserve_hard_links = 0;
int preserve_perms = 0;
int preserve_devices = 0;
-@@ -278,6 +279,7 @@ void usage(enum logcode F)
+@@ -284,6 +285,7 @@ void usage(enum logcode F)
rprintf(F," --append append data onto shorter files\n");
rprintf(F," -d, --dirs transfer directories without recursing\n");
rprintf(F," -l, --links copy symlinks as symlinks\n");
rprintf(F," -L, --copy-links transform symlink into referent file/dir\n");
rprintf(F," --copy-unsafe-links only \"unsafe\" symlinks are transformed\n");
rprintf(F," --safe-links ignore symlinks that point outside the source tree\n");
-@@ -402,6 +404,7 @@ static struct poptOption long_options[]
+@@ -416,6 +418,7 @@ static struct poptOption long_options[]
{"links", 'l', POPT_ARG_VAL, &preserve_links, 1, 0, 0 },
{"no-links", 0, POPT_ARG_VAL, &preserve_links, 0, 0, 0 },
{"no-l", 0, POPT_ARG_VAL, &preserve_links, 0, 0, 0 },
{"copy-links", 'L', POPT_ARG_NONE, ©_links, 0, 0, 0 },
{"copy-unsafe-links",0, POPT_ARG_NONE, ©_unsafe_links, 0, 0, 0 },
{"safe-links", 0, POPT_ARG_NONE, &safe_symlinks, 0, 0, 0 },
---- orig/rsync.yo 2005-08-27 21:05:12
+--- orig/rsync.yo 2005-11-15 07:01:04
+++ rsync.yo 2005-01-28 19:33:40
-@@ -312,6 +312,7 @@ to the detailed description below for a
+@@ -310,6 +310,7 @@ to the detailed description below for a
--append append data onto shorter files
-d, --dirs transfer directories without recursing
-l, --links copy symlinks as symlinks
can't say if I've left any cleanup/compatibility errors in the code.
---- orig/Makefile.in 2005-07-07 23:11:07
+--- orig/Makefile.in 2005-11-07 04:29:00
+++ Makefile.in 2004-10-08 20:17:06
@@ -38,7 +38,7 @@ OBJS3=progress.o pipe.o
DAEMON_OBJ = params.o loadparm.o clientserver.o access.o connection.o authenticate.o
TLS_OBJ = tls.o syscall.o lib/compat.o lib/snprintf.o lib/permstring.o
---- orig/cleanup.c 2005-03-05 18:58:38
+--- orig/cleanup.c 2005-11-10 16:58:36
+++ cleanup.c 2005-01-10 10:43:22
@@ -22,6 +22,9 @@
#include "rsync.h"
if (verbose > 3) {
rprintf(FINFO,"_exit_cleanup(code=%d, file=%s, line=%d): entered\n",
code, safe_fname(file), line);
---- orig/clientserver.c 2005-10-14 18:45:50
+--- orig/clientserver.c 2005-10-24 21:04:44
+++ clientserver.c 2005-04-09 17:39:57
@@ -44,6 +44,9 @@ extern int io_timeout;
extern int orig_umask;
extern char *bind_address;
extern struct filter_list_struct server_filter_list;
extern char *config_file;
-@@ -99,8 +102,18 @@ int start_socket_client(char *host, char
+@@ -101,8 +104,18 @@ int start_socket_client(char *host, char
exit_cleanup(RERR_SOCKETIO);
ret = start_inband_exchange(user, path, fd, fd, argc);
}
int start_inband_exchange(char *user, char *path, int f_in, int f_out,
-@@ -161,6 +174,33 @@ int start_inband_exchange(char *user, ch
+@@ -163,6 +176,33 @@ int start_inband_exchange(char *user, ch
if (verbose > 1)
print_child_argv(sargs);
p = strchr(path,'/');
if (p) *p = 0;
io_printf(f_out, "%s\n", path);
-@@ -189,6 +229,10 @@ int start_inband_exchange(char *user, ch
+@@ -191,6 +231,10 @@ int start_inband_exchange(char *user, ch
* server to terminate the listing of modules.
* We don't want to go on and transfer
* anything; just exit. */
exit(0);
}
-@@ -196,6 +240,10 @@ int start_inband_exchange(char *user, ch
+@@ -198,6 +242,10 @@ int start_inband_exchange(char *user, ch
rprintf(FERROR, "%s\n", line);
/* This is always fatal; the server will now
* close the socket. */
return -1;
}
-@@ -608,6 +656,7 @@ static void send_listing(int fd)
+@@ -668,6 +716,7 @@ static void send_listing(int fd)
io_printf(fd,"@RSYNCD: EXIT\n");
}
/* this is called when a connection is established to a client
and we want to start talking. The setup of the system is done from
here */
-@@ -657,6 +706,9 @@ int start_daemon(int f_in, int f_out)
+@@ -717,6 +766,9 @@ int start_daemon(int f_in, int f_out)
if (protocol_version > remote_protocol)
protocol_version = remote_protocol;
line[0] = 0;
if (!read_line(f_in, line, sizeof line - 1))
return -1;
-@@ -666,6 +718,20 @@ int start_daemon(int f_in, int f_out)
+@@ -726,6 +778,20 @@ int start_daemon(int f_in, int f_out)
return -1;
}
AC_MSG_CHECKING([whether to call shutdown on all sockets])
case $host_os in
*cygwin* ) AC_MSG_RESULT(yes)
---- orig/options.c 2005-10-14 20:03:21
-+++ options.c 2005-10-14 20:19:39
-@@ -158,6 +158,14 @@ int log_format_has_o_or_i = 0;
+--- orig/options.c 2005-11-15 07:01:03
++++ options.c 2005-11-15 07:10:33
+@@ -162,6 +162,14 @@ int log_format_has_o_or_i = 0;
int always_checksum = 0;
int list_only = 0;
#define MAX_BATCH_NAME_LEN 256 /* Must be less than MAXPATHLEN-13 */
char *batch_name = NULL;
-@@ -184,6 +192,7 @@ static void print_rsync_version(enum log
+@@ -190,6 +198,7 @@ static void print_rsync_version(enum log
char const *hardlinks = "no ";
char const *links = "no ";
char const *ipv6 = "no ";
STRUCT_STAT *dumstat;
#ifdef HAVE_SOCKETPAIR
-@@ -206,6 +215,10 @@ static void print_rsync_version(enum log
+@@ -212,6 +221,10 @@ static void print_rsync_version(enum log
ipv6 = "";
#endif
rprintf(f, "%s version %s protocol version %d\n",
RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION);
rprintf(f,
-@@ -219,10 +232,10 @@ static void print_rsync_version(enum log
+@@ -225,10 +238,10 @@ static void print_rsync_version(enum log
/* Note that this field may not have type ino_t. It depends
* on the complicated interaction between largefile feature
* macros. */
#ifdef MAINTAINER_MODE
rprintf(f, " panic action: \"%s\"\n",
get_panic_action());
-@@ -353,6 +366,13 @@ void usage(enum logcode F)
+@@ -363,6 +376,13 @@ void usage(enum logcode F)
rprintf(F," -4, --ipv4 prefer IPv4\n");
rprintf(F," -6, --ipv6 prefer IPv6\n");
#endif
+ rprintf(F," --ssl-ca-certs=FILE path to trusted CA certificates\n");
+#endif
rprintf(F," --version print version number\n");
- rprintf(F," -h, --help show this help screen\n");
+ rprintf(F," --help show this help screen\n");
-@@ -365,7 +385,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP
- OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST,
+@@ -375,6 +395,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP
+ OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, OPT_HELP,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_MIN_SIZE,
OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE,
-- OPT_REFUSED_BASE = 9000};
-+ OPT_USE_SSL, OPT_REFUSED_BASE = 9000};
++ OPT_USE_SSL,
+ OPT_REFUSED_BASE = 9000};
static struct poptOption long_options[] = {
- /* longName, shortName, argInfo, argPtr, value, descrip, argDesc */
-@@ -489,6 +509,13 @@ static struct poptOption long_options[]
+@@ -503,6 +524,13 @@ static struct poptOption long_options[]
{"checksum-seed", 0, POPT_ARG_INT, &checksum_seed, 0, 0, 0 },
{"server", 0, POPT_ARG_NONE, &am_server, 0, 0, 0 },
{"sender", 0, POPT_ARG_NONE, 0, OPT_SENDER, 0, 0 },
/* All the following options switch us into daemon-mode option-parsing. */
{"config", 0, POPT_ARG_STRING, 0, OPT_DAEMON, 0, 0 },
{"daemon", 0, POPT_ARG_NONE, 0, OPT_DAEMON, 0, 0 },
-@@ -968,6 +995,12 @@ int parse_arguments(int *argc, const cha
+@@ -997,6 +1025,12 @@ int parse_arguments(int *argc, const cha
basis_dir[basis_dir_cnt++] = (char *)arg;
break;
default:
/* A large opt value means that set_refuse_options()
* turned this option off. */
-@@ -1234,6 +1267,17 @@ int parse_arguments(int *argc, const cha
+@@ -1274,6 +1308,17 @@ int parse_arguments(int *argc, const cha
if (delay_updates && !partial_dir)
partial_dir = partialdir_for_delayupdate;
if (inplace) {
#ifdef HAVE_FTRUNCATE
if (partial_dir) {
-@@ -1613,11 +1657,28 @@ char *check_for_hostspec(char *s, char *
+@@ -1664,11 +1709,28 @@ char *check_for_hostspec(char *s, char *
{
char *p;
int not_host;
if ((p = strchr(s, '/')) != NULL) {
hostlen = p - s;
path = p + 1;
---- orig/rsync.h 2005-10-14 18:45:50
+--- orig/rsync.h 2005-11-12 20:31:04
+++ rsync.h 2004-10-08 21:01:33
@@ -32,6 +32,7 @@
#define BACKUP_SUFFIX "~"
-@@ -415,6 +416,11 @@ enum msgcode {
+@@ -410,6 +411,11 @@ enum msgcode {
# define SIZEOF_INT64 SIZEOF_OFF_T
#endif
if (t - last_io_in >= io_timeout) {
if (!am_server && !am_daemon) {
rprintf(FERROR, "io timeout after %d seconds -- exiting\n",
---- orig/options.c 2005-08-27 21:11:26
+--- orig/options.c 2005-11-15 07:01:03
+++ options.c 2005-08-27 21:27:57
-@@ -106,6 +106,7 @@ int checksum_seed = 0;
+@@ -110,6 +110,7 @@ int checksum_seed = 0;
int inplace = 0;
int delay_updates = 0;
long block_size = 0; /* "long" because popt can't set an int32. */
/** Network address family. **/
-@@ -344,6 +345,8 @@ void usage(enum logcode F)
+@@ -355,6 +356,8 @@ void usage(enum logcode F)
rprintf(F," --password-file=FILE read password from FILE\n");
rprintf(F," --list-only list the files instead of copying them\n");
rprintf(F," --bwlimit=KBPS limit I/O bandwidth; KBytes per second\n");
rprintf(F," --write-batch=FILE write a batched update to FILE\n");
rprintf(F," --only-write-batch=FILE like --write-batch but w/o updating destination\n");
rprintf(F," --read-batch=FILE read a batched update from FILE\n");
-@@ -364,6 +367,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP
- OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST,
- OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW,
+@@ -375,6 +378,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP
+ OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, OPT_HELP,
+ OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_MIN_SIZE,
OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE,
+ OPT_STOP_AT, OPT_TIME_LIMIT,
OPT_REFUSED_BASE = 9000};
static struct poptOption long_options[] = {
-@@ -458,6 +462,8 @@ static struct poptOption long_options[]
+@@ -476,6 +480,8 @@ static struct poptOption long_options[]
{"log-format", 0, POPT_ARG_STRING, &log_format, 0, 0, 0 },
{"itemize-changes", 'i', POPT_ARG_NONE, &itemize_changes, 0, 0, 0 },
{"bwlimit", 0, POPT_ARG_INT, &bwlimit, 0, 0, 0 },
{"backup", 'b', POPT_ARG_NONE, &make_backups, 0, 0, 0 },
{"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 },
{"suffix", 0, POPT_ARG_STRING, &backup_suffix, 0, 0, 0 },
-@@ -916,6 +922,36 @@ int parse_arguments(int *argc, const cha
+@@ -997,6 +1003,36 @@ int parse_arguments(int *argc, const cha
basis_dir[basis_dir_cnt++] = (char *)arg;
break;
default:
/* A large opt value means that set_refuse_options()
* turned this option off. */
-@@ -1412,6 +1448,15 @@ void server_options(char **args,int *arg
+@@ -1523,6 +1559,15 @@ void server_options(char **args,int *arg
args[ac++] = arg;
}
if (backup_dir) {
args[ac++] = "--backup-dir";
args[ac++] = backup_dir;
---- orig/rsync.yo 2005-08-27 21:05:12
+--- orig/rsync.yo 2005-11-15 07:01:04
+++ rsync.yo 2005-02-01 10:46:35
-@@ -378,6 +378,8 @@ to the detailed description below for a
+@@ -381,6 +381,8 @@ to the detailed description below for a
--password-file=FILE read password from FILE
--list-only list the files instead of copying them
--bwlimit=KBPS limit I/O bandwidth; KBytes per second
--write-batch=FILE write a batched update to FILE
--only-write-batch=FILE like --write-batch but w/o updating dest
--read-batch=FILE read a batched update from FILE
-@@ -1320,6 +1322,19 @@ transfer was too fast, it will wait befo
+@@ -1371,6 +1373,19 @@ transfer was too fast, it will wait befo
result is an average transfer rate equaling the specified limit. A value
of zero specifies no limit.
dit(bf(--write-batch=FILE)) Record a file that can later be applied to
another identical destination with bf(--read-batch). See the "BATCH MODE"
section for details, and also the bf(--only-write-batch) option.
---- orig/util.c 2005-08-17 06:45:08
+--- orig/util.c 2005-11-12 20:13:05
+++ util.c 2004-07-03 20:23:22
-@@ -126,6 +126,132 @@ void overflow_exit(char *str)
+@@ -128,6 +128,132 @@ void overflow_exit(char *str)
exit_cleanup(RERR_MALLOC);
}