---- rsync.c 23 Mar 2004 16:16:15 -0000 1.135
-+++ rsync.c 15 Apr 2004 19:14:12 -0000
-@@ -235,6 +235,9 @@ void finish_transfer(char *fname, char *
+--- rsync.c 15 May 2004 19:31:10 -0000 1.139
++++ rsync.c 15 May 2004 20:17:41 -0000
+@@ -236,6 +236,9 @@ void finish_transfer(char *fname, char *
if (make_backups && !make_backup(fname))
return;
/* move tmp file over real file */
ret = robust_rename(fnametmp, fname, file->mode & INITACCESSPERMS);
if (ret < 0) {
-@@ -242,8 +245,9 @@ void finish_transfer(char *fname, char *
+@@ -243,7 +246,8 @@ void finish_transfer(char *fname, char *
ret == -2 ? "copy" : "rename",
- full_fname(fnametmp), fname, strerror(errno));
+ full_fname(fnametmp), fname);
do_unlink(fnametmp);
- } else {
-- set_perms(fname,file,NULL,0);
+ } else if (ret == 1) {
+ /* The file got copied, so set the permissions again. */
-+ set_perms(fname, file, NULL, 0);
+ set_perms(fname, file, NULL,
+ ok_to_set_time ? 0 : PERMS_SKIP_MTIME);
}
- }
-
---- t_stub.c 14 Apr 2004 23:33:34 -0000 1.6
-+++ t_stub.c 15 Apr 2004 19:14:12 -0000
+--- t_stub.c 15 May 2004 19:31:05 -0000 1.8
++++ t_stub.c 15 May 2004 20:17:41 -0000
@@ -26,6 +26,7 @@
* functions, so that module test harnesses can run standalone.
**/
int modify_window = 0;
int module_id = -1;
struct exclude_list_struct server_exclude_list;
---- util.c 14 Apr 2004 23:33:34 -0000 1.135
-+++ util.c 15 Apr 2004 19:14:13 -0000
+--- util.c 15 May 2004 19:31:10 -0000 1.143
++++ util.c 15 May 2004 20:17:41 -0000
@@ -28,6 +28,7 @@
#include "rsync.h"
extern struct exclude_list_struct server_exclude_list;
int sanitize_paths = 0;
-@@ -263,6 +264,8 @@ int copy_file(char *source, char *dest,
+@@ -261,6 +262,8 @@ int copy_file(char *source, char *dest,
return -1;
}
+ mode |= S_IWUSR;
ofd = do_open(dest, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, mode);
if (ofd == -1) {
- rprintf(FERROR,"open %s: %s\n",
-@@ -354,8 +357,8 @@ int robust_unlink(char *fname)
+ rsyserr(FERROR, errno, "open %s", full_fname(dest));
+@@ -359,8 +362,8 @@ int robust_unlink(char *fname)
#endif
}
int robust_rename(char *from, char *to, int mode)
{
int tries = 4;
-@@ -372,10 +375,12 @@ int robust_rename(char *from, char *to,
+@@ -377,10 +380,12 @@ int robust_rename(char *from, char *to,
break;
#endif
case EXDEV: