OSDN Git Service

Prepare for release of 1.98f.
[ffftp/ffftp.git] / history.c
index fe2ab64..8bd01e1 100644 (file)
--- a/history.c
+++ b/history.c
@@ -1,6 +1,6 @@
-/*=============================================================================\r
+/*=============================================================================\r
 *\r
 *\r
-*                                                                              \83q\83X\83g\83\8a\r
+*                                                                              ヒストリ\r
 *\r
 ===============================================================================\r
 / Copyright (C) 1997-2007 Sota. All rights reserved.\r
 *\r
 ===============================================================================\r
 / Copyright (C) 1997-2007 Sota. All rights reserved.\r
@@ -28,6 +28,8 @@
 /============================================================================*/\r
 \r
 #define  STRICT\r
 /============================================================================*/\r
 \r
 #define  STRICT\r
+// IPv6対応\r
+#include <winsock2.h>\r
 #include <windows.h>\r
 #include <stdio.h>\r
 #include <stdlib.h>\r
 #include <windows.h>\r
 #include <stdio.h>\r
 #include <stdlib.h>\r
 #include <windowsx.h>\r
 #include <commctrl.h>\r
 #include <stdarg.h>\r
 #include <windowsx.h>\r
 #include <commctrl.h>\r
 #include <stdarg.h>\r
-#include <winsock.h>\r
+// IPv6対応\r
+//#include <winsock.h>\r
 \r
 #include "common.h"\r
 #include "resource.h"\r
 \r
 \r
 \r
 #include "common.h"\r
 #include "resource.h"\r
 \r
 \r
-/*===== \83v\83\8d\83g\83^\83C\83v =====*/\r
+/*===== プロトタイプ =====*/\r
 \r
 static void CopyHostToHistory(HOSTDATA *Host, HISTORYDATA *New);\r
 static void AddOneFnameToMenu(char *Host, char *User, char *Remote, int Num);\r
 static void RemoveAllHistoryFromMenu(void);\r
 \r
 \r
 static void CopyHostToHistory(HOSTDATA *Host, HISTORYDATA *New);\r
 static void AddOneFnameToMenu(char *Host, char *User, char *Remote, int Num);\r
 static void RemoveAllHistoryFromMenu(void);\r
 \r
-/*===== \8aO\95\94\8eQ\8fÆ =====*/\r
+/*===== 外部参照 =====*/\r
 \r
 \r
-/* \90Ý\92è\92l */\r
+/* 設定値 */\r
 extern int FileHist;\r
 extern int PassToHist;\r
 \r
 extern int FileHist;\r
 extern int PassToHist;\r
 \r
-/*===== \83\8d\81[\83J\83\8b\82È\83\8f\81[\83N =====*/\r
+/*===== ローカルなワーク =====*/\r
 \r
 static HISTORYDATA *HistoryBase = NULL;\r
 static int HistoryNum = 0;\r
 \r
 \r
 static HISTORYDATA *HistoryBase = NULL;\r
 static int HistoryNum = 0;\r
 \r
