Handle the --remove-sender-files option by sending MSG_SUCCESS for
authorWayne Davison <wayned@samba.org>
Fri, 30 Jun 2006 15:42:29 +0000 (15:42 +0000)
committerWayne Davison <wayned@samba.org>
Fri, 30 Jun 2006 15:42:29 +0000 (15:42 +0000)
any file that is being hard-linked.

hlink.c

diff --git a/hlink.c b/hlink.c
index 65ddd15..2cd1c6e 100644 (file)
--- a/hlink.c
+++ b/hlink.c
 #include "rsync.h"
 
 extern int verbose;
+extern int do_xfers;
 extern int link_dest;
 extern int make_backups;
+extern int remove_sender_files;
 extern int stdout_format_has_i;
 extern char *basis_dir[];
 extern struct file_list *the_file_list;
@@ -222,6 +224,11 @@ int hard_link_check(struct file_struct *file, int ndx, char *fname,
                        }
                        maybe_hard_link(file, ndx, fname, statret, st,
                                        toname, &st2, itemizing, code);
+                       if (remove_sender_files == 1 && do_xfers) {
+                               char numbuf[4];
+                               SIVAL(numbuf, 0, ndx);
+                               send_msg(MSG_SUCCESS, numbuf, 4);
+                       }
                        file->F_HLINDEX = FINISHED_LINK;
                } else
                        file->F_HLINDEX = SKIPPED_LINK;
@@ -287,6 +294,11 @@ void hard_link_cluster(struct file_struct *file, int master, int itemizing,
                statret = link_stat(hlink2, &st2, 0);
                maybe_hard_link(file, ndx, hlink2, statret, &st2,
                                hlink1, &st1, itemizing, code);
+               if (remove_sender_files == 1 && do_xfers) {
+                       char numbuf[4];
+                       SIVAL(numbuf, 0, ndx);
+                       send_msg(MSG_SUCCESS, numbuf, 4);
+               }
                file->F_HLINDEX = FINISHED_LINK;
        } while (!(file->flags & FLAG_HLINK_EOL));
 #endif