- Call hard_link_check() with its new args.
[rsync/rsync.git] / generator.c
index a4a54a0..3bb3749 100644 (file)
@@ -723,6 +723,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
 
        if (max_size && file->length > max_size) {
                if (verbose > 1) {
+                       if (the_file_list->count == 1)
+                               fname = f_name(file);
                        rprintf(FINFO, "%s is over max-size\n",
                                safe_fname(fname));
                }
@@ -733,6 +735,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
 #ifdef SUPPORT_LINKS
                if (safe_symlinks && unsafe_symlink(file->u.link, fname)) {
                        if (verbose) {
+                               if (the_file_list->count == 1)
+                                       fname = f_name(file);
                                rprintf(FINFO,
                                        "ignoring unsafe symlink %s -> \"%s\"\n",
                                        full_fname(fname),
@@ -825,10 +829,14 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                return;
        }
 
-       if (preserve_hard_links && hard_link_check(file, ndx, HL_CHECK_MASTER))
+       if (preserve_hard_links
+           && hard_link_check(file, ndx, fname, statret, &st,
+                              itemizing, code, HL_CHECK_MASTER))
                return;
 
        if (!S_ISREG(file->mode)) {
+               if (the_file_list->count == 1)
+                       fname = f_name(file);
                rprintf(FINFO, "skipping non-regular file \"%s\"\n",
                        safe_fname(fname));
                return;
@@ -908,11 +916,6 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                                                  itemizing && verbose > 1,
                                                  code) == 0)
                                        return;
-                               if (verbose) {
-                                       rsyserr(FINFO, errno, "link %s => %s",
-                                               full_fname(fnamecmpbuf),
-                                               safe_fname(fname));
-                               }
                                match_level = 2;
                        }
 #endif
@@ -981,7 +984,9 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
        }
 
        if (statret != 0) {
-               if (preserve_hard_links && hard_link_check(file, ndx, HL_SKIP))
+               if (preserve_hard_links
+                   && hard_link_check(file, ndx, fname, statret, &st,
+                                      itemizing, code, HL_SKIP))
                        return;
                if (stat_errno == ENOENT)
                        goto notify_others;
@@ -1039,7 +1044,9 @@ prepare_to_open:
                        full_fname(fnamecmp));
            pretend_missing:
                /* pretend the file didn't exist */
-               if (preserve_hard_links && hard_link_check(file, ndx, HL_SKIP))
+               if (preserve_hard_links
+                   && hard_link_check(file, ndx, fname, statret, &st,
+                                      itemizing, code, HL_SKIP))
                        return;
                statret = real_ret = -1;
                goto notify_others;