-/* \83q\83X\83g\83\8a\82Ì\83\81\83j\83\85\81[\8d\80\96Ú\82ÌID */\r
+/* ヒストリのメニュー項目のID */\r
 static int MenuHistId[HISTORY_MAX] = {\r
        MENU_HIST_1,  MENU_HIST_2,  MENU_HIST_3,  MENU_HIST_4,  MENU_HIST_5,\r
        MENU_HIST_6,  MENU_HIST_7,  MENU_HIST_8,  MENU_HIST_9,  MENU_HIST_10,\r
 static int MenuHistId[HISTORY_MAX] = {\r
        MENU_HIST_1,  MENU_HIST_2,  MENU_HIST_3,  MENU_HIST_4,  MENU_HIST_5,\r
        MENU_HIST_6,  MENU_HIST_7,  MENU_HIST_8,  MENU_HIST_9,  MENU_HIST_10,\r
@@ -70,14 +73,14 @@ static int MenuHistId[HISTORY_MAX] = {
 \r
 \r
 \r
 \r
 \r
 \r
-/*----- \83z\83X\83g\8fî\95ñ\82ð\83q\83X\83g\83\8a\83\8a\83X\83g\82Ì\90æ\93ª\82É\92Ç\89Á\82·\82é ----------------------------\r
+/*----- ホスト情報をヒストリリストの先頭に追加する ----------------------------\r
 *\r
 *      Parameter\r
 *\r
 *      Parameter\r
-*              HOSTDATA *Host : \83z\83X\83g\83f\81[\83^\r
-*              int TrMode : \93]\91\97\83\82\81[\83h\r
+*              HOSTDATA *Host : ホストデータ\r
+*              int TrMode : 転送モード\r
 *\r
 *      Return Value\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void AddHostToHistory(HOSTDATA *Host, int TrMode)\r
 *----------------------------------------------------------------------------*/\r
 \r
 void AddHostToHistory(HOSTDATA *Host, int TrMode)\r
@@ -91,13 +94,13 @@ void AddHostToHistory(HOSTDATA *Host, int TrMode)
 }\r
 \r
 \r
 }\r
 \r
 \r
-/*----- \83q\83X\83g\83\8a\82ð\83q\83X\83g\83\8a\83\8a\83X\83g\82Ì\90æ\93ª\82É\92Ç\89Á\82·\82é ------------------------------\r
+/*----- ヒストリをヒストリリストの先頭に追加する ------------------------------\r
 *\r
 *      Parameter\r
 *\r
 *      Parameter\r
-*              HISTORYDATA *Hist : \83q\83X\83g\83\8a\83f\81[\83^\r
+*              HISTORYDATA *Hist : ヒストリデータ\r
 *\r
 *      Return Value\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void AddHistoryToHistory(HISTORYDATA *Hist)\r
 *----------------------------------------------------------------------------*/\r
 \r
 void AddHistoryToHistory(HISTORYDATA *Hist)\r
@@ -120,13 +123,13 @@ void AddHistoryToHistory(HISTORYDATA *Hist)
 }\r
 \r
 \r
 }\r
 \r
 \r
-/*----- \83q\83X\83g\83\8a\82Ì\90\94\82ð\95Ô\82· ----------------------------------------------------\r
+/*----- ヒストリの数を返す ----------------------------------------------------\r
 *\r
 *      Parameter\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
 *\r
 *      Return Value\r
-*              int \83q\83X\83g\83\8a\82Ì\90\94\r
+*              int ヒストリの数\r
 *----------------------------------------------------------------------------*/\r
 \r
 int AskHistoryNum(void)\r
 *----------------------------------------------------------------------------*/\r
 \r
 int AskHistoryNum(void)\r
@@ -135,13 +138,13 @@ int AskHistoryNum(void)
 }\r
 \r
 \r
 }\r
 \r
 \r
-/*----- \83q\83X\83g\83\8a\82Ì\90\94\82ð\83`\83F\83b\83N\82µ\91½\82·\82¬\82½\82ç\8dí\8f\9c --------------------------------\r
+/*----- ヒストリの数をチェックし多すぎたら削除 --------------------------------\r
 *\r
 *      Parameter\r
 *\r
 *      Parameter\r
-*              int Space : \8bó\82¯\82Ä\82¨\82­\8cÂ\90\94 (0\81`)\r
+*              int Space : 空けておく個数 (0~)\r
 *\r
 *      Return Value\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void CheckHistoryNum(int Space)\r
 *----------------------------------------------------------------------------*/\r
 \r
 void CheckHistoryNum(int Space)\r
@@ -153,7 +156,7 @@ void CheckHistoryNum(int Space)
 \r
        if(HistoryNum > FileHist-Space)\r
        {\r
 \r
        if(HistoryNum > FileHist-Space)\r
        {\r
-               /* \8ec\82·\82×\82«\83q\83X\83g\83\8a\82ð\92T\82· */\r
+               /* 残すべきヒストリを探す */\r
                Pos = HistoryBase;\r
                Prev = NULL;\r
                for(i = 0; i < FileHist-Space; i++)\r
                Pos = HistoryBase;\r
                Prev = NULL;\r
                for(i = 0; i < FileHist-Space; i++)\r
@@ -162,7 +165,7 @@ void CheckHistoryNum(int Space)
                        Pos = Pos->Next;\r
                }\r
 \r
                        Pos = Pos->Next;\r
                }\r
 \r
