X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/0c2ef5f42dfb71f2af99e58cd9934fb365f079fb..d89a3a313ace4f2c8f743ad5f8fc8f181bf71633:/receiver.c diff --git a/receiver.c b/receiver.c index 00160640..aa3c659a 100644 --- a/receiver.c +++ b/receiver.c @@ -59,7 +59,7 @@ static int delete_already_done(struct file_list *flist,int j) for (i=0;ilength); + if (fd1 != -1 && S_ISDIR(st.st_mode) && fnamecmp == fname) { + /* this special handling for directories + * wouldn't be necessary if robust_rename() + * and the underlying robust_unlink could cope + * with directories + */ + rprintf(FERROR,"%s : is a directory (recv_files)\n", + fnamecmp); + receive_data(f_in, NULL, -1, NULL, file->length); close(fd1); continue; } + if (fd1 != -1 && !S_ISREG(st.st_mode)) { + close(fd1); + fd1 = -1; + buf = NULL; + } + if (fd1 != -1 && !preserve_perms) { /* if the file exists already and we aren't preserving permissions then act as though the remote end sent