Re-activate the piece of code that creates intervening directories
authorDavid Dykstra <dwd@samba.org>
Mon, 20 Jan 2003 23:32:17 +0000 (23:32 +0000)
committerDavid Dykstra <dwd@samba.org>
Mon, 20 Jan 2003 23:32:17 +0000 (23:32 +0000)
when --relative-paths is used.  The code was accidentally skipped starting
in CVS version 1.32 of receiver.c.  Noticed by Craig Barratt.

NEWS
receiver.c

diff --git a/NEWS b/NEWS
index e612078..0de4a64 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -60,6 +60,9 @@ rsync changes since last release
     * Prevent infinite recursion in cleanup code under certain circumstances.
       (Sviatoslav Sviridov)
 
     * Prevent infinite recursion in cleanup code under certain circumstances.
       (Sviatoslav Sviridov)
 
+    * Fixed a bug that prevented rsync from creating intervening directories
+      when --relative-paths/-R is set.  (Craig Barratt)
+
   INTERNAL:
 
     * Many code cleanups and improved internal documentation.  (Martin 
   INTERNAL:
 
     * Many code cleanups and improved internal documentation.  (Martin 
index a4a3383..ae270cf 100644 (file)
@@ -425,13 +425,6 @@ int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
                   this out.  We also set it initially without group
                   access because of a similar race condition. */
                fd2 = do_mkstemp(fnametmp, file->mode & INITACCESSPERMS);
                   this out.  We also set it initially without group
                   access because of a similar race condition. */
                fd2 = do_mkstemp(fnametmp, file->mode & INITACCESSPERMS);
-               if (fd2 == -1) {
-                       rprintf(FERROR,"mkstemp %s failed: %s\n",fnametmp,strerror(errno));
-                       receive_data(f_in,buf,-1,NULL,file->length);
-                       if (buf) unmap_file(buf);
-                       if (fd1 != -1) close(fd1);
-                       continue;
-               }
 
                /* in most cases parent directories will already exist
                   because their information should have been previously
 
                /* in most cases parent directories will already exist
                   because their information should have been previously
@@ -442,7 +435,7 @@ int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
                        fd2 = do_mkstemp(fnametmp, file->mode & INITACCESSPERMS);
                }
                if (fd2 == -1) {
                        fd2 = do_mkstemp(fnametmp, file->mode & INITACCESSPERMS);
                }
                if (fd2 == -1) {
-                       rprintf(FERROR,"cannot create %s : %s\n",fnametmp,strerror(errno));
+                       rprintf(FERROR,"mkstemp %s failed: %s\n",fnametmp,strerror(errno));
                        receive_data(f_in,buf,-1,NULL,file->length);
                        if (buf) unmap_file(buf);
                        if (fd1 != -1) close(fd1);
                        receive_data(f_in,buf,-1,NULL,file->length);
                        if (buf) unmap_file(buf);
                        if (fd1 != -1) close(fd1);