-               /* \82¢\82ç\82È\82¢\83q\83X\83g\83\8a\82ð\8fÁ\82· */\r
+               /* いらないヒストリを消す */\r
                if(Prev == NULL)\r
                        HistoryBase = NULL;\r
                else\r
                if(Prev == NULL)\r
                        HistoryBase = NULL;\r
                else\r
@@ -180,14 +183,14 @@ void CheckHistoryNum(int Space)
 }\r
 \r
 \r
 }\r
 \r
 \r
-/*----- \83z\83X\83g\8fî\95ñ\82ð\83q\83X\83g\83\8a\82É\83Z\83b\83g ------------------------------------------\r
+/*----- ホスト情報をヒストリにセット ------------------------------------------\r
 *\r
 *      Parameter\r
 *\r
 *      Parameter\r
-*              HOSTDATA *Host : \83z\83X\83g\83f\81[\83^\r
-*              HISTORYDATA *New : \83q\83X\83g\83\8a\82ð\83Z\83b\83g\82·\82é\83\8f\81[\83N\r
+*              HOSTDATA *Host : ホストデータ\r
+*              HISTORYDATA *New : ヒストリをセットするワーク\r
 *\r
 *      Return Value\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void CopyHostToHistory(HOSTDATA *Host, HISTORYDATA *New)\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void CopyHostToHistory(HOSTDATA *Host, HISTORYDATA *New)\r
@@ -223,18 +226,36 @@ static void CopyHostToHistory(HOSTDATA *Host, HISTORYDATA *New)
        New->DialupAlways = Host->DialupAlways;\r
        New->DialupNotify = Host->DialupNotify;\r
        strcpy(New->DialEntry, Host->DialEntry);\r
        New->DialupAlways = Host->DialupAlways;\r
        New->DialupNotify = Host->DialupNotify;\r
        strcpy(New->DialEntry, Host->DialEntry);\r
+       // 暗号化通信対応\r
+       New->UseNoEncryption = Host->UseNoEncryption;\r
+       New->UseFTPES = Host->UseFTPES;\r
+       New->UseFTPIS = Host->UseFTPIS;\r
+       New->UseSFTP = Host->UseSFTP;\r
+       strcpy(New->PrivateKey, Host->PrivateKey);\r
+       // 同時接続対応\r
+       New->MaxThreadCount = Host->MaxThreadCount;\r
+       New->ReuseCmdSkt = Host->ReuseCmdSkt;\r
+       // MLSD対応\r
+       New->UseMLSD = Host->UseMLSD;\r
+       // IPv6対応\r
+       New->NetType = Host->NetType;\r
+       // 自動切断対策\r
+       New->NoopInterval = Host->NoopInterval;\r
+       // 再転送対応\r
+       New->TransferErrorMode = Host->TransferErrorMode;\r
+       New->TransferErrorNotify = Host->TransferErrorNotify;\r
        return;\r
 }\r
 \r
 \r
        return;\r
 }\r
 \r
 \r
-/*----- \83q\83X\83g\83\8a\8fî\95ñ\82ð\83z\83X\83g\8fî\95ñ\82É\83Z\83b\83g --------------------------------------\r
+/*----- ヒストリ情報をホスト情報にセット --------------------------------------\r
 *\r
 *      Parameter\r
 *\r
 *      Parameter\r
-*              HISTORYDATA *Hist : \83q\83X\83g\83\8a\r
-*              HOSTDATA *Host : \83z\83X\83g\83f\81[\83^\82ð\83Z\83b\83g\82·\82é\83\8f\81[\83N\r
+*              HISTORYDATA *Hist : ヒストリ\r
+*              HOSTDATA *Host : ホストデータをセットするワーク\r
 *\r
 *      Return Value\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void CopyHistoryToHost(HISTORYDATA *Hist, HOSTDATA *Host)\r
 *----------------------------------------------------------------------------*/\r
 \r
 void CopyHistoryToHost(HISTORYDATA *Hist, HOSTDATA *Host)\r
