OSDN Git Service

Enhance routines for connections with FTPIS.
[ffftp/ffftp.git] / hostman.c
index 83f6b3a..0567946 100644 (file)
--- a/hostman.c
+++ b/hostman.c
@@ -28,6 +28,8 @@
 /============================================================================*/\r
 \r
 #define        STRICT\r
+// IPv6対応\r
+#include <winsock2.h>\r
 #include <windows.h>\r
 #include <stdio.h>\r
 #include <stdlib.h>\r
@@ -1036,10 +1038,13 @@ int CopyHostFromListInConnect(int Num, HOSTDATA *Set)
                Set->UseSFTP = Pos->Set.UseSFTP;\r
                // 同時接続対応\r
                Set->MaxThreadCount = Pos->Set.MaxThreadCount;\r
+               Set->ReuseCmdSkt = Pos->Set.ReuseCmdSkt;\r
                // MLSD対応\r
                Set->UseMLSD = Pos->Set.UseMLSD;\r
                // IPv6対応\r
-               Set->UseIPv6 = Pos->Set.UseIPv6;\r
+               Set->NetType = Pos->Set.NetType;\r
+               // 自動切断対策\r
+               Set->NoopInterval = Pos->Set.NoopInterval;\r
                Sts = FFFTP_SUCCESS;\r
        }\r
        return(Sts);\r
@@ -1297,6 +1302,8 @@ void CopyDefaultHost(HOSTDATA *Set)
        Set->KanjiCode = KANJI_NOCNV;\r
        Set->KanaCnv = YES;\r
        Set->NameKanjiCode = KANJI_NOCNV;\r
+       // UTF-8対応\r
+       Set->CurNameKanjiCode = KANJI_NOCNV;\r
        Set->NameKanaCnv = NO;\r
        Set->Pasv = YES;\r
        Set->FireWall = NO;\r
@@ -1322,11 +1329,15 @@ void CopyDefaultHost(HOSTDATA *Set)
        strcpy(Set->PrivateKey, "");\r
        // 同時接続対応\r
        Set->MaxThreadCount = 1;\r
+       Set->ReuseCmdSkt = NO;\r
        // MLSD対応\r
        Set->Feature = 0;\r
        Set->UseMLSD = YES;\r
        // IPv6対応\r
-       Set->UseIPv6 = YES;\r
+       Set->NetType = NTYPE_AUTO;\r
+       Set->CurNetType = NTYPE_AUTO;\r
+       // 自動切断対策\r
+       Set->NoopInterval = 0;\r
        return;\r
 }\r
 \r
@@ -1800,6 +1811,11 @@ static BOOL CALLBACK AdvSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPA
                        SendDlgItemMessage(hDlg, HSET_SECURITY, CB_SETCURSEL, TmpHost.Security, 0);\r
                        SendDlgItemMessage(hDlg, HSET_INITCMD, EM_LIMITTEXT, INITCMD_LEN, 0);\r
                        SendDlgItemMessage(hDlg, HSET_INITCMD, WM_SETTEXT, 0, (LPARAM)TmpHost.InitCmd);\r
+                       // IPv6対応\r
+                       SendDlgItemMessage(hDlg, HSET_NETTYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN332);\r
+                       SendDlgItemMessage(hDlg, HSET_NETTYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN333);\r
+                       SendDlgItemMessage(hDlg, HSET_NETTYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN334);\r
+                       SendDlgItemMessage(hDlg, HSET_NETTYPE, CB_SETCURSEL, TmpHost.NetType, 0);\r
                        return(TRUE);\r
 \r
                case WM_NOTIFY:\r
@@ -1816,6 +1832,8 @@ static BOOL CALLBACK AdvSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPA
                                        TmpHost.TimeZone = SendDlgItemMessage(hDlg, HSET_TIMEZONE, CB_GETCURSEL, 0, 0) - 12;\r
                                        TmpHost.Security = SendDlgItemMessage(hDlg, HSET_SECURITY, CB_GETCURSEL, 0, 0);\r
                                        SendDlgItemMessage(hDlg, HSET_INITCMD, WM_GETTEXT, INITCMD_LEN+1, (LPARAM)TmpHost.InitCmd);\r
+                                       // IPv6対応\r
+                                       TmpHost.NetType = SendDlgItemMessage(hDlg, HSET_NETTYPE, CB_GETCURSEL, 0, 0);\r
                                        Apply = YES;\r
                                        break;\r
 \r
@@ -2213,6 +2231,10 @@ static BOOL CALLBACK Adv3SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP
                        SendDlgItemMessage(hDlg, HSET_THREAD_COUNT, EM_LIMITTEXT, (WPARAM)1, 0);\r
                        SetDecimalText(hDlg, HSET_THREAD_COUNT, TmpHost.MaxThreadCount);\r
                        SendDlgItemMessage(hDlg, HSET_THREAD_COUNT_SPN, UDM_SETRANGE, 0, (LPARAM)MAKELONG(MAX_DATA_CONNECTION, 1));\r
+                       SendDlgItemMessage(hDlg, HSET_REUSE_SOCKET, BM_SETCHECK, TmpHost.ReuseCmdSkt, 0);\r
+                       SendDlgItemMessage(hDlg, HSET_NOOP_INTERVAL, EM_LIMITTEXT, (WPARAM)3, 0);\r
+                       SetDecimalText(hDlg, HSET_NOOP_INTERVAL, TmpHost.NoopInterval);\r
+                       SendDlgItemMessage(hDlg, HSET_NOOP_INTERVAL_SPN, UDM_SETRANGE, 0, (LPARAM)MAKELONG(300, 0));\r
                        return(TRUE);\r
 \r
                case WM_NOTIFY:\r
@@ -2222,6 +2244,9 @@ static BOOL CALLBACK Adv3SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP
                                case PSN_APPLY :\r
                                        TmpHost.MaxThreadCount = GetDecimalText(hDlg, HSET_THREAD_COUNT);\r
                                        CheckRange2(&TmpHost.MaxThreadCount, MAX_DATA_CONNECTION, 1);\r
+                                       TmpHost.ReuseCmdSkt = SendDlgItemMessage(hDlg, HSET_REUSE_SOCKET, BM_GETCHECK, 0, 0);\r
+                                       TmpHost.NoopInterval = GetDecimalText(hDlg, HSET_NOOP_INTERVAL);\r
+                                       CheckRange2(&TmpHost.NoopInterval, 300, 0);\r
                                        Apply = YES;\r
                                        break;\r
 \r
@@ -2237,3 +2262,23 @@ static BOOL CALLBACK Adv3SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP
        return(FALSE);\r
 }\r
 \r
+// 暗号化通信対応\r
+// ホストの暗号化設定を更新\r
+int SetHostExcryption(int Num, int UseNoEncryption, int UseFTPES, int UseFTPIS, int UseSFTP)\r
+{\r
+       int Sts;\r
+       HOSTLISTDATA *Pos;\r
+\r
+       Sts = FFFTP_FAIL;\r
+       if((Num >= 0) && (Num < Hosts))\r
+       {\r
+               Pos = GetNodeByNum(Num);\r
+               Pos->Set.UseNoEncryption = UseNoEncryption;\r
+               Pos->Set.UseFTPES = UseFTPES;\r
+               Pos->Set.UseFTPIS = UseFTPIS;\r
+               Pos->Set.UseSFTP = UseSFTP;\r
+               Sts = FFFTP_SUCCESS;\r
+       }\r
+       return(Sts);\r
+}\r
+\r