X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/e90aab4982c4ce8b3f778cc072d677dd0dbb3dca..9aacb4df0e29b11e298d7353467d821e4a17cc12:/generator.c diff --git a/generator.c b/generator.c index d50c090f..0f53891f 100644 --- a/generator.c +++ b/generator.c @@ -61,6 +61,7 @@ extern int csum_length; extern int ignore_times; extern int size_only; extern OFF_T max_size; +extern OFF_T min_size; extern int io_error; extern int allowed_lull; extern int sock_f_out; @@ -814,7 +815,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, if (statret != 0 || (st.st_mode & ~CHMOD_BITS) != (file->mode & ~CHMOD_BITS) || st.st_rdev != file->u.rdev) { - if (delete_item(fname, st.st_mode, DEL_TERSE) < 0) + if (statret == 0 + && delete_item(fname, st.st_mode, DEL_TERSE) < 0) return; if (preserve_hard_links && file->link_u.links && hard_link_check(file, ndx, fname, -1, &st, @@ -872,6 +874,15 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, } return; } + if (min_size && file->length < min_size) { + if (verbose > 1) { + if (the_file_list->count == 1) + fname = f_name(file); + rprintf(FINFO, "%s is under min-size\n", + safe_fname(fname)); + } + return; + } if (ignore_existing && statret == 0) { if (verbose > 1) @@ -1265,7 +1276,7 @@ void generate_files(int f_out, struct file_list *flist, char *local_name) phase++; csum_length = SUM_LENGTH; - max_size = ignore_existing = ignore_non_existing = 0; + max_size = min_size = ignore_existing = ignore_non_existing = 0; update_only = always_checksum = size_only = 0; ignore_times = 1; if (append_mode) /* resend w/o append mode */