diff src/uicommon/gftpui.c @ 774:2adc6b8b3197

2006-7-19 Brian Masney <masneyb@gftp.org> * src/uicommon/gftpui.c - make sure the directories have the proper permissions when "preserve file permissions" is enabled (from Aurelien Jarno <aurelien@aurel32.net>) (closes #312722)
author masneyb
date Thu, 20 Jul 2006 02:20:49 +0000
parents 1ad4eb5c29de
children c1144630c4f4
line wrap: on
line diff
--- a/src/uicommon/gftpui.c	Thu Jul 20 02:16:30 2006 +0000
+++ b/src/uicommon/gftpui.c	Thu Jul 20 02:20:49 2006 +0000
@@ -1295,6 +1295,11 @@
   gettimeofday (&tdata->starttime, NULL);
   memcpy (&tdata->lasttime, &tdata->starttime, sizeof (tdata->lasttime));
 
+  gftp_lookup_request_option (tdata->fromreq, "preserve_permissions",
+                              &preserve_permissions);
+  gftp_lookup_request_option (tdata->fromreq, "preserve_time",
+                              &preserve_time);
+
   while (tdata->curfle != NULL)
     {
       num_read = -1;
@@ -1333,6 +1338,14 @@
                   tdata->toreq->mkdir (tdata->toreq, curfle->destfile);
                   if (!GFTP_IS_CONNECTED (tdata->toreq))
                     break;
+
+		  if (preserve_permissions && curfle->st_mode != 0)
+                    gftp_chmod (tdata->toreq, curfle->destfile,
+                                curfle->st_mode & (S_IRWXU | S_IRWXG | S_IRWXO));
+
+                  if (preserve_time && curfle->datetime != 0)
+                    gftp_set_file_time (tdata->toreq, curfle->destfile,
+                                curfle->datetime);
                 }
 
               if (g_thread_supported ())
@@ -1476,11 +1489,6 @@
             }
         }
 
-      gftp_lookup_request_option (tdata->fromreq, "preserve_permissions",
-                                  &preserve_permissions);
-      gftp_lookup_request_option (tdata->fromreq, "preserve_time",
-                                  &preserve_time);
-
       if (!curfle->is_fd)
         {
           if (preserve_permissions && curfle->st_mode != 0)