DAEMON_OBJ = params.o loadparm.o clientserver.o access.o connection.o authenticate.o
popt_OBJS=popt/findme.o popt/popt.o popt/poptconfig.o \
popt/popthelp.o popt/poptparse.o
---- orig/cleanup.c 2005-01-10 09:46:11
+--- orig/cleanup.c 2005-01-28 23:01:07
+++ cleanup.c 2005-01-10 10:40:51
@@ -25,6 +25,7 @@ extern int io_error;
extern int keep_partial;
/**
* Close all open sockets and files, allowing a (somewhat) graceful
-@@ -126,6 +127,8 @@ void _exit_cleanup(int code, const char
+@@ -125,6 +126,8 @@ void _exit_cleanup(int code, const char
!partial_dir);
}
io_flush(FULL_FLUSH);
#define RERR_SIGNAL 20 /* status returned when sent SIGUSR1, SIGINT */
#define RERR_WAITCHILD 21 /* some error returned by waitpid() */
---- orig/flist.c 2005-01-28 19:08:20
+--- orig/flist.c 2005-02-03 02:04:20
+++ flist.c 2005-01-21 19:10:03
@@ -69,6 +69,7 @@ extern int delete_excluded;
extern int max_delete;
extern struct filter_list_struct filter_list;
extern struct filter_list_struct server_filter_list;
-@@ -356,7 +357,10 @@ void send_file_entry(struct file_struct
+@@ -348,7 +349,10 @@ void send_file_entry(struct file_struct
io_write_phase = "send_file_entry";
flags = base_flags;
-@@ -572,6 +576,9 @@ void receive_file_entry(struct file_stru
+@@ -564,6 +568,9 @@ static void receive_file_entry(struct fi
strlcpy(lastname, thisname, MAXPATHLEN);
clean_fname(thisname, 0);
if (sanitize_paths)
-@@ -1088,6 +1095,9 @@ struct file_list *send_file_list(int f,
+@@ -1081,6 +1088,9 @@ struct file_list *send_file_list(int f,
start_write = stats.total_written;
gettimeofday(&start_tv, NULL);
flist = flist_new(f == -1 ? WITHOUT_HLINK : WITH_HLINK,
"send_file_list");
-@@ -1291,6 +1301,9 @@ struct file_list *send_file_list(int f,
+@@ -1269,6 +1279,9 @@ struct file_list *send_file_list(int f,
stats.num_files = flist->count;
}
if (verbose > 3)
output_flist(flist, f < 0 ? "delete" : who_am_i());
-@@ -1312,6 +1325,9 @@ struct file_list *recv_file_list(int f)
+@@ -1290,6 +1303,9 @@ struct file_list *recv_file_list(int f)
start_read = stats.total_read;
flist = flist_new(WITH_HLINK, "recv_file_list");
received_flist = flist;
-@@ -1365,6 +1381,9 @@ struct file_list *recv_file_list(int f)
+@@ -1343,6 +1359,9 @@ struct file_list *recv_file_list(int f)
io_error |= read_int(f);
}
+ if (verbose > 2)
+ rprintf(FINFO, "Converted filename: %s -> %s\n", src, dest);
+}
---- orig/generator.c 2005-01-25 12:14:14
-+++ generator.c 2004-07-03 20:18:02
-@@ -235,6 +235,12 @@ static void generate_and_send_sums(int f
+--- orig/generator.c 2005-02-03 02:04:20
++++ generator.c 2005-02-03 02:07:33
+@@ -235,7 +235,13 @@ static void generate_and_send_sums(int f
+ * start sending checksums.
*
- * @note This comment was added later by mbp who was trying to work it
- * out. It might be wrong.
+ * Note that f_out is set to -1 when doing final directory-permission and
+- * modification-time repair. */
++ * modification-time repair.
+ *
+ * TODO: The filename seen in recv_generator is after filename
+ * conversion. In verbose mode, directories, symlinks and device
+ * files are printf()ed here but regular files are rprintf()ed on the
+ * sender (unconverted). To solve the above, move all progress
-+ * reporting to the sender.
- */
++ * reporting to the sender. */
static void recv_generator(char *fname, struct file_list *flist,
- struct file_struct *file, int i,
---- orig/log.c 2005-01-28 19:08:20
+ struct file_struct *file, int ndx,
+ int f_out, int f_out_name)
+--- orig/log.c 2005-02-01 10:39:22
+++ log.c 2004-07-03 20:18:02
@@ -57,6 +57,7 @@ struct {
{ RERR_STREAMIO , "error in rsync protocol data stream" },
{ RERR_SIGNAL , "received SIGUSR1 or SIGINT" },
{ RERR_WAITCHILD , "some error returned by waitpid()" },
{ RERR_MALLOC , "error allocating core memory buffers" },
---- orig/main.c 2005-01-28 19:08:20
+--- orig/main.c 2005-01-30 10:07:21
+++ main.c 2004-07-22 00:31:47
-@@ -355,7 +355,7 @@ static pid_t do_cmd(char *cmd, char *mac
+@@ -361,7 +361,7 @@ static pid_t do_cmd(char *cmd, char *mac
whole_file = 1;
ret = local_child(argc, args, f_in, f_out, child_main);
} else
if (dir)
free(dir);
---- orig/options.c 2005-01-28 19:08:20
+--- orig/options.c 2005-02-01 10:39:22
+++ options.c 2005-01-28 19:29:38
@@ -129,6 +129,7 @@ char *basis_dir[MAX_BASIS_DIRS+1];
char *config_file = NULL;
if (pid == -1) {
rsyserr(FERROR, errno, "fork");
exit_cleanup(RERR_IPC);
---- orig/syscall.c 2005-01-28 17:12:14
+--- orig/syscall.c 2005-01-28 23:01:10
+++ syscall.c 2004-07-02 21:39:00
@@ -259,3 +259,34 @@ char *d_name(struct dirent *di)
return di->d_name;
make proto
---- orig/io.c 2005-01-28 06:51:59
+--- orig/io.c 2005-02-03 02:04:20
+++ io.c 2005-01-10 10:49:17
@@ -244,6 +244,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 2005-01-27 22:25:43
+--- orig/main.c 2005-01-30 10:07:21
+++ main.c 2005-01-28 17:13:25
-@@ -36,6 +36,7 @@ extern int delete_mode;
+@@ -35,6 +35,7 @@ extern int cvs_exclude;
+ extern int delete_mode;
extern int delete_before;
- extern int delete_after;
extern int delete_excluded;
+extern int delete_sent_files;
extern int daemon_over_rsh;
extern int do_stats;
extern int dry_run;
-@@ -43,6 +44,7 @@ extern int list_only;
+@@ -42,6 +43,7 @@ extern int list_only;
extern int local_server;
extern int log_got_error;
extern int module_id;
extern int orig_umask;
extern int copy_links;
extern int keep_dirlinks;
-@@ -437,6 +439,12 @@ static void do_server_sender(int f_in, i
+@@ -443,6 +445,12 @@ static void do_server_sender(int f_in, i
exit_cleanup(RERR_SYNTAX);
return;
}
if (!relative_paths && !push_dir(dir)) {
rsyserr(FERROR, errno, "push_dir#3 %s failed",
-@@ -671,6 +679,8 @@ void start_server(int f_in, int f_out, i
+@@ -676,6 +684,8 @@ void start_server(int f_in, int f_out, i
if (am_sender) {
keep_dirlinks = 0; /* Must be disabled on the sender. */
recv_filter_list(f_in);
if (cvs_exclude)
-@@ -753,6 +763,9 @@ int client_run(int f_in, int f_out, pid_
+@@ -758,6 +768,9 @@ int client_run(int f_in, int f_out, pid_
exit_cleanup(status);
}
if (argc == 0)
list_only |= 1;
---- orig/options.c 2005-01-28 17:12:13
+--- orig/options.c 2005-02-01 10:39:22
+++ options.c 2005-01-23 07:30:51
-@@ -59,6 +59,7 @@ int delete_during = 0;
+@@ -60,6 +60,7 @@ int delete_during = 0;
int delete_before = 0;
int delete_after = 0;
int delete_excluded = 0;
{"force", 0, POPT_ARG_NONE, &force_delete, 0, 0, 0 },
{"numeric-ids", 0, POPT_ARG_NONE, &numeric_ids, 0, 0, 0 },
{"filter", 'f', POPT_ARG_STRING, 0, OPT_FILTER, 0, 0 },
-@@ -919,6 +923,9 @@ int parse_arguments(int *argc, const cha
+@@ -925,6 +929,9 @@ int parse_arguments(int *argc, const cha
else if (delete_mode || delete_excluded)
delete_mode = delete_before = 1;
*argv = poptGetArgs(pc);
*argc = count_args(*argv);
-@@ -1315,6 +1322,9 @@ void server_options(char **args,int *arg
+@@ -1321,6 +1328,9 @@ void server_options(char **args,int *arg
if (!implied_dirs && !am_sender)
args[ac++] = "--no-implied-dirs";
*argc = ac;
return;
---- orig/receiver.c 2005-01-27 23:57:45
+--- orig/receiver.c 2005-02-03 02:04:20
+++ receiver.c 2004-08-13 08:38:51
-@@ -42,6 +42,7 @@ extern int basis_dir_cnt;
+@@ -41,6 +41,7 @@ extern int basis_dir_cnt;
extern int make_backups;
extern int do_progress;
extern int cleanup_got_literal;
extern int module_id;
extern int ignore_errors;
extern int orig_umask;
-@@ -271,7 +272,7 @@ int recv_files(int f_in, struct file_lis
+@@ -275,7 +276,7 @@ int recv_files(int f_in, struct file_lis
char *fname, fbuf[MAXPATHLEN];
char template[MAXPATHLEN];
char fnametmp[MAXPATHLEN];
char fnamecmpbuf[MAXPATHLEN];
uchar *delayed_bits = NULL;
struct file_struct *file;
-@@ -527,7 +528,12 @@ int recv_files(int f_in, struct file_lis
+@@ -532,7 +533,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) {
-@@ -551,9 +557,8 @@ int recv_files(int f_in, struct file_lis
+@@ -556,9 +562,8 @@ int recv_files(int f_in, struct file_lis
keptstr, redostr);
}
if (csum_length != SUM_LENGTH) {
}
}
}
---- orig/rsync.h 2005-01-28 17:12:14
-+++ rsync.h 2004-07-03 20:17:10
-@@ -60,6 +60,7 @@
- #define FLAG_DEL_START (1<<0)
+--- orig/rsync.h 2005-02-03 02:04:20
++++ rsync.h 2005-02-03 02:04:59
+@@ -61,6 +61,7 @@
#define FLAG_HLINK_EOL (1<<1) /* generator only */
#define FLAG_MOUNT_POINT (1<<2) /* sender only */
+ #define FLAG_DEL_HERE (1<<3) /* receiver/generator */
+#define FLAG_SENT (1<<7) /* sender only */
/* update this if you make incompatible changes */
#define PROTOCOL_VERSION 29
-@@ -145,6 +146,7 @@ enum logcode { FERROR=1, FINFO=2, FLOG=3
+@@ -146,6 +147,7 @@ enum logcode { FERROR=1, FINFO=2, FLOG=3
/* Messages types that are sent over the message channel. The logcode
* values must all be present here with identical numbers. */
enum msgcode {
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 2005-01-28 17:12:14
-+++ rsync.yo 2005-01-23 07:31:03
-@@ -349,6 +349,7 @@ verb(
+--- orig/rsync.yo 2005-02-01 10:39:23
++++ rsync.yo 2005-02-03 02:05:29
+@@ -338,6 +338,7 @@ to the detailed description below for a
--delete-during receiver deletes during xfer, not before
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files on receiver
--ignore-errors delete even if there are I/O errors
--force force deletion of dirs even if not empty
--max-delete=NUM don't delete more than NUM files
-@@ -738,6 +739,11 @@ receiving side that are not on the sendi
- delete any files on the receiving side that are excluded (see --exclude).
- See --delete (which is implied) for more details on file-deletion.
+@@ -727,6 +728,11 @@ receiving side that are not on the sendi
+ delete any files on the receiving side that are excluded (see bf(--exclude)).
+ See bf(--delete) (which is implied) for more details on file-deletion.
+dit(bf(--delete-sent-files)) This tells rsync to remove the source files
+on the sending side that are successfully transferred to the receiving
+side. Directories are not removed, nor are files that are identical on
+both systems.
+
- dit(bf(--ignore-errors)) Tells --delete to go ahead and delete files
+ dit(bf(--ignore-errors)) Tells bf(--delete) to go ahead and delete files
even when there are I/O errors.
---- orig/sender.c 2005-01-25 00:00:31
+--- orig/sender.c 2005-02-03 02:04:20
+++ 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;
-@@ -249,6 +274,9 @@ void send_files(struct file_list *flist,
+@@ -254,6 +279,9 @@ void send_files(struct file_list *flist,
rprintf(FINFO, "sender finished %s\n",
safe_fname(fname));
}