+ }
+ return 0;
+}
---- orig/flist.c 2004-07-15 02:21:10
+--- orig/flist.c 2004-07-17 15:20:05
+++ flist.c 2004-07-03 20:13:41
@@ -33,6 +33,7 @@ extern int verbose;
extern int do_progress;
file->uid = st.st_uid;
file->gid = st.st_gid;
---- orig/options.c 2004-07-16 20:07:22
+--- orig/options.c 2004-08-03 15:41:32
+++ options.c 2004-07-03 20:13:41
-@@ -125,6 +125,7 @@ char *log_format = NULL;
+@@ -127,6 +127,7 @@ char *log_format = NULL;
char *password_file = NULL;
char *rsync_path = RSYNC_PATH;
char *backup_dir = NULL;
char backup_dir_buf[MAXPATHLEN];
int rsync_port = RSYNC_PORT;
int link_dest = 0;
-@@ -137,6 +138,8 @@ int list_only = 0;
+@@ -139,6 +140,8 @@ int list_only = 0;
#define MAX_BATCH_NAME_LEN 256 /* Must be less than MAXPATHLEN-13 */
char *batch_name = NULL;
static int daemon_opt; /* sets am_daemon after option error-reporting */
static int modify_window_set;
-@@ -251,6 +254,7 @@ void usage(enum logcode F)
+@@ -254,6 +257,7 @@ void usage(enum logcode F)
rprintf(F," -g, --group preserve group\n");
rprintf(F," -D, --devices preserve devices (root only)\n");
rprintf(F," -t, --times preserve times\n");
rprintf(F," -S, --sparse handle sparse files efficiently\n");
rprintf(F," -n, --dry-run show what would have been transferred\n");
rprintf(F," -W, --whole-file copy whole files, no incremental checks\n");
-@@ -357,6 +361,7 @@ static struct poptOption long_options[]
+@@ -361,6 +365,7 @@ static struct poptOption long_options[]
{"perms", 'p', POPT_ARG_NONE, &preserve_perms, 0, 0, 0 },
{"owner", 'o', POPT_ARG_NONE, &preserve_uid, 0, 0, 0 },
{"group", 'g', POPT_ARG_NONE, &preserve_gid, 0, 0, 0 },
{"devices", 'D', POPT_ARG_NONE, &preserve_devices, 0, 0, 0 },
{"times", 't', POPT_ARG_NONE, &preserve_times, 0, 0, 0 },
{"checksum", 'c', POPT_ARG_NONE, &always_checksum, 0, 0, 0 },
-@@ -753,6 +758,13 @@ int parse_arguments(int *argc, const cha
- exit_cleanup(RERR_SYNTAX);
+@@ -806,6 +811,13 @@ int parse_arguments(int *argc, const cha
+ return 0;
}
+ if (chmod_mode && !(chmod_modes = parse_chmod(chmod_mode))) {
if (do_progress && !verbose)
verbose = 1;
-@@ -1007,6 +1019,11 @@ void server_options(char **args,int *arg
+@@ -1076,6 +1088,11 @@ void server_options(char **args,int *arg
args[ac++] = compare_dest;
}
if (files_from && (!am_sender || remote_filesfrom_file)) {
if (remote_filesfrom_file) {
args[ac++] = "--files-from";
---- orig/rsync.yo 2004-07-16 20:07:23
+--- orig/rsync.yo 2004-08-03 15:34:32
+++ rsync.yo 2004-07-03 20:13:41
@@ -301,6 +301,7 @@ verb(
-g, --group preserve group
-S, --sparse handle sparse files efficiently
-n, --dry-run show what would have been transferred
-W, --whole-file copy whole files, no incremental checks
-@@ -564,6 +565,14 @@ cause the next transfer to behave as if
+@@ -574,6 +575,14 @@ cause the next transfer to behave as if
their checksums compared and show up in log messages even if they haven't
changed.
extern int link_dest;
extern int whole_file;
extern int local_server;
-@@ -414,11 +414,19 @@ static void recv_generator(char *fname,
+@@ -413,11 +413,19 @@ static void recv_generator(char *fname,
fnamecmp = fname;
fnamecmp_type = G2R_FNAME;
#if HAVE_LINK
if (link_dest && !dry_run) {
if (do_link(fnamecmpbuf, fname) < 0) {
-@@ -429,15 +437,14 @@ static void recv_generator(char *fname,
+@@ -428,15 +436,14 @@ static void recv_generator(char *fname,
safe_fname(fname));
}
fnamecmp = fnamecmpbuf;
--- orig/main.c 2004-07-22 00:10:43
+++ main.c 2004-07-30 07:23:54
-@@ -58,7 +58,7 @@ extern int filesfrom_fd;
+@@ -59,7 +59,7 @@ extern int filesfrom_fd;
extern pid_t cleanup_child_pid;
extern char *files_from;
extern char *remote_filesfrom_file;
extern char *rsync_path;
extern char *shell_cmd;
extern char *batch_name;
-@@ -458,7 +458,7 @@ static int do_recv(int f_in,int f_out,st
+@@ -459,7 +459,7 @@ static int do_recv(int f_in,int f_out,st
int pid;
int status = 0;
int error_pipe[2], name_pipe[2];
- BOOL need_name_pipe = compare_dest && !dry_run;
+ BOOL need_name_pipe = compare_dest[0] && !dry_run;
- if (preserve_hard_links)
- init_hard_links(flist);
---- orig/options.c 2004-07-29 16:08:03
+ /* The receiving side mustn't obey this, or an existing symlink that
+ * points to an identical file won't be replaced by the referent. */
+--- orig/options.c 2004-08-03 15:41:32
+++ options.c 2004-07-30 07:23:54
-@@ -114,12 +114,13 @@ int write_batch = 0;
+@@ -115,12 +115,13 @@ int write_batch = 0;
int read_batch = 0;
int backup_dir_len = 0;
int backup_suffix_len;
char *config_file = NULL;
char *shell_cmd = NULL;
char *log_format = NULL;
-@@ -140,6 +141,7 @@ char *batch_name = NULL;
+@@ -141,6 +142,7 @@ char *batch_name = NULL;
static int daemon_opt; /* sets am_daemon after option error-reporting */
static int modify_window_set;
/** Local address to bind. As a character string because it's
* interpreted by the IPv6 layer: should be a numeric IP4 or IP6
-@@ -317,7 +319,7 @@ void usage(enum logcode F)
+@@ -318,7 +320,7 @@ void usage(enum logcode F)
}
enum {OPT_VERSION = 1000, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW,
OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_TIMEOUT,
OPT_REFUSED_BASE = 9000};
-@@ -376,8 +378,8 @@ static struct poptOption long_options[]
+@@ -377,8 +379,8 @@ static struct poptOption long_options[]
{"max-delete", 0, POPT_ARG_INT, &max_delete, 0, 0, 0 },
{"timeout", 0, POPT_ARG_INT, &io_timeout, OPT_TIMEOUT, 0, 0 },
{"temp-dir", 'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
/* TODO: Should this take an optional int giving the compression level? */
{"compress", 'z', POPT_ARG_NONE, &do_compression, 0, 0, 0 },
{"daemon", 0, POPT_ARG_NONE, &daemon_opt, 0, 0, 0 },
-@@ -594,8 +596,28 @@ int parse_arguments(int *argc, const cha
+@@ -607,8 +609,28 @@ int parse_arguments(int *argc, const cha
select_timeout = io_timeout;
break;
link_dest = 1;
break;
#else
-@@ -693,6 +715,11 @@ int parse_arguments(int *argc, const cha
- exit_cleanup(RERR_SYNTAX);
+@@ -701,6 +723,11 @@ int parse_arguments(int *argc, const cha
+ return 0;
}
+ if (saw_compare_dest && link_dest) {
if (archive_mode) {
if (!files_from)
recurse = 1;
-@@ -723,8 +750,6 @@ int parse_arguments(int *argc, const cha
+@@ -731,8 +758,6 @@ int parse_arguments(int *argc, const cha
tmpdir = alloc_sanitize_path(tmpdir, curr_dir);
if (partial_dir)
partial_dir = alloc_sanitize_path(partial_dir, curr_dir);
if (backup_dir)
backup_dir = alloc_sanitize_path(backup_dir, curr_dir);
if (files_from)
-@@ -839,8 +864,8 @@ int parse_arguments(int *argc, const cha
+@@ -882,8 +907,8 @@ int parse_arguments(int *argc, const cha
**/
void server_options(char **args,int *argc)
{
char *arg;
int i, x;
-@@ -1021,13 +1046,16 @@ void server_options(char **args,int *arg
+@@ -1067,13 +1092,16 @@ void server_options(char **args,int *arg
args[ac++] = tmpdir;
}
if (files_from && (!am_sender || remote_filesfrom_file)) {
--- orig/receiver.c 2004-07-30 07:17:48
+++ receiver.c 2004-07-30 07:31:12
-@@ -39,7 +39,7 @@ extern int cvs_exclude;
+@@ -38,7 +38,7 @@ extern int cvs_exclude;
extern int io_error;
extern char *tmpdir;
extern char *partial_dir;
extern int always_checksum;
extern char *partial_dir;
extern char *compare_dest;
-@@ -240,6 +241,93 @@ static void generate_and_send_sums(int f
+@@ -239,6 +240,93 @@ static void generate_and_send_sums(int f
}
/*
* Acts on file number @p i from @p flist, whose name is @p fname.
-@@ -448,6 +536,15 @@ static void recv_generator(char *fname,
+@@ -447,6 +535,15 @@ static void recv_generator(char *fname,
stat_errno = ENOENT;
}
if (statret == -1) {
if (preserve_hard_links && hard_link_check(file, HL_SKIP))
return;
-@@ -474,7 +571,7 @@ static void recv_generator(char *fname,
+@@ -473,7 +570,7 @@ static void recv_generator(char *fname,
return;
}
if (fnamecmp_type == G2R_FNAME)
set_perms(fname, file, &st, PERMS_REPORT);
return;
-@@ -522,6 +619,21 @@ static void recv_generator(char *fname,
+@@ -521,6 +618,21 @@ static void recv_generator(char *fname,
notify_others:
if (f_out_name >= 0) {
write_byte(f_out_name, fnamecmp_type);
--- orig/main.c 2004-07-22 00:10:43
+++ main.c 2004-07-22 00:32:31
-@@ -47,6 +47,7 @@ extern int keep_dirlinks;
+@@ -48,6 +48,7 @@ extern int keep_dirlinks;
extern int preserve_hard_links;
extern int protocol_version;
extern int recurse;
extern int relative_paths;
extern int rsync_port;
extern int whole_file;
-@@ -458,7 +459,7 @@ static int do_recv(int f_in,int f_out,st
+@@ -459,7 +460,7 @@ static int do_recv(int f_in,int f_out,st
int pid;
int status = 0;
int error_pipe[2], name_pipe[2];
- BOOL need_name_pipe = compare_dest && !dry_run;
+ BOOL need_name_pipe = (compare_dest || fuzzy_basis) && !dry_run;
- if (preserve_hard_links)
- init_hard_links(flist);
---- orig/options.c 2004-07-29 16:08:03
+ /* The receiving side mustn't obey this, or an existing symlink that
+ * points to an identical file won't be replaced by the referent. */
+--- orig/options.c 2004-08-03 15:41:32
+++ options.c 2004-07-16 20:14:12
-@@ -85,6 +85,7 @@ int safe_symlinks = 0;
+@@ -86,6 +86,7 @@ int safe_symlinks = 0;
int copy_unsafe_links = 0;
int size_only = 0;
int bwlimit = 0;
size_t bwlimit_writemax = 0;
int delete_after = 0;
int only_existing = 0;
-@@ -279,6 +280,7 @@ void usage(enum logcode F)
+@@ -280,6 +281,7 @@ void usage(enum logcode F)
rprintf(F," -T, --temp-dir=DIR create temporary files in directory DIR\n");
rprintf(F," --compare-dest=DIR also compare destination files relative to DIR\n");
rprintf(F," --link-dest=DIR create hardlinks to DIR for unchanged files\n");
rprintf(F," -P equivalent to --partial --progress\n");
rprintf(F," -z, --compress compress file data\n");
rprintf(F," -C, --cvs-exclude auto ignore files in the same way CVS does\n");
-@@ -378,6 +380,7 @@ static struct poptOption long_options[]
+@@ -379,6 +381,7 @@ static struct poptOption long_options[]
{"temp-dir", 'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
{"compare-dest", 0, POPT_ARG_STRING, &compare_dest, 0, 0, 0 },
{"link-dest", 0, POPT_ARG_STRING, &compare_dest, OPT_LINK_DEST, 0, 0 },
/* TODO: Should this take an optional int giving the compression level? */
{"compress", 'z', POPT_ARG_NONE, &do_compression, 0, 0, 0 },
{"daemon", 0, POPT_ARG_NONE, &daemon_opt, 0, 0, 0 },
-@@ -1042,6 +1045,9 @@ void server_options(char **args,int *arg
+@@ -1088,6 +1091,9 @@ void server_options(char **args,int *arg
}
}
/* Log-message categories. FLOG is only used on the daemon side to
---- orig/rsync.yo 2004-07-29 16:08:04
+--- orig/rsync.yo 2004-08-03 15:34:32
+++ rsync.yo 2004-07-03 19:27:25
@@ -327,6 +327,7 @@ verb(
-T --temp-dir=DIR create temporary files in directory DIR
You must run "make proto" before compiling.
---- orig/generator.c 2004-07-29 16:49:44
+--- orig/generator.c 2004-08-03 15:41:32
+++ generator.c 2004-07-30 07:18:03
-@@ -250,13 +250,13 @@ static void generate_and_send_sums(int f
+@@ -249,13 +249,13 @@ static void generate_and_send_sums(int f
* out. It might be wrong.
*/
static void recv_generator(char *fname, struct file_struct *file, int i,
if (list_only)
return;
-@@ -412,6 +412,7 @@ static void recv_generator(char *fname,
+@@ -411,6 +411,7 @@ static void recv_generator(char *fname,
}
fnamecmp = fname;
if (statret == -1 && compare_dest != NULL) {
/* try the file at compare_dest instead */
-@@ -428,10 +429,14 @@ static void recv_generator(char *fname,
+@@ -427,10 +428,14 @@ static void recv_generator(char *fname,
safe_fname(fname));
}
fnamecmp = fnamecmpbuf;
statret = 0;
}
}
-@@ -446,11 +451,9 @@ static void recv_generator(char *fname,
+@@ -445,11 +450,9 @@ static void recv_generator(char *fname,
if (statret == -1) {
if (preserve_hard_links && hard_link_check(file, HL_SKIP))
return;
rsyserr(FERROR, stat_errno,
"recv_generator: failed to stat %s",
full_fname(fname));
-@@ -458,13 +461,13 @@ static void recv_generator(char *fname,
+@@ -457,13 +460,13 @@ static void recv_generator(char *fname,
return;
}
&& cmp_modtime(st.st_mtime, file->modtime) > 0) {
if (verbose > 1)
rprintf(FINFO, "%s is newer\n", safe_fname(fname));
-@@ -472,21 +475,17 @@ static void recv_generator(char *fname,
+@@ -471,21 +474,17 @@ static void recv_generator(char *fname,
}
if (skip_file(fnamecmp, file, &st)) {
if (partial_dir) {
STRUCT_STAT st2;
-@@ -495,6 +494,7 @@ static void recv_generator(char *fname,
+@@ -494,6 +493,7 @@ static void recv_generator(char *fname,
&& S_ISREG(st2.st_mode)) {
st = st2;
fnamecmp = partialptr;
}
}
-@@ -507,9 +507,8 @@ static void recv_generator(char *fname,
+@@ -506,9 +506,8 @@ static void recv_generator(char *fname,
/* pretend the file didn't exist */
if (preserve_hard_links && hard_link_check(file, HL_SKIP))
return;
}
if (verbose > 3) {
-@@ -520,14 +519,28 @@ static void recv_generator(char *fname,
+@@ -519,14 +518,28 @@ static void recv_generator(char *fname,
if (verbose > 2)
rprintf(FINFO, "generating and sending sums for %d\n", i);
{
int i;
int phase = 0;
-@@ -568,7 +581,7 @@ void generate_files(int f_out, struct fi
+@@ -567,7 +580,7 @@ void generate_files(int f_out, struct fi
}
recv_generator(local_name ? local_name : f_name_to(file, fbuf),
}
phase++;
-@@ -585,7 +598,7 @@ void generate_files(int f_out, struct fi
+@@ -584,7 +597,7 @@ void generate_files(int f_out, struct fi
while ((i = get_redo_num()) != -1) {
struct file_struct *file = flist->files[i];
recv_generator(local_name ? local_name : f_name_to(file, fbuf),
}
phase++;
-@@ -604,7 +617,7 @@ void generate_files(int f_out, struct fi
+@@ -603,7 +616,7 @@ void generate_files(int f_out, struct fi
if (!file->basename || !S_ISDIR(file->mode))
continue;
recv_generator(local_name ? local_name : f_name(file),
}
if (verbose > 2)
---- orig/main.c 2004-07-29 16:08:03
+--- orig/main.c 2004-07-31 16:41:04
+++ main.c 2004-07-22 00:10:43
-@@ -58,6 +58,7 @@ extern int filesfrom_fd;
+@@ -59,6 +59,7 @@ extern int filesfrom_fd;
extern pid_t cleanup_child_pid;
extern char *files_from;
extern char *remote_filesfrom_file;
extern char *rsync_path;
extern char *shell_cmd;
extern char *batch_name;
-@@ -456,7 +457,8 @@ static int do_recv(int f_in,int f_out,st
+@@ -457,7 +458,8 @@ static int do_recv(int f_in,int f_out,st
{
int pid;
int status = 0;
+ int error_pipe[2], name_pipe[2];
+ BOOL need_name_pipe = compare_dest && !dry_run;
- if (preserve_hard_links)
- init_hard_links(flist);
-@@ -467,8 +469,9 @@ static int do_recv(int f_in,int f_out,st
+ /* The receiving side mustn't obey this, or an existing symlink that
+ * points to an identical file won't be replaced by the referent. */
+@@ -472,8 +474,9 @@ static int do_recv(int f_in,int f_out,st
delete_files(flist);
}
exit_cleanup(RERR_SOCKETIO);
}
-@@ -476,6 +479,11 @@ static int do_recv(int f_in,int f_out,st
+@@ -481,6 +484,11 @@ static int do_recv(int f_in,int f_out,st
if ((pid = do_fork()) == 0) {
close(error_pipe[0]);
if (f_in != f_out)
close(f_out);
-@@ -485,7 +493,7 @@ static int do_recv(int f_in,int f_out,st
+@@ -490,7 +498,7 @@ static int do_recv(int f_in,int f_out,st
/* set place to send errors */
set_msg_fd_out(error_pipe[1]);
io_flush(FULL_FLUSH);
report(f_in);
-@@ -504,6 +512,11 @@ static int do_recv(int f_in,int f_out,st
+@@ -509,6 +517,11 @@ static int do_recv(int f_in,int f_out,st
stop_write_batch();
close(error_pipe[1]);
if (f_in != f_out)
close(f_in);
-@@ -511,7 +524,7 @@ static int do_recv(int f_in,int f_out,st
+@@ -516,7 +529,7 @@ static int do_recv(int f_in,int f_out,st
set_msg_fd_in(error_pipe[0]);
get_redo_num(); /* Read final MSG_DONE and any prior messages. */
report(-1);
---- orig/receiver.c 2004-07-30 07:04:00
+--- orig/receiver.c 2004-08-03 15:34:32
+++ receiver.c 2004-07-30 07:17:48
@@ -333,7 +333,8 @@ static void discard_receive_data(int f_i
* main routine for receiver process.
if (fd1 != -1 && do_fstat(fd1,&st) != 0) {
rsyserr(FERROR, errno, "fstat %s failed",
full_fname(fnamecmp));
---- orig/rsync.h 2004-07-29 16:08:03
+--- orig/rsync.h 2004-08-03 15:41:32
+++ rsync.h 2004-07-30 07:16:38
@@ -118,6 +118,9 @@
#define PDIR_CREATE 1
+}
+
+#endif
---- orig/options.c 2004-07-29 16:08:03
+--- orig/options.c 2004-08-03 15:41:32
+++ options.c 2004-07-03 20:20:15
-@@ -126,6 +126,7 @@ char *log_format = NULL;
+@@ -127,6 +127,7 @@ char *log_format = NULL;
char *password_file = NULL;
char *rsync_path = RSYNC_PATH;
char *backup_dir = NULL;
char backup_dir_buf[MAXPATHLEN];
int rsync_port = RSYNC_PORT;
int link_dest = 0;
-@@ -279,6 +280,7 @@ void usage(enum logcode F)
+@@ -280,6 +281,7 @@ void usage(enum logcode F)
rprintf(F," -T, --temp-dir=DIR create temporary files in directory DIR\n");
rprintf(F," --compare-dest=DIR also compare destination files relative to DIR\n");
rprintf(F," --link-dest=DIR create hardlinks to DIR for unchanged files\n");
rprintf(F," -P equivalent to --partial --progress\n");
rprintf(F," -z, --compress compress file data\n");
rprintf(F," -C, --cvs-exclude auto ignore files in the same way CVS does\n");
-@@ -319,7 +321,7 @@ void usage(enum logcode F)
+@@ -320,7 +322,7 @@ void usage(enum logcode F)
enum {OPT_VERSION = 1000, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_DELETE_AFTER, OPT_DELETE_EXCLUDED, OPT_LINK_DEST,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW,
OPT_REFUSED_BASE = 9000};
static struct poptOption long_options[] = {
-@@ -378,6 +380,7 @@ static struct poptOption long_options[]
+@@ -379,6 +381,7 @@ static struct poptOption long_options[]
{"temp-dir", 'T', POPT_ARG_STRING, &tmpdir, 0, 0, 0 },
{"compare-dest", 0, POPT_ARG_STRING, &compare_dest, 0, 0, 0 },
{"link-dest", 0, POPT_ARG_STRING, &compare_dest, OPT_LINK_DEST, 0, 0 },
/* TODO: Should this take an optional int giving the compression level? */
{"compress", 'z', POPT_ARG_NONE, &do_compression, 0, 0, 0 },
{"daemon", 0, POPT_ARG_NONE, &daemon_opt, 0, 0, 0 },
-@@ -605,6 +608,19 @@ int parse_arguments(int *argc, const cha
+@@ -618,6 +621,19 @@ int parse_arguments(int *argc, const cha
return 0;
#endif
default:
/* A large opt value means that set_refuse_options()
* turned this option off (opt-BASE is its index). */
-@@ -1030,6 +1046,11 @@ void server_options(char **args,int *arg
+@@ -1076,6 +1092,11 @@ void server_options(char **args,int *arg
args[ac++] = compare_dest;
}
if (files_from && (!am_sender || remote_filesfrom_file)) {
if (remote_filesfrom_file) {
args[ac++] = "--files-from";
---- orig/receiver.c 2004-07-29 16:08:03
+--- orig/receiver.c 2004-08-03 15:34:32
+++ receiver.c 2004-07-20 21:44:05
-@@ -40,6 +40,7 @@ extern int io_error;
+@@ -39,6 +39,7 @@ extern int io_error;
extern char *tmpdir;
extern char *partial_dir;
extern char *compare_dest;
extern int make_backups;
extern int do_progress;
extern char *backup_dir;
-@@ -207,12 +208,13 @@ static int get_tmpname(char *fnametmp, c
+@@ -206,12 +207,13 @@ static int get_tmpname(char *fnametmp, c
static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r,
}
-@@ -546,8 +557,12 @@ int recv_files(int f_in, struct file_lis
+@@ -541,8 +552,12 @@ int recv_files(int f_in, struct file_lis
rprintf(FINFO, "%s\n", safe_fname(fname));
/* recv file data */
log_recv(file, &initial_stats);
---- orig/rsync.c 2004-07-26 16:06:53
+--- orig/rsync.c 2004-07-31 16:41:04
+++ rsync.c 2004-07-16 20:16:53
-@@ -33,6 +33,7 @@ extern int preserve_gid;
- extern int force_delete;
+@@ -34,6 +34,7 @@ extern int force_delete;
extern int recurse;
+ extern int keep_dirlinks;
extern int make_backups;
+extern char *link_by_hash_dir;
extern char *backup_dir;
extern int inplace;
-@@ -249,6 +250,12 @@ void finish_transfer(char *fname, char *
+@@ -251,6 +252,12 @@ void finish_transfer(char *fname, char *
/* move tmp file over real file */
if (verbose > 2)
rprintf(FINFO, "renaming %s to %s\n", fnametmp, fname);
ret = robust_rename(fnametmp, fname, file->mode & INITACCESSPERMS);
if (ret < 0) {
rsyserr(FERROR, errno, "%s %s -> \"%s\"",
---- orig/rsync.h 2004-07-29 16:08:03
+--- orig/rsync.h 2004-08-03 15:41:32
+++ rsync.h 2004-07-03 20:20:15
@@ -525,6 +525,14 @@ struct stats {
int current_file_index;
make proto
---- orig/io.c 2004-07-29 16:08:03
+--- orig/io.c 2004-08-02 02:44:26
+++ io.c 2004-07-03 20:17:10
@@ -240,6 +240,14 @@ static void read_msg_fd(void)
read_loop(fd, buf, 4);
case MSG_INFO:
case MSG_ERROR:
if (remaining >= sizeof line) {
---- orig/main.c 2004-07-29 16:08:03
+--- orig/main.c 2004-07-31 16:41:04
+++ main.c 2004-07-22 03:06:20
@@ -42,6 +42,7 @@ extern int list_only;
extern int local_server;
extern int module_id;
+extern int need_messages_from_generator;
extern int orig_umask;
+ extern int copy_links;
extern int keep_dirlinks;
- extern int preserve_hard_links;
-@@ -612,6 +613,8 @@ void start_server(int f_in, int f_out, i
+@@ -617,6 +618,8 @@ void start_server(int f_in, int f_out, i
if (am_sender) {
keep_dirlinks = 0; /* Must be disabled on the sender. */
recv_exclude_list(f_in);
if (cvs_exclude)
-@@ -683,6 +686,9 @@ int client_run(int f_in, int f_out, pid_
+@@ -688,6 +691,9 @@ int client_run(int f_in, int f_out, pid_
exit_cleanup(status);
}
if (argc == 0)
list_only = 1;
---- orig/options.c 2004-07-29 16:08:03
+--- orig/options.c 2004-08-03 15:41:32
+++ options.c 2004-07-16 20:09:54
-@@ -87,8 +87,10 @@ int size_only = 0;
+@@ -88,8 +88,10 @@ int size_only = 0;
int bwlimit = 0;
size_t bwlimit_writemax = 0;
int delete_after = 0;
int max_delete = 0;
int ignore_errors = 0;
int modify_window = 0;
-@@ -266,6 +268,7 @@ void usage(enum logcode F)
+@@ -267,6 +269,7 @@ void usage(enum logcode F)
rprintf(F," --delete delete files that don't exist on the sending side\n");
rprintf(F," --delete-excluded also delete excluded files on the receiving side\n");
rprintf(F," --delete-after receiver deletes after transferring, not before\n");
rprintf(F," --ignore-errors delete even if there are I/O errors\n");
rprintf(F," --max-delete=NUM don't delete more than NUM files\n");
rprintf(F," --partial keep partially transferred files\n");
-@@ -317,8 +320,8 @@ void usage(enum logcode F)
+@@ -318,8 +321,8 @@ void usage(enum logcode F)
}
enum {OPT_VERSION = 1000, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_TIMEOUT,
OPT_REFUSED_BASE = 9000};
-@@ -337,6 +340,7 @@ static struct poptOption long_options[]
+@@ -338,6 +341,7 @@ static struct poptOption long_options[]
{"ignore-existing", 0, POPT_ARG_NONE, &opt_ignore_existing, 0, 0, 0 },
{"delete-after", 0, POPT_ARG_NONE, 0, OPT_DELETE_AFTER, 0, 0 },
{"delete-excluded", 0, POPT_ARG_NONE, 0, OPT_DELETE_EXCLUDED, 0, 0 },
{"force", 0, POPT_ARG_NONE, &force_delete, 0, 0, 0 },
{"numeric-ids", 0, POPT_ARG_NONE, &numeric_ids, 0, 0, 0 },
{"exclude", 0, POPT_ARG_STRING, 0, OPT_EXCLUDE, 0, 0 },
-@@ -524,6 +528,11 @@ int parse_arguments(int *argc, const cha
+@@ -537,6 +541,11 @@ int parse_arguments(int *argc, const cha
delete_mode = 1;
break;
case OPT_EXCLUDE:
if (am_server || sanitize_paths)
return 0; /* Impossible... */
-@@ -1042,6 +1051,9 @@ void server_options(char **args,int *arg
+@@ -1088,6 +1097,9 @@ void server_options(char **args,int *arg
}
}
*argc = ac;
return;
---- orig/receiver.c 2004-07-29 16:08:03
+--- orig/receiver.c 2004-08-03 15:34:32
+++ receiver.c 2004-07-29 16:11:11
-@@ -46,6 +46,7 @@ extern char *backup_dir;
+@@ -45,6 +45,7 @@ extern char *backup_dir;
extern char *backup_suffix;
extern int backup_suffix_len;
extern int cleanup_got_literal;
char fnamecmpbuf[MAXPATHLEN];
struct file_struct *file;
struct stats initial_stats;
-@@ -576,7 +577,12 @@ int recv_files(int f_in, struct file_lis
+@@ -571,7 +572,12 @@ int recv_files(int f_in, struct file_lis
cleanup_disable();
int msgtype = csum_length == SUM_LENGTH || read_batch ?
FERROR : FINFO;
if (msgtype == FERROR || verbose) {
-@@ -600,9 +606,8 @@ int recv_files(int f_in, struct file_lis
+@@ -595,9 +601,8 @@ int recv_files(int f_in, struct file_lis
keptstr, redostr);
}
if (csum_length != SUM_LENGTH) {
}
}
}
---- orig/rsync.h 2004-07-29 16:08:03
+--- orig/rsync.h 2004-08-03 15:41:32
+++ rsync.h 2004-07-03 20:17:10
@@ -60,6 +60,7 @@
#define FLAG_TOP_DIR (1<<0)
MSG_DONE=5, /* current phase is done */
MSG_REDO=4, /* reprocess indicated flist index */
MSG_ERROR=FERROR, MSG_INFO=FINFO, MSG_LOG=FLOG, /* remote logging */
---- orig/rsync.yo 2004-07-29 16:08:04
+--- orig/rsync.yo 2004-08-03 15:34:32
+++ rsync.yo 2004-07-03 20:17:10
@@ -314,6 +314,7 @@ verb(
--delete delete files that don't exist on sender
--ignore-errors delete even if there are I/O errors
--max-delete=NUM don't delete more than NUM files
--partial keep partially transferred files
-@@ -619,6 +620,11 @@ receiving side before transferring files
+@@ -625,6 +626,11 @@ receiving side before transferring files
sufficient space on the receiving filesystem. If you want to delete
after transferring, use the --delete-after switch. Implies --delete.
dit(bf(--ignore-errors)) Tells --delete to go ahead and delete files
even when there are I/O errors.
---- orig/sender.c 2004-07-26 16:27:00
+--- orig/sender.c 2004-08-03 15:34:32
+++ sender.c 2004-07-26 16:49:19
@@ -26,6 +26,7 @@ extern int io_error;
extern int dry_run;
while (1) {
unsigned int offset;
-@@ -248,6 +273,9 @@ void send_files(struct file_list *flist,
+@@ -252,6 +277,9 @@ void send_files(struct file_list *flist,
rprintf(FINFO, "sender finished %s\n",
safe_fname(fname));
}