FFFTPのソースコードです。
Revisão | 9f908c1dba09f78b9f0a7c103e68873c5f5d4df9 (tree) |
---|---|
Hora | 2018-04-08 13:59:54 |
Autor | s_kawamoto <s_kawamoto@user...> |
Commiter | s_kawamoto |
Final Fix For This Program.
@@ -25,7 +25,7 @@ Password feature. | ||
25 | 25 | When you use this virsion first, please set Master Password from |
26 | 26 | following menu. |
27 | 27 | |
28 | -File -> Settings -> Change Master password | |
28 | +File -> Settings -> Change Master password | |
29 | 29 | |
30 | 30 | |
31 | 31 | Changes in Ver.2.00 |
@@ -33,6 +33,9 @@ Changes in Ver.2.00 | ||
33 | 33 | |
34 | 34 | This list includes changes applied by automatic software updates. |
35 | 35 | |
36 | +-- Changed the checking interval of automatic software updates from 7 days to | |
37 | + 30 days. | |
38 | + | |
36 | 39 | -- Added a feature to export settings as WinSCP INI format. |
37 | 40 | |
38 | 41 | -- Added an option to ignore addresses returned with PASV mode. |
@@ -3,6 +3,11 @@ FFFTP version history. | ||
3 | 3 | Changes in Ver.2.00 |
4 | 4 | -------------------- |
5 | 5 | |
6 | +This list includes changes applied by automatic software updates. | |
7 | + | |
8 | +-- Changed the checking interval of automatic software updates from 7 days to | |
9 | + 30 days. | |
10 | + | |
6 | 11 | -- Added a feature to export settings as WinSCP INI format. |
7 | 12 | |
8 | 13 | -- Added an option to ignore addresses returned with PASV mode. |
@@ -444,12 +449,12 @@ Changes in Ver.1.97 | ||
444 | 449 | ------------------- |
445 | 450 | |
446 | 451 | -- Now you can use master password. |
447 | - This function is made by Gengen-san. Thanks. | |
452 | + This function is made by Gengen-san. Thanks. | |
448 | 453 | When you use this virsion first, set master password from following menu. |
449 | - File -> Settings -> Change Master password | |
454 | + File -> Settings -> Change Master password | |
450 | 455 | |
451 | 456 | -- Now passwords are encrypted with AES. |
452 | - This function is made by Moca-san. Thanks. | |
457 | + This function is made by Moca-san. Thanks. | |
453 | 458 | |
454 | 459 | Changes in Ver.1.96d |
455 | 460 | -------------------- |
@@ -32,6 +32,8 @@ Ver 2.00 | ||
32 | 32 | |
33 | 33 | 自動更新機能で対応した内容を含めて記載します。 |
34 | 34 | |
35 | +・ソフトウェア自動更新機能の確認間隔を7日から30日に変更しました。 | |
36 | + | |
35 | 37 | ・設定をWinSCP INI形式にエクスポートする機能を追加しました。 |
36 | 38 | |
37 | 39 | ・PASVモードで返されるアドレスを無視する機能を追加しました。 |
@@ -2,6 +2,10 @@ FFFTP | ||
2 | 2 | |
3 | 3 | ■Ver 2.00 |
4 | 4 | |
5 | +自動更新機能で対応した内容を含めて記載します。 | |
6 | + | |
7 | +・ソフトウェア自動更新機能の確認間隔を7日から30日に変更しました。 | |
8 | + | |
5 | 9 | ・設定をWinSCP INI形式にエクスポートする機能を追加しました。 |
6 | 10 | |
7 | 11 | ・PASVモードで返されるアドレスを無視する機能を追加しました。 |
@@ -81,7 +81,7 @@ | ||
81 | 81 | // ソフトウェア自動更新 |
82 | 82 | // リリースバージョンはリリース予定年(10進数4桁)+月(2桁)+日(2桁)+通し番号(0スタート2桁)とする |
83 | 83 | // 2014年7月31日中の30個目のリリースは2014073129 |
84 | -#define RELEASE_VERSION_NUM 2018010700 /* リリースバージョン */ | |
84 | +#define RELEASE_VERSION_NUM 2018040800 /* リリースバージョン */ | |
85 | 85 | |
86 | 86 | |
87 | 87 | // SourceForge.JPによるフォーク |
@@ -286,7 +286,7 @@ int ReadOnlySettings = NO; | ||
286 | 286 | // ソフトウェア自動更新 |
287 | 287 | int AutoCheckForUpdates = YES; |
288 | 288 | int AutoApplyUpdates = NO; |
289 | -int AutoCheckForUptatesInterval = 7; | |
289 | +int AutoCheckForUptatesInterval = 30; | |
290 | 290 | time_t LastAutoCheckForUpdates = 0; |
291 | 291 | // ファイル一覧バグ修正 |
292 | 292 | int AbortOnListError = YES; |
@@ -1459,6 +1459,12 @@ int LoadRegistry(void) | ||
1459 | 1459 | ReadIntValueFromReg(hKey4, "UpdCheck", &AutoCheckForUpdates); |
1460 | 1460 | ReadIntValueFromReg(hKey4, "UpdApply", &AutoApplyUpdates); |
1461 | 1461 | ReadIntValueFromReg(hKey4, "UpdInterval", &AutoCheckForUptatesInterval); |
1462 | + // 今後の緊急リリースとトラフィック軽減を考慮し確認間隔を30日に延長 | |
1463 | + if(Version < 2000) | |
1464 | + { | |
1465 | + if(AutoCheckForUptatesInterval < 30) | |
1466 | + AutoCheckForUptatesInterval = 30; | |
1467 | + } | |
1462 | 1468 | ReadBinaryFromReg(hKey4, "UpdLastCheck", &LastAutoCheckForUpdates, sizeof(LastAutoCheckForUpdates)); |
1463 | 1469 | // ファイル一覧バグ修正 |
1464 | 1470 | ReadIntValueFromReg(hKey4, "AbortListErr", &AbortOnListError); |
@@ -4111,7 +4117,6 @@ void SaveSettingsToWinSCPIni() | ||
4111 | 4117 | { |
4112 | 4118 | char Fname[FMAX_PATH+1]; |
4113 | 4119 | FILE* f; |
4114 | - TIME_ZONE_INFORMATION tzi; | |
4115 | 4120 | char HostPath[FMAX_PATH+1]; |
4116 | 4121 | int Level; |
4117 | 4122 | int i; |
@@ -4124,7 +4129,6 @@ void SaveSettingsToWinSCPIni() | ||
4124 | 4129 | { |
4125 | 4130 | if((f = fopen(Fname, "at")) != NULL) |
4126 | 4131 | { |
4127 | - GetTimeZoneInformation(&tzi); | |
4128 | 4132 | strcpy(HostPath, ""); |
4129 | 4133 | Level = 0; |
4130 | 4134 | i = 0; |
@@ -971,7 +971,7 @@ DWORD WINAPI WSAAsyncGetHostByNameIPv6ThreadProc(LPVOID lpParameter) | ||
971 | 971 | else |
972 | 972 | PostMessage(pData->hWnd, pData->wMsg, (WPARAM)pData->h, (LPARAM)(ERROR_INVALID_FUNCTION << 16)); |
973 | 973 | // CreateThreadが返すハンドルが重複するのを回避 |
974 | - Sleep(10000); | |
974 | + Sleep(1000); | |
975 | 975 | CloseHandle(pData->h); |
976 | 976 | free(pData->name); |
977 | 977 | free(pData); |
@@ -988,6 +988,7 @@ HANDLE WSAAsyncGetHostByNameIPv6(HWND hWnd, u_int wMsg, const char * name, char | ||
988 | 988 | hResult = NULL; |
989 | 989 | if(pData = malloc(sizeof(GETHOSTBYNAMEDATA))) |
990 | 990 | { |
991 | + pData->h = NULL; | |
991 | 992 | pData->hWnd = hWnd; |
992 | 993 | pData->wMsg = wMsg; |
993 | 994 | if(pData->name = malloc(sizeof(char) * (strlen(name) + 1))) |
@@ -998,8 +999,8 @@ HANDLE WSAAsyncGetHostByNameIPv6(HWND hWnd, u_int wMsg, const char * name, char | ||
998 | 999 | pData->Family = Family; |
999 | 1000 | if(pData->h = CreateThread(NULL, 0, WSAAsyncGetHostByNameIPv6ThreadProc, pData, CREATE_SUSPENDED, NULL)) |
1000 | 1001 | { |
1001 | - ResumeThread(pData->h); | |
1002 | - hResult = pData->h; | |
1002 | + if(ResumeThread(pData->h) != (DWORD)-1) | |
1003 | + hResult = pData->h; | |
1003 | 1004 | } |
1004 | 1005 | } |
1005 | 1006 | } |
@@ -1007,6 +1008,11 @@ HANDLE WSAAsyncGetHostByNameIPv6(HWND hWnd, u_int wMsg, const char * name, char | ||
1007 | 1008 | { |
1008 | 1009 | if(pData) |
1009 | 1010 | { |
1011 | + if(pData->h) | |
1012 | + { | |
1013 | + TerminateThread(pData->h, 0); | |
1014 | + CloseHandle(pData->h); | |
1015 | + } | |
1010 | 1016 | if(pData->name) |
1011 | 1017 | free(pData->name); |
1012 | 1018 | free(pData); |