Mercurial > gftp.yaz
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)