@@ -272,17 +293,35 @@ void CopyHistoryToHost(HISTORYDATA *Hist, HOSTDATA *Host)
        Host->DialupAlways = Hist->DialupAlways;\r
        Host->DialupNotify = Hist->DialupNotify;\r
        strcpy(Host->DialEntry, Hist->DialEntry);\r
        Host->DialupAlways = Hist->DialupAlways;\r
        Host->DialupNotify = Hist->DialupNotify;\r
        strcpy(Host->DialEntry, Hist->DialEntry);\r
+       // 暗号化通信対応\r
+       Host->UseNoEncryption = Hist->UseNoEncryption;\r
+       Host->UseFTPES = Hist->UseFTPES;\r
+       Host->UseFTPIS = Hist->UseFTPIS;\r
+       Host->UseSFTP = Hist->UseSFTP;\r
+       strcpy(Host->PrivateKey, Hist->PrivateKey);\r
+       // 同時接続対応\r
+       Host->MaxThreadCount = Hist->MaxThreadCount;\r
+       Host->ReuseCmdSkt = Hist->ReuseCmdSkt;\r
+       // MLSD対応\r
+       Host->UseMLSD = Hist->UseMLSD;\r
+       // IPv6対応\r
+       Host->NetType = Hist->NetType;\r
+       // 自動切断対策\r
+       Host->NoopInterval = Hist->NoopInterval;\r
+       // 再転送対応\r
+       Host->TransferErrorMode = Hist->TransferErrorMode;\r
+       Host->TransferErrorNotify = Hist->TransferErrorNotify;\r
        return;\r
 }\r
 \r
 \r
        return;\r
 }\r
 \r
 \r
-/*----- \83q\83X\83g\83\8a\8fî\95ñ\82Ì\8f\89\8aú\92l\82ð\8eæ\93¾ --------------------------------------------\r
+/*----- ヒストリ情報の初期値を取得 --------------------------------------------\r
 *\r
 *      Parameter\r
 *\r
 *      Parameter\r
-*              HISTORYDATA *Set : \83q\83X\83g\83\8a\82ð\83Z\83b\83g\82·\82é\83\8f\81[\83N\r
+*              HISTORYDATA *Set : ヒストリをセットするワーク\r
 *\r
 *      Return Value\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void CopyDefaultHistory(HISTORYDATA *Set)\r
 *----------------------------------------------------------------------------*/\r
 \r
 void CopyDefaultHistory(HISTORYDATA *Set)\r
@@ -295,13 +334,13 @@ void CopyDefaultHistory(HISTORYDATA *Set)
 }\r
 \r
 \r
 }\r
 \r
 \r
-/*----- \91S\83q\83X\83g\83\8a\82ð\83\81\83j\83\85\81[\82É\83Z\83b\83g ------------------------------------------\r
+/*----- 全ヒストリをメニューにセット ------------------------------------------\r
 *\r
 *      Parameter\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetAllHistoryToMenu(void)\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetAllHistoryToMenu(void)\r
@@ -321,16 +360,16 @@ void SetAllHistoryToMenu(void)
 }\r
 \r
 \r
 }\r
 \r
 \r
-/*----- \83q\83X\83g\83\8a\82ð\83\81\83j\83\85\81[\82É\92Ç\89Á ----------------------------------------------\r
+/*----- ヒストリをメニューに追加 ----------------------------------------------\r
 *\r
 *      Parameter\r
 *\r
 *      Parameter\r
-*              char *Host : \83z\83X\83g\96¼\r
-*              char *User : \83\86\81[\83U\96¼\r
-*              char *Remote : \83z\83X\83g\82Ì\83t\83H\83\8b\83_\r
-*              int Num : \94Ô\8d\86\r
+*              char *Host : ホスト名\r
+*              char *User : ユーザ名\r
+*              char *Remote : ホストのフォルダ\r
+*              int Num : 番号\r
 *\r
 *      Return Value\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void AddOneFnameToMenu(char *Host, char *User, char *Remote, int Num)\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void AddOneFnameToMenu(char *Host, char *User, char *Remote, int Num)\r
@@ -356,13 +395,13 @@ static void AddOneFnameToMenu(char *Host, char *User, char *Remote, int Num)
 }\r
 \r
 \r
 }\r
 \r
 \r
-/*----- \91S\83q\83X\83g\83\8a\82ð\83\81\83j\83\85\81[\82©\82ç\8dí\8f\9c ------------------------------------------\r
+/*----- 全ヒストリをメニューから削除 ------------------------------------------\r
 *\r
 *      Parameter\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void RemoveAllHistoryFromMenu(void)\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void RemoveAllHistoryFromMenu(void)\r
@@ -381,15 +420,15 @@ static void RemoveAllHistoryFromMenu(void)
 }\r
 \r
 \r
 }\r
 \r
 \r
-/*----- \8ew\92è\83\81\83j\83\85\81[\83R\83}\83\93\83h\82É\91Î\89\9e\82·\82é\83q\83X\83g\83\8a\82ð\95Ô\82· --------------------------\r
+/*----- 指定メニューコマンドに対応するヒストリを返す --------------------------\r
 *\r
 *      Parameter\r
 *\r
 *      Parameter\r
-*              int MenuCmd : \8eæ\82è\8fo\82·\83q\83X\83g\83\8a\82É\8a\84\82è\93\96\82Ä\82ç\82ê\82½\83\81\83j\83\85\81[\83R\83}\83\93\83h (MENU_xxx)\r
-*              HISTORYDATA *Buf : \83q\83X\83g\83\8a\83f\81[\83^\82ð\95Ô\82·\83o\83b\83t\83@\r
+*              int MenuCmd : 取り出すヒストリに割り当てられたメニューコマンド (MENU_xxx)\r
+*              HISTORYDATA *Buf : ヒストリデータを返すバッファ\r
 *\r
 *      Return Value\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 int GetHistoryByCmd(int MenuCmd, HISTORYDATA *Buf)\r
 *----------------------------------------------------------------------------*/\r
 \r
 int GetHistoryByCmd(int MenuCmd, HISTORYDATA *Buf)\r
@@ -398,14 +437,14 @@ int GetHistoryByCmd(int MenuCmd, HISTORYDATA *Buf)
        int i;\r
        HISTORYDATA *Pos;\r
 \r
        int i;\r
        HISTORYDATA *Pos;\r
 \r
-       Sts = FAIL;\r
+       Sts = FFFTP_FAIL;\r
        Pos = HistoryBase;\r
        for(i = 0; i < HistoryNum; i++)\r
        {\r
                if(MenuHistId[i] == MenuCmd)\r
                {\r
                        memcpy(Buf, Pos, sizeof(HISTORYDATA));\r
        Pos = HistoryBase;\r
        for(i = 0; i < HistoryNum; i++)\r
        {\r
                if(MenuHistId[i] == MenuCmd)\r
                {\r
                        memcpy(Buf, Pos, sizeof(HISTORYDATA));\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
                }\r
                Pos = Pos->Next;\r
        }\r
                }\r
                Pos = Pos->Next;\r
        }\r
@@ -413,15 +452,15 @@ int GetHistoryByCmd(int MenuCmd, HISTORYDATA *Buf)
 }\r
 \r
 \r
 }\r
 \r
 \r
-/*----- \8ew\92è\94Ô\8d\86\82É\91Î\89\9e\82·\82é\83q\83X\83g\83\8a\82ð\95Ô\82· --------------------------------------\r
+/*----- 指定番号に対応するヒストリを返す --------------------------------------\r
 *\r
 *      Parameter\r
 *\r
 *      Parameter\r
-*              int Num : \94Ô\8d\86(0\81`)\r
-*              HISTORYDATA *Buf : \83q\83X\83g\83\8a\83f\81[\83^\82ð\95Ô\82·\83o\83b\83t\83@\r
+*              int Num : 番号(0~)\r
+*              HISTORYDATA *Buf : ヒストリデータを返すバッファ\r
 *\r
 *      Return Value\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 int GetHistoryByNum(int Num, HISTORYDATA *Buf)\r
 *----------------------------------------------------------------------------*/\r
 \r
 int GetHistoryByNum(int Num, HISTORYDATA *Buf)\r