• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

FFFTPのソースコードです。


Commit MetaInfo

Revisiónb8acb368c57d5232c40a022a17e373c13005a4bd (tree)
Tiempo2013-02-22 19:17:02
Autors_kawamoto <s_kawamoto@user...>
Commiters_kawamoto

Log Message

Add an option to turn on/off stateful FTP filter of Windows Firewall (Windows Vista or later only).
Modify documents.

Cambiar Resumen

Diferencia incremental

Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
--- a/Resource/FFFTP.rc
+++ b/Resource/FFFTP.rc
@@ -156,6 +156,7 @@ BEGIN
156156 POPUP "ツール(&T)"
157157 BEGIN
158158 MENUITEM "ワンタイムパスワード計算(&O)...", MENU_OTPCALC
159+ MENUITEM "WindowsファイアウォールのステートフルFTPフィルタの設定(&F)...", MENU_FW_FTP_FILTER
159160 END
160161 POPUP "オプション(&O)"
161162 BEGIN
--- a/Resource/resource.h
+++ b/Resource/resource.h
@@ -456,7 +456,7 @@
456456 #define TRMODE4_EUC_CNV 1217
457457 #define TRMODE4_UTF8N_CNV 1218
458458 #define TRMODE4_UTF8BOM_CNV 1219
459-#define HSET_ERROR_RECONNECT 1220
459+#define HSET_ERROR_RECONNECT 1220
460460 #define MENU_END 40001
461461 #define MENU_EXIT 40001
462462 #define MENU_CONNECT 40003
@@ -636,6 +636,7 @@
636636 #define ID_BUTTON40175 40175
637637 #define MENU_SWITCH_OSS 40176
638638 #define MENU_OPEN 40177
639+#define MENU_FW_FTP_FILTER 40178
639640 #define FSNOTIFY_TITLE 65535
640641 #define HOST_SIZEGRIP 65535
641642
@@ -644,7 +645,7 @@
644645 #ifdef APSTUDIO_INVOKED
645646 #ifndef APSTUDIO_READONLY_SYMBOLS
646647 #define _APS_NEXT_RESOURCE_VALUE 197
647-#define _APS_NEXT_COMMAND_VALUE 40177
648+#define _APS_NEXT_COMMAND_VALUE 40179
648649 #define _APS_NEXT_CONTROL_VALUE 1221
649650 #define _APS_NEXT_SYMED_VALUE 101
650651 #endif
--- a/Resource_eng/FFFTP-eng.rc
+++ b/Resource_eng/FFFTP-eng.rc
@@ -156,6 +156,7 @@ BEGIN
156156 POPUP "&Tools"
157157 BEGIN
158158 MENUITEM "&One-Time Password Calculation...", MENU_OTPCALC
159+ MENUITEM "Turn on/off Stateful FTP &Filtering of Windows Firewall...", MENU_FW_FTP_FILTER
159160 END
160161 POPUP "&Options"
161162 BEGIN
@@ -780,7 +781,8 @@ BEGIN
780781 PUSHBUTTON "A&dd...",TRMODE_ADD,167,19,31,14
781782 PUSHBUTTON "Delete",TRMODE_DEL,167,38,31,14
782783 CONTROL "&Remove EOF for ASCII mode upload",TRMODE_EOF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,94,196,10
783- CONTROL "Retain file date/&time on upload and download",TRMODE_TIME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,108,196,10
784+ CONTROL "Retain file date/&time on upload and download",TRMODE_TIME,
785+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,108,196,10
784786 CONTROL "Truncate filename before &semicolon on download",TRMODE_SEMICOLON,
785787 "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,122,196,10
786788 CONTROL "Create &directory at file transfer with renaming",TRMODE_MAKEDIR,
@@ -794,7 +796,8 @@ FONT 9, "MS Shell Dlg"
794796 BEGIN
795797 CONTROL "&Overwrite existing file",UP_EXIST_OVW,"Button",BS_AUTORADIOBUTTON | WS_GROUP,8,38,99,10
796798 CONTROL "Overwrite if upload file is &newer",UP_EXIST_NEW,"Button",BS_AUTORADIOBUTTON,7,50,118,10
797- CONTROL "Overwrite if upload file is &larger",UP_EXIST_LARGE,"Button",BS_AUTORADIOBUTTON,7,62,118,10
799+ CONTROL "Overwrite if upload file is &larger",UP_EXIST_LARGE,
800+ "Button",BS_AUTORADIOBUTTON,7,62,118,10
798801 CONTROL "&Resume",UP_EXIST_RESUME,"Button",BS_AUTORADIOBUTTON,7,74,99,10
799802 CONTROL "Rename &by the host",UP_EXIST_UNIQUE,"Button",BS_AUTORADIOBUTTON,7,86,99,10
800803 CONTROL "&Skip",UP_EXIST_IGNORE,"Button",BS_AUTORADIOBUTTON,7,98,99,10
@@ -1486,7 +1489,8 @@ opt_disp2_dlg DIALOG 0, 0, 211, 155
14861489 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
14871490 FONT 9, "MS Shell Dlg"
14881491 BEGIN
1489- CONTROL "Display file &permissions in numbers",DISP2_PERMIT_NUM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,7,196,10
1492+ CONTROL "Display file &permissions in numbers",DISP2_PERMIT_NUM,
1493+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,7,196,10
14901494 END
14911495
14921496
--- a/Resource_eng/resource.h
+++ b/Resource_eng/resource.h
@@ -456,7 +456,7 @@
456456 #define TRMODE4_EUC_CNV 1217
457457 #define TRMODE4_UTF8N_CNV 1218
458458 #define TRMODE4_UTF8BOM_CNV 1219
459-#define HSET_ERROR_RECONNECT 1220
459+#define HSET_ERROR_RECONNECT 1220
460460 #define MENU_END 40001
461461 #define MENU_EXIT 40001
462462 #define MENU_CONNECT 40003
@@ -636,6 +636,7 @@
636636 #define ID_BUTTON40175 40175
637637 #define MENU_SWITCH_OSS 40176
638638 #define MENU_OPEN 40177
639+#define MENU_FW_FTP_FILTER 40178
639640 #define FSNOTIFY_TITLE 65535
640641 #define HOST_SIZEGRIP 65535
641642
@@ -644,7 +645,7 @@
644645 #ifdef APSTUDIO_INVOKED
645646 #ifndef APSTUDIO_READONLY_SYMBOLS
646647 #define _APS_NEXT_RESOURCE_VALUE 197
647-#define _APS_NEXT_COMMAND_VALUE 40177
648+#define _APS_NEXT_COMMAND_VALUE 40179
648649 #define _APS_NEXT_CONTROL_VALUE 1221
649650 #define _APS_NEXT_SYMED_VALUE 101
650651 #endif
--- a/common.h
+++ b/common.h
@@ -1885,6 +1885,8 @@ int Make6WordPass(int seq, char *seed, char *pass, int type, char *buf);
18851885 /*===== tool.c =====*/
18861886
18871887 void OtpCalcTool(void);
1888+// FTPS対応
1889+void TurnStatefulFTPFilter();
18881890
18891891 /*===== history.c =====*/
18901892
--- a/doc/eng/FFFTP.txt
+++ b/doc/eng/FFFTP.txt
@@ -62,12 +62,17 @@ Changes in Ver.1.98g
6262 the main window while files were transferring.
6363
6464 -- Added an option to control NATs with Universal Plug and Play on non PASV
65- mode connections.
65+ mode connections (Windows XP or later only).
6666 This allows computers that are under NATs that have private IP addresses to
6767 listen for connections with PORT commands.
6868
6969 -- Supported the file list format of Windows Server 2008 R2.
7070
71+-- Added an option to turn on/off stateful FTP filtering of Windows Firewall
72+ (Windows Vista or later only).
73+ This may improve communication conditions in the case that FTPES connection
74+ used to be interrupted or that the computer has only private IP addresses.
75+
7176
7277 Outline
7378 -------
--- a/doc/eng/history.txt
+++ b/doc/eng/history.txt
@@ -34,12 +34,17 @@ Changes in Ver.1.98g
3434 the main window while files were transferring.
3535
3636 -- Added an option to control NATs with Universal Plug and Play on non PASV
37- mode connections.
37+ mode connections (Windows XP or later only).
3838 This allows computers that are under NATs that have private IP addresses to
3939 listen for connections with PORT commands.
4040
4141 -- Supported the file list format of Windows Server 2008 R2.
4242
43+-- Added an option to turn on/off stateful FTP filtering of Windows Firewall
44+ (Windows Vista or later only).
45+ This may improve communication conditions in the case that FTPES connection
46+ used to be interrupted or that the computer has only private IP addresses.
47+
4348 Changes in Ver.1.98f
4449 --------------------
4550
--- a/doc/jpn/FFFTP.txt
+++ b/doc/jpn/FFFTP.txt
@@ -66,6 +66,11 @@ Ver 1.98g
6666
6767 ・Windows Server 2008 R2のファイル一覧形式に対応しました。
6868
69+・WindowsファイアウォールのステートフルFTPフィルタの設定を追加しました
70+ (Windows Vista以降のみ)。
71+ FTPESで接続が切断される場合は無効に、プライベートIPアドレスを持つ
72+ コンピュータでは有効にすると通信状態が改善されることがあります。
73+
6974
7075 Ver 1.96d以前へ戻す場合
7176 -----------------------
--- a/doc/jpn/history.txt
+++ b/doc/jpn/history.txt
@@ -38,6 +38,11 @@ FFFTP
3838
3939 ・Windows Server 2008 R2のファイル一覧形式に対応しました。
4040
41+・WindowsファイアウォールのステートフルFTPフィルタの設定を追加しました
42+ (Windows Vista以降のみ)。
43+ FTPESで接続が切断される場合は無効に、プライベートIPアドレスを持つ
44+ コンピュータでは有効にすると通信状態が改善されることがあります。
45+
4146 ■Ver 1.98f
4247
4348 ・選択ダイアログが正常に機能しないバグを修正しました。
--- a/main.c
+++ b/main.c
@@ -1545,6 +1545,11 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA
15451545 OtpCalcTool();
15461546 break;
15471547
1548+ // FTPS対応
1549+ case MENU_FW_FTP_FILTER :
1550+ TurnStatefulFTPFilter();
1551+ break;
1552+
15481553 case MENU_URL_COPY :
15491554 CopyURLtoClipBoard();
15501555 break;
--- a/mesg-eng.h
+++ b/mesg-eng.h
@@ -339,6 +339,8 @@
339339 #define MSGJPN338 _Tu8("Skip all", "Skip all")
340340 #define MSGJPN339 _Tu8("Transfer4", "Transfer4")
341341 #define MSGJPN340 _Tu8("View2", "View2")
342+#define MSGJPN341 _Tu8("Enable or disable stateful FTP filtering of Windows Firewall.\nIt works only on Windows Vista or later.\nEnabling or disabling may improve communication conditions.\nChoose 'Yes' to enable or 'No' to disable it.", "Enable or disable stateful FTP filtering of Windows Firewall.\nIt works only on Windows Vista or later.\nEnabling or disabling may improve communication conditions.\nChoose 'Yes' to enable or 'No' to disable it.")
343+#define MSGJPN342 _Tu8("Failed to turn on/off stateful FTP filtering.", "Failed to turn on/off stateful FTP filtering.")
342344 #if defined(HAVE_TANDEM)
343345 #define MSGJPN2000 _Tu8("NonStop Server", "NonStop Server")
344346 #define MSGJPN2001 _Tu8("OSS<->GUARDIAN Switch(&O)", "OSS<->GUARDIAN Switch(&O)")
--- a/mesg-jpn.h
+++ b/mesg-jpn.h
@@ -20,7 +20,7 @@
2020 #define MSGJPN019 _Tu8("ホスト %s が見つかりません. (%s)", "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s \xE3\x81\x8C\xE8\xA6\x8B\xE3\x81\xA4\xE3\x81\x8B\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (%s)")
2121 #define MSGJPN020 _Tu8("%sホスト %s (%d) に接続しています. (%s)", "%s\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s (%d) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99. (%s)")
2222 #define MSGJPN021 _Tu8("SOCKSサーバー %s が見つかりません. (%s)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC %s \xE3\x81\x8C\xE8\xA6\x8B\xE3\x81\xA4\xE3\x81\x8B\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (%s)")
23-#define MSGJPN022 _Tu8("SOCKSサーバー %s (%d) に接続しています。 (%s)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC %s (%d) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99\xE3\x80\x82 (%s)")
23+#define MSGJPN022 _Tu8("SOCKSサーバー %s (%d) に接続しています. (%s)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC %s (%d) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99. (%s)")
2424 #define MSGJPN023 _Tu8("SOCKSサーバーに接続できません. (Err=%d) (%s)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (Err=%d) (%s)")
2525 #define MSGJPN024 _Tu8("SOCKSサーバーに接続できません. (Err=%d) (%s)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (Err=%d) (%s)")
2626 #define MSGJPN025 _Tu8("接続しました. (%s)", "\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F. (%s)")
@@ -72,8 +72,8 @@
7272 #define MSGJPN071 _Tu8("フォルダ作成(ホスト)", "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE4\xBD\x9C\xE6\x88\x90\xEF\xBC\x88\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xEF\xBC\x89")
7373 #define MSGJPN072 _Tu8("フォルダ変更(ローカル)", "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE5\xA4\x89\xE6\x9B\xB4\xEF\xBC\x88\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xEF\xBC\x89")
7474 #define MSGJPN073 _Tu8("フォルダ変更(ホスト)", "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE5\xA4\x89\xE6\x9B\xB4\xEF\xBC\x88\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xEF\xBC\x89")
75-#define MSGJPN074 _Tu8("ローカル側のファイル容量を計算します。", "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE5\x81\xB4\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\xAE\xB9\xE9\x87\x8F\xE3\x82\x92\xE8\xA8\x88\xE7\xAE\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99\xE3\x80\x82")
76-#define MSGJPN075 _Tu8("ホスト側のファイル容量を計算します。", "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x81\xB4\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\xAE\xB9\xE9\x87\x8F\xE3\x82\x92\xE8\xA8\x88\xE7\xAE\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99\xE3\x80\x82")
75+#define MSGJPN074 _Tu8("ローカル側のファイル容量を計算します.", "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE5\x81\xB4\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\xAE\xB9\xE9\x87\x8F\xE3\x82\x92\xE8\xA8\x88\xE7\xAE\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99.")
76+#define MSGJPN075 _Tu8("ホスト側のファイル容量を計算します.", "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x81\xB4\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\xAE\xB9\xE9\x87\x8F\xE3\x82\x92\xE8\xA8\x88\xE7\xAE\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99.")
7777 #define MSGJPN076 _Tu8("ローカル側のファイル容量", "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE5\x81\xB4\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\xAE\xB9\xE9\x87\x8F")
7878 #define MSGJPN077 _Tu8("ホスト側のファイル容量", "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x81\xB4\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\xAE\xB9\xE9\x87\x8F")
7979 #define MSGJPN078 _Tu8("フォルダ作成", "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE4\xBD\x9C\xE6\x88\x90")
@@ -209,7 +209,7 @@
209209 #define MSGJPN208 _Tu8("OPEN ホスト名", "OPEN \xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x90\x8D")
210210 #define MSGJPN209 _Tu8("SOCKS4", "SOCKS4")
211211 #define MSGJPN210 _Tu8("SOCKS5 (認証なし)", "SOCKS5 (\xE8\xAA\x8D\xE8\xA8\xBC\xE3\x81\xAA\xE3\x81\x97)")
212-#define MSGJPN211 _Tu8("SOCKS5 (ユーザー名、パスワード認証)", "SOCKS5 (\xE3\x83\xA6\xE3\x83\xBC\xE3\x82\xB6\xE3\x83\xBC\xE5\x90\x8D\xE3\x80\x81\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE8\xAA\x8D\xE8\xA8\xBC)")
212+#define MSGJPN211 _Tu8("SOCKS5 (ユーザー名,パスワード認証)", "SOCKS5 (\xE3\x83\xA6\xE3\x83\xBC\xE3\x82\xB6\xE3\x83\xBC\xE5\x90\x8D,\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE8\xAA\x8D\xE8\xA8\xBC)")
213213 #define MSGJPN212 _Tu8("使用しない", "\xE4\xBD\xBF\xE7\x94\xA8\xE3\x81\x97\xE3\x81\xAA\xE3\x81\x84")
214214 #define MSGJPN213 _Tu8("自動認識", "\xE8\x87\xAA\xE5\x8B\x95\xE8\xAA\x8D\xE8\xAD\x98")
215215 #define MSGJPN214 _Tu8("OTP MD4,S/KEY", "OTP MD4,S/KEY")
@@ -237,7 +237,7 @@
237237 #define MSGJPN236 _Tu8("切断しました", "\xE5\x88\x87\xE6\x96\xAD\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F")
238238 #define MSGJPN237 _Tu8("接続処理中...", "\xE6\x8E\xA5\xE7\xB6\x9A\xE5\x87\xA6\xE7\x90\x86\xE4\xB8\xAD...")
239239 #define MSGJPN238 _Tu8("%s への接続", "%s \xE3\x81\xB8\xE3\x81\xAE\xE6\x8E\xA5\xE7\xB6\x9A")
240-#define MSGJPN239 _Tu8("# このファイルは編集しないでください。\n", "# \xE3\x81\x93\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAF\xE7\xB7\xA8\xE9\x9B\x86\xE3\x81\x97\xE3\x81\xAA\xE3\x81\x84\xE3\x81\xA7\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84\xE3\x80\x82\n")
240+#define MSGJPN239 _Tu8("# このファイルは編集しないでください.\n", "# \xE3\x81\x93\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAF\xE7\xB7\xA8\xE9\x9B\x86\xE3\x81\x97\xE3\x81\xAA\xE3\x81\x84\xE3\x81\xA7\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.\n")
241241 #define MSGJPN240 _Tu8("INIファイルに設定が保存できません", "INI\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAB\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\x8C\xE4\xBF\x9D\xE5\xAD\x98\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93")
242242 #define MSGJPN241 _Tu8("送信はタイムアウトで失敗しました.", "\xE9\x80\x81\xE4\xBF\xA1\xE3\x81\xAF\xE3\x82\xBF\xE3\x82\xA4\xE3\x83\xA0\xE3\x82\xA2\xE3\x82\xA6\xE3\x83\x88\xE3\x81\xA7\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.")
243243 #define MSGJPN242 _Tu8("受信はタイムアウトで失敗しました.", "\xE5\x8F\x97\xE4\xBF\xA1\xE3\x81\xAF\xE3\x82\xBF\xE3\x82\xA4\xE3\x83\xA0\xE3\x82\xA2\xE3\x82\xA6\xE3\x83\x88\xE3\x81\xA7\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.")
@@ -290,13 +290,13 @@
290290 #define MSGJPN289 _Tu8("Agilent Logic analyzer", "Agilent Logic analyzer")
291291 #define MSGJPN290 _Tu8("Regファイル\0*.reg\0INIファイル\0*.ini\0全てのファイル\0*\0", "Reg\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*.reg\0INI\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*.ini\0\xE5\x85\xA8\xE3\x81\xA6\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*\0")
292292 #define MSGJPN291 _Tu8("設定をファイルから復元", "\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\x8B\xE3\x82\x89\xE5\xBE\xA9\xE5\x85\x83")
293-#define MSGJPN292 _Tu8("設定をファイルから復元するためには、FFFTPを再起動してください。", "\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\x8B\xE3\x82\x89\xE5\xBE\xA9\xE5\x85\x83\xE3\x81\x99\xE3\x82\x8B\xE3\x81\x9F\xE3\x82\x81\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x81\x46\x46\x46TP\xE3\x82\x92\xE5\x86\x8D\xE8\xB5\xB7\xE5\x8B\x95\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84\xE3\x80\x82")
294-#define MSGJPN293 _Tu8("設定ファイルは拡張子が.regか.iniでなければなりません。", "\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAF\xE6\x8B\xA1\xE5\xBC\xB5\xE5\xAD\x90\xE3\x81\x8C.reg\xE3\x81\x8B.ini\xE3\x81\xA7\xE3\x81\xAA\xE3\x81\x91\xE3\x82\x8C\xE3\x81\xB0\xE3\x81\xAA\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x80\x82")
293+#define MSGJPN292 _Tu8("設定をファイルから復元するためには,FFFTPを再起動してください.", "\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\x8B\xE3\x82\x89\xE5\xBE\xA9\xE5\x85\x83\xE3\x81\x99\xE3\x82\x8B\xE3\x81\x9F\xE3\x82\x81\xE3\x81\xAB\xE3\x81\xAF,FFFTP\xE3\x82\x92\xE5\x86\x8D\xE8\xB5\xB7\xE5\x8B\x95\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.")
294+#define MSGJPN293 _Tu8("設定ファイルは拡張子が.regか.iniでなければなりません.", "\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAF\xE6\x8B\xA1\xE5\xBC\xB5\xE5\xAD\x90\xE3\x81\x8C.reg\xE3\x81\x8B.ini\xE3\x81\xA7\xE3\x81\xAA\xE3\x81\x91\xE3\x82\x8C\xE3\x81\xB0\xE3\x81\xAA\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93.")
295295 #define MSGJPN294 _Tu8("USER FWユーザー名:FWパスワード@ホスト名", "USER FW\xE3\x83\xA6\xE3\x83\xBC\xE3\x82\xB6\xE3\x83\xBC\xE5\x90\x8D:FW\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89@\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x90\x8D")
296296 #define MSGJPN295 _Tu8("シバソク WL", "\xE3\x82\xB7\xE3\x83\x90\xE3\x82\xBD\xE3\x82\xAF WL")
297-#define MSGJPN296 _Tu8("読み取り専用ファイルです。読み取り専用属性を解除しますか?", "\xE8\xAA\xAD\xE3\x81\xBF\xE5\x8F\x96\xE3\x82\x8A\xE5\xB0\x82\xE7\x94\xA8\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xA7\xE3\x81\x99\xE3\x80\x82\xE8\xAA\xAD\xE3\x81\xBF\xE5\x8F\x96\xE3\x82\x8A\xE5\xB0\x82\xE7\x94\xA8\xE5\xB1\x9E\xE6\x80\xA7\xE3\x82\x92\xE8\xA7\xA3\xE9\x99\xA4\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99\xE3\x81\x8B\xEF\xBC\x9F")
298-#define MSGJPN297 _Tu8("%s は不正なファイル名です。\r\nこのファイルはダウンロードされません。", "%s \xE3\x81\xAF\xE4\xB8\x8D\xE6\xAD\xA3\xE3\x81\xAA\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D\xE3\x81\xA7\xE3\x81\x99\xE3\x80\x82\r\n\xE3\x81\x93\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAF\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x80\x82")
299-#define MSGJPN298 _Tu8("OLEの初期化に失敗しました。", "OLE\xE3\x81\xAE\xE5\x88\x9D\xE6\x9C\x9F\xE5\x8C\x96\xE3\x81\xAB\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F\xE3\x80\x82")
297+#define MSGJPN296 _Tu8("読み取り専用ファイルです.読み取り専用属性を解除しますか?", "\xE8\xAA\xAD\xE3\x81\xBF\xE5\x8F\x96\xE3\x82\x8A\xE5\xB0\x82\xE7\x94\xA8\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xA7\xE3\x81\x99.\xE8\xAA\xAD\xE3\x81\xBF\xE5\x8F\x96\xE3\x82\x8A\xE5\xB0\x82\xE7\x94\xA8\xE5\xB1\x9E\xE6\x80\xA7\xE3\x82\x92\xE8\xA7\xA3\xE9\x99\xA4\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99\xE3\x81\x8B\xEF\xBC\x9F")
298+#define MSGJPN297 _Tu8("%s は不正なファイル名です.\r\nこのファイルはダウンロードされません.", "%s \xE3\x81\xAF\xE4\xB8\x8D\xE6\xAD\xA3\xE3\x81\xAA\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D\xE3\x81\xA7\xE3\x81\x99.\r\n\xE3\x81\x93\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAF\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93.")
299+#define MSGJPN298 _Tu8("OLEの初期化に失敗しました.", "OLE\xE3\x81\xAE\xE5\x88\x9D\xE6\x9C\x9F\xE5\x8C\x96\xE3\x81\xAB\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.")
300300 #define MSGJPN299 _Tu8("コマンドラインにマスターパスワードが指定されていません", "\xE3\x82\xB3\xE3\x83\x9E\xE3\x83\xB3\xE3\x83\x89\xE3\x83\xA9\xE3\x82\xA4\xE3\x83\xB3\xE3\x81\xAB\xE3\x83\x9E\xE3\x82\xB9\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x81\x8C\xE6\x8C\x87\xE5\xAE\x9A\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93")
301301 #define MSGJPN300 _Tu8("デフォルトのマスターパスワードが使われます.\r\nマルウェアの攻撃を防ぐため,固有のマスターパスワードを設定することをおすすめします", "\xE3\x83\x87\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x88\xE3\x81\xAE\xE3\x83\x9E\xE3\x82\xB9\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x81\x8C\xE4\xBD\xBF\xE3\x82\x8F\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x99.\r\n\xE3\x83\x9E\xE3\x83\xAB\xE3\x82\xA6\xE3\x82\xA7\xE3\x82\xA2\xE3\x81\xAE\xE6\x94\xBB\xE6\x92\x83\xE3\x82\x92\xE9\x98\xB2\xE3\x81\x90\xE3\x81\x9F\xE3\x82\x81\xEF\xBC\x8C\xE5\x9B\xBA\xE6\x9C\x89\xE3\x81\xAE\xE3\x83\x9E\xE3\x82\xB9\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x82\x92\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\x99\xE3\x82\x8B\xE3\x81\x93\xE3\x81\xA8\xE3\x82\x92\xE3\x81\x8A\xE3\x81\x99\xE3\x81\x99\xE3\x82\x81\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99")
302302 #define MSGJPN301 _Tu8("マスターパスワードが設定と一致しません.安全のため設定の保存を行いません.", "\xE3\x83\x9E\xE3\x82\xB9\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x81\x8C\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\xA8\xE4\xB8\x80\xE8\x87\xB4\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93.\xE5\xAE\x89\xE5\x85\xA8\xE3\x81\xAE\xE3\x81\x9F\xE3\x82\x81\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\xAE\xE4\xBF\x9D\xE5\xAD\x98\xE3\x82\x92\xE8\xA1\x8C\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93.")
@@ -339,6 +339,8 @@
339339 #define MSGJPN338 _Tu8("全てスキップ", "\xE5\x85\xA8\xE3\x81\xA6\xE3\x82\xB9\xE3\x82\xAD\xE3\x83\x83\xE3\x83\x97")
340340 #define MSGJPN339 _Tu8("転送4", "\xE8\xBB\xA2\xE9\x80\x81\x34")
341341 #define MSGJPN340 _Tu8("表示2", "\xE8\xA1\xA8\xE7\xA4\xBA\x32")
342+#define MSGJPN341 _Tu8("WindowsファイアウォールのステートフルFTPフィルタの有効無効を設定します.\nこれはWindows Vista以降でのみ動作します.\n有効化または無効化することで通信状態が改善されることがあります.\n有効化するには「はい」,無効化するには「いいえ」を選択してください.", "Windows\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x82\xA2\xE3\x82\xA6\xE3\x82\xA9\xE3\x83\xBC\xE3\x83\xAB\xE3\x81\xAE\xE3\x82\xB9\xE3\x83\x86\xE3\x83\xBC\xE3\x83\x88\xE3\x83\x95\xE3\x83\xAB\x46TP\xE3\x83\x95\xE3\x82\xA3\xE3\x83\xAB\xE3\x82\xBF\xE3\x81\xAE\xE6\x9C\x89\xE5\x8A\xB9\xE7\x84\xA1\xE5\x8A\xB9\xE3\x82\x92\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99.\n\xE3\x81\x93\xE3\x82\x8C\xE3\x81\xAFWindows Vista\xE4\xBB\xA5\xE9\x99\x8D\xE3\x81\xA7\xE3\x81\xAE\xE3\x81\xBF\xE5\x8B\x95\xE4\xBD\x9C\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99.\n\xE6\x9C\x89\xE5\x8A\xB9\xE5\x8C\x96\xE3\x81\xBE\xE3\x81\x9F\xE3\x81\xAF\xE7\x84\xA1\xE5\x8A\xB9\xE5\x8C\x96\xE3\x81\x99\xE3\x82\x8B\xE3\x81\x93\xE3\x81\xA8\xE3\x81\xA7\xE9\x80\x9A\xE4\xBF\xA1\xE7\x8A\xB6\xE6\x85\x8B\xE3\x81\x8C\xE6\x94\xB9\xE5\x96\x84\xE3\x81\x95\xE3\x82\x8C\xE3\x82\x8B\xE3\x81\x93\xE3\x81\xA8\xE3\x81\x8C\xE3\x81\x82\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x99.\n\xE6\x9C\x89\xE5\x8A\xB9\xE5\x8C\x96\xE3\x81\x99\xE3\x82\x8B\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x8C\xE3\x81\xAF\xE3\x81\x84\xE3\x80\x8D,\xE7\x84\xA1\xE5\x8A\xB9\xE5\x8C\x96\xE3\x81\x99\xE3\x82\x8B\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x8C\xE3\x81\x84\xE3\x81\x84\xE3\x81\x88\xE3\x80\x8D\xE3\x82\x92\xE9\x81\xB8\xE6\x8A\x9E\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.")
343+#define MSGJPN342 _Tu8("ステートフルFTPフィルタを設定できませんでした.", "\xE3\x82\xB9\xE3\x83\x86\xE3\x83\xBC\xE3\x83\x88\xE3\x83\x95\xE3\x83\xAB\x46TP\xE3\x83\x95\xE3\x82\xA3\xE3\x83\xAB\xE3\x82\xBF\xE3\x82\x92\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x81\xA7\xE3\x81\x97\xE3\x81\x9F.")
342344 #if defined(HAVE_TANDEM)
343345 #define MSGJPN2000 _Tu8("NonStop Server", "NonStop Server")
344346 #define MSGJPN2001 _Tu8("OSS<->GUARDIAN 切り替え(&O)", "OSS<->GUARDIAN \xE5\x88\x87\xE3\x82\x8A\xE6\x9B\xBF\xE3\x81\x88(&O)")
--- a/tool.c
+++ b/tool.c
@@ -163,3 +163,29 @@ static INT_PTR CALLBACK OtpCalcWinProc(HWND hDlg, UINT message, WPARAM wParam, L
163163
164164
165165
166+// FTPS対応
167+void TurnStatefulFTPFilter()
168+{
169+ int ID;
170+ char CurDir[FMAX_PATH+1];
171+ char SysDir[FMAX_PATH+1];
172+ ID = MessageBox(GetMainHwnd(), MSGJPN341, "FFFTP", MB_YESNOCANCEL);
173+ if(ID == IDYES || ID == IDNO)
174+ {
175+ if(GetCurrentDirectory(FMAX_PATH, CurDir) > 0)
176+ {
177+ if(GetSystemDirectory(SysDir, FMAX_PATH) > 0)
178+ {
179+ if(SetCurrentDirectory(SysDir))
180+ {
181+ if(ShellExecute(NULL, "runas", "netsh", ID == IDYES ? "advfirewall set global statefulftp enable" : "advfirewall set global statefulftp disable", NULL, SW_SHOW) <= (HINSTANCE)32)
182+ {
183+ MessageBox(NULL, MSGJPN342, "FFFTP", MB_OK);
184+ }
185+ SetCurrentDirectory(CurDir);
186+ }
187+ }
188+ }
189+ }
190+}
191+