return;
}
+ io_write_phase = "send_file_entry";
+
fname = f_name(file);
flags = base_flags;
strlcpy(lastname, fname, MAXPATHLEN);
lastname[MAXPATHLEN - 1] = 0;
+
+ io_write_phase = "unknown";
}
(flags & SAME_GID) ? last_gid : (gid_t) read_int(f);
if (preserve_devices && IS_DEVICE(file->mode))
file->rdev =
- (flags & SAME_RDEV) ? last_rdev : (dev_t) read_int(f);
+ (flags & SAME_RDEV) ? last_rdev : (DEV64_T) read_int(f);
if (preserve_links && S_ISLNK(file->mode)) {
int l = read_int(f);
if (readlink_stat(fname, &st, linkbuf) != 0) {
int save_errno = errno;
- if ((errno == ENOENT) && copy_links && !noexcludes) {
- /* symlink pointing nowhere, see if excluded */
+ if ((errno == ENOENT) && !noexcludes) {
+ /* either symlink pointing nowhere or file that
+ * was removed during rsync run; see if excluded
+ * before reporting an error */
memset((char *) &st, 0, sizeof(st));
if (check_exclude_file(f, fname, &st)) {
/* file is excluded anyway, ignore silently */
}
-/*
+/**
*
- * I *think* f==-1 means that the list should just be built in memory
- * and not transmitted. But who can tell? -- mbp
- */
+ * I <b>think</b> f==-1 means that the list should just be built in
+ * memory and not transmitted. But who can tell? -- mbp
+ **/
struct file_list *send_file_list(int f, int argc, char *argv[])
{
int i, l;
{
int low = 0, high = flist->count - 1;
- if (flist->count <= 0)
+ while (high >= 0 && !flist->files[high]->basename) high--;
+
+ if (high < 0)
return -1;
while (low != high) {
/*
* allocate a new file list
*/
-struct file_list *flist_new()
+struct file_list *flist_new(void)
{
struct file_list *flist;