OSDN Git Service

Change behavior of automatic software update.
[ffftp/ffftp.git] / getput.c
index 39a7194..f2eea10 100644 (file)
--- a/getput.c
+++ b/getput.c
@@ -84,6 +84,8 @@ static void DispTransPacket(TRANSPACKET *Pkt);
 static void EraseTransFileList(void);\r
 static ULONG WINAPI TransferThread(void *Dummy);\r
 static int MakeNonFullPath(TRANSPACKET *Pkt, char *CurDir, char *Tmp);\r
+// ミラーリング設定追加\r
+static int SetDownloadedFileTime(TRANSPACKET *Pkt);\r
 static int DownloadNonPassive(TRANSPACKET *Pkt, int *CancelCheckWork);\r
 static int DownloadPassive(TRANSPACKET *Pkt, int *CancelCheckWork);\r
 static int DownloadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *CancelCheckWork);\r
@@ -930,10 +932,20 @@ static ULONG WINAPI TransferThread(void *Dummy)
 //                                             {\r
 //                                                     if(ReConnectTrnSkt() == FFFTP_SUCCESS)\r
 //                                                             DoDownload(AskTrnCtrlSkt(), TransPacketBase, NO, &Canceled);\r
+                                               // ミラーリング設定追加\r
+                                               if(Pos->NoTransfer == NO)\r
+                                               {\r
                                                                Sts = DoDownload(TrnSkt, Pos, NO, &Canceled[Pos->ThreadCount]) / 100;\r
                                                                if(Sts != FTP_COMPLETE)\r
                                                                        LastError = YES;\r
-//                                             }\r
+                                               }\r
+\r
+                                               // ミラーリング設定追加\r
+                                               if((SaveTimeStamp == YES) &&\r
+                                                  ((Pos->Time.dwLowDateTime != 0) || (Pos->Time.dwHighDateTime != 0)))\r
+                                               {\r
+                                                       SetDownloadedFileTime(Pos);\r
+                                               }\r
                                        }\r
                                }\r
                                // 一部TYPE、STOR(RETR)、PORT(PASV)を並列に処理できないホストがあるため\r
@@ -954,10 +966,13 @@ static ULONG WINAPI TransferThread(void *Dummy)
 //                                     {\r
 //                                             if(ReConnectTrnSkt() == FFFTP_SUCCESS)\r
 //                                                     DoUpload(AskTrnCtrlSkt(), TransPacketBase);\r
+                                       // ミラーリング設定追加\r
+                                       if(Pos->NoTransfer == NO)\r
+                                       {\r
                                                        Sts = DoUpload(TrnSkt, Pos) / 100;\r
                                                        if(Sts != FTP_COMPLETE)\r
                                                                LastError = YES;\r
-//                                     }\r
+                                       }\r
 \r
                                        // ホスト側の日時設定\r
                                        /* ファイルのタイムスタンプを合わせる */\r
@@ -1347,6 +1362,21 @@ static int MakeNonFullPath(TRANSPACKET *Pkt, char *Cur, char *Tmp)
 \r
 \r
 \r
+// ミラーリング設定追加\r
+static int SetDownloadedFileTime(TRANSPACKET *Pkt)\r
+{\r
+       int Sts;\r
+       HANDLE hFile;\r
+       Sts = FFFTP_FAIL;\r
+       if((hFile = CreateFile(Pkt->LocalFile, GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) != INVALID_HANDLE_VALUE)\r
+       {\r
+               if(SetFileTime(hFile, &Pkt->Time, &Pkt->Time, &Pkt->Time))\r
+                       Sts = FFFTP_SUCCESS;\r
+               CloseHandle(hFile);\r
+       }\r
+       return Sts;\r
+}\r
+\r
 /*----- ダウンロードを行なう --------------------------------------------------\r
 *\r
 *      Parameter\r
@@ -1395,13 +1425,7 @@ int DoDownload(SOCKET cSkt, TRANSPACKET *Pkt, int DirList, int *CancelCheckWork)
                                        DispTransFileInfo(Pkt, MSGJPN087, FALSE, NO);\r
                        }\r
 \r
-                       // SFTP対応\r
-//                     if(BackgrndMessageProc() == NO)\r
-                       if(IsSFTPAttached(Pkt->ctrl_skt))\r
-                       {\r
-                               // TODO:\r
-                       }\r
-                       else if(BackgrndMessageProc() == NO)\r
+                       if(BackgrndMessageProc() == NO)\r
                        {\r
                                if(AskPasvMode() != YES)\r
                                        iRetCode = DownloadNonPassive(Pkt, CancelCheckWork);\r
@@ -1520,7 +1544,7 @@ static int DownloadNonPassive(TRANSPACKET *Pkt, int *CancelCheckWork)
 //                                     iRetCode = DownloadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
                                        if(IsSSLAttached(Pkt->ctrl_skt))\r
                                        {\r
-                                               if(AttachSSL(data_socket, Pkt->ctrl_skt, CancelCheckWork))\r
+                                               if(AttachSSL(data_socket, Pkt->ctrl_skt, CancelCheckWork, FALSE))\r
                                                        iRetCode = DownloadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
                                                else\r
                                                        iRetCode = 500;\r
@@ -1630,7 +1654,7 @@ static int DownloadPassive(TRANSPACKET *Pkt, int *CancelCheckWork)
 //                                             iRetCode = DownloadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
                                                if(IsSSLAttached(Pkt->ctrl_skt))\r
                                                {\r
-                                                       if(AttachSSL(data_socket, Pkt->ctrl_skt, CancelCheckWork))\r
+                                                       if(AttachSSL(data_socket, Pkt->ctrl_skt, CancelCheckWork, FALSE))\r
                                                                iRetCode = DownloadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
                                                        else\r
                                                                iRetCode = 500;\r
@@ -2307,11 +2331,12 @@ static int DownloadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *Canc
                }\r
 \r
                /* ファイルのタイムスタンプを合わせる */\r
-               if((SaveTimeStamp == YES) &&\r
-                  ((Pkt->Time.dwLowDateTime != 0) || (Pkt->Time.dwHighDateTime != 0)))\r
-               {\r
-                       SetFileTime(iFileHandle, &Pkt->Time, &Pkt->Time, &Pkt->Time);\r
-               }\r
+               // ミラーリング設定追加\r
+//             if((SaveTimeStamp == YES) &&\r
+//                ((Pkt->Time.dwLowDateTime != 0) || (Pkt->Time.dwHighDateTime != 0)))\r
+//             {\r
+//                     SetFileTime(iFileHandle, &Pkt->Time, &Pkt->Time, &Pkt->Time);\r
+//             }\r
 \r
                CloseHandle(iFileHandle);\r
 \r
@@ -2684,13 +2709,7 @@ static int DoUpload(SOCKET cSkt, TRANSPACKET *Pkt)
                                if(Pkt->hWndTrans != NULL)\r
                                        DispTransFileInfo(Pkt, MSGJPN104, TRUE, YES);\r
 \r
-                               // SFTP対応\r
-//                             if(BackgrndMessageProc() == NO)\r
-                               if(IsSFTPAttached(Pkt->ctrl_skt))\r
-                               {\r
-                                       // TODO:\r
-                               }\r
-                               else if(BackgrndMessageProc() == NO)\r
+                               if(BackgrndMessageProc() == NO)\r
                                {\r
                                        if(AskPasvMode() != YES)\r
                                                iRetCode = UploadNonPassive(Pkt);\r
@@ -2846,7 +2865,7 @@ static int UploadNonPassive(TRANSPACKET *Pkt)
 //                             iRetCode = UploadFile(Pkt, data_socket);\r
                                if(IsSSLAttached(Pkt->ctrl_skt))\r
                                {\r
-                                       if(AttachSSL(data_socket, Pkt->ctrl_skt, &Canceled[Pkt->ThreadCount]))\r
+                                       if(AttachSSL(data_socket, Pkt->ctrl_skt, &Canceled[Pkt->ThreadCount], FALSE))\r
                                                iRetCode = UploadFile(Pkt, data_socket);\r
                                        else\r
                                                iRetCode = 500;\r
@@ -2965,7 +2984,7 @@ static int UploadPassive(TRANSPACKET *Pkt)
 //                                     iRetCode = UploadFile(Pkt, data_socket);\r
                                        if(IsSSLAttached(Pkt->ctrl_skt))\r
                                        {\r
-                                               if(AttachSSL(data_socket, Pkt->ctrl_skt, &Canceled[Pkt->ThreadCount]))\r
+                                               if(AttachSSL(data_socket, Pkt->ctrl_skt, &Canceled[Pkt->ThreadCount], FALSE))\r
                                                        iRetCode = UploadFile(Pkt, data_socket);\r
                                                else\r
                                                        iRetCode = 500;\r