extern int preserve_gid;
extern int relative_paths;
extern int implied_dirs;
+extern int ignore_perishable;
+extern int non_perishable_cnt;
extern int prune_empty_dirs;
extern int copy_links;
extern int copy_unsafe_links;
int save_errno = errno;
/* See if file is excluded before reporting an error. */
if (filter_level != NO_FILTERS
- && is_excluded(thisname, 0, filter_level))
+ && (is_excluded(thisname, 0, filter_level)
+ || is_excluded(thisname, 1, filter_level))) {
+ if (ignore_perishable && save_errno != ENOENT)
+ non_perishable_cnt++;
return NULL;
+ }
if (save_errno == ENOENT) {
#ifdef SUPPORT_LINKS
/* Avoid "vanished" error if symlink points nowhere. */
flags |= FLAG_MOUNT_POINT;
}
- if (is_excluded(thisname, S_ISDIR(st.st_mode) != 0, filter_level))
+ if (is_excluded(thisname, S_ISDIR(st.st_mode) != 0, filter_level)) {
+ if (ignore_perishable)
+ non_perishable_cnt++;
return NULL;
+ }
if (lp_ignore_nonreadable(module_id)) {
#ifdef SUPPORT_LINKS
}
}
- if (fn != fbuf) {
- if (len >= MAXPATHLEN)
- overflow_exit("send_file_list");
+ if (fn != fbuf)
memmove(fbuf, fn, len + 1);
- }
if (implied_dirs && (p=strrchr(fbuf,'/')) && p != fbuf) {
/* Send the implied directories at the start of the