OSDN Git Service

Fix bugs of corruption on resuming downloading files larger than 4GB.
[ffftp/ffftp.git] / common.h
index 0061c89..beea818 100644 (file)
--- a/common.h
+++ b/common.h
@@ -70,9 +70,9 @@
 //#define VER_STR                                      "1.97b"\r
 //#define VER_NUM                                      1921            /* 設定バージョン */\r
 //#define PROGRAM_VERSION_NUM          1972            /* バージョン */\r
-#define VER_STR                                        "1.98"\r
-#define VER_NUM                                        1980            /* 設定バージョン */\r
-#define PROGRAM_VERSION_NUM            1980            /* バージョン */\r
+#define VER_STR                                        "1.99"\r
+#define VER_NUM                                        1990            /* 設定バージョン */\r
+#define PROGRAM_VERSION_NUM            1990            /* バージョン */\r
 \r
 \r
 #define MYWEB_URL      "http://www2.biglobe.ne.jp/~sota/ffftp-qa.html"\r
 \r
 #define ONELINE_BUF_SIZE       (10*1024)\r
 \r
+// 暗号化通信対応\r
+#define PRIVATE_KEY_LEN 4096\r
+\r
 /*===== 初期値 =====*/\r
 \r
 #define SAMBA_HEX_TAG  ':'                             /* Samba-HEX の区切り文字 */\r
 #define LIST_UNIX_73   45              /* UNIX 73 */\r
 #define LIST_UNIX_74   46              /* UNIX 74 */\r
 #define LIST_UNIX_75   47              /* UNIX 75 */\r
+// MLSD対応\r
+#define LIST_MLSD              48\r
 \r
 #define LIST_MELCOM            0x100   /* MELCOM80 */\r
 \r
@@ -868,6 +873,19 @@ LIST_UNIX_70
 #define CRYPT_FTPIS                    2\r
 #define CRYPT_SFTP                     3\r
 \r
+// FEAT対応\r
+// UTF-8対応\r
+#define FEATURE_UTF8           0x00000001\r
+// MLSD対応\r
+#define FEATURE_MLSD           0x00000002\r
+// IPv6対応\r
+#define FEATURE_EPRT           0x00000004\r
+#define FEATURE_EPSV           0x00000008\r
+\r
+// 暗号化通信対応\r
+// REG_SECT_MAXの値を加味する必要がある\r
+#define MAX_CERT_CACHE_HASH 256\r
+\r
 \r
 /*=================================================\r
 *              ストラクチャ\r
@@ -913,11 +931,19 @@ typedef struct {
        char DialEntry[RAS_NAME_LEN+1];         /* ダイアルアップエントリ */\r
        // 暗号化通信対応\r
        int CryptMode;                                          /* 暗号化通信モード (CRYPT_xxx) */\r
+       int UseNoEncryption;                            /* 暗号化なしで接続する (YES/NO) */\r
        int UseFTPES;                                           /* FTPESで接続する (YES/NO) */\r
        int UseFTPIS;                                           /* FTPISで接続する (YES/NO) */\r
        int UseSFTP;                                            /* SFTPで接続する (YES/NO) */\r
+       char PrivateKey[PRIVATE_KEY_LEN+1];     /* テキスト形式の秘密鍵 */\r
        // 同時接続対応\r
        int MaxThreadCount;                                     /* 同時接続数 */\r
+       // FEAT対応\r
+       int Feature;                                            /* 利用可能な機能のフラグ (FEATURE_xxx) */\r
+       // MLSD対応\r
+       int UseMLSD;                                            /* "MLSD"コマンドを使用する */\r
+       // IPv6対応\r
+       int UseIPv6;                                            /* IPv6接続を許可しEPRT/EPSVコマンドを使用する */\r
 } HOSTDATA;\r
 \r
 \r
@@ -965,11 +991,17 @@ typedef struct historydata {
        int DialupNotify;                                       /* 再接続の際に確認する (YES/NO) */\r
        char DialEntry[RAS_NAME_LEN+1];         /* ダイアルアップエントリ */\r
        // 暗号化通信対応\r
+       int UseNoEncryption;                            /* 暗号化なしで接続する (YES/NO) */\r
        int UseFTPES;                                           /* FTPESで接続する (YES/NO) */\r
        int UseFTPIS;                                           /* FTPISで接続する (YES/NO) */\r
        int UseSFTP;                                            /* SFTPで接続する (YES/NO) */\r
+       char PrivateKey[PRIVATE_KEY_LEN+1];     /* テキスト形式の秘密鍵 */\r
        // 同時接続対応\r
        int MaxThreadCount;                                     /* 同時接続数 */\r
+       // MLSD対応\r
+       int UseMLSD;                                            /* "MLSD"コマンドを使用する */\r
+       // IPv6対応\r
+       int UseIPv6;                                            /* IPv6接続を許可しEPRT/EPSVコマンドを使用する */\r
        struct historydata *Next;\r
 } HISTORYDATA;\r
 \r
@@ -996,8 +1028,6 @@ typedef struct transpacket {
        int Mode;                                               /* 転送モード (EXIST_xxx) */\r
        HWND hWndTrans;                                 /* 転送中ダイアログのウインドウハンドル */\r
        int Abort;                                              /* 転送中止フラグ (ABORT_xxx) */\r
-       // 暗号化通信対応\r
-       int CryptMode;                                  /* 暗号化通信モード (CRYPT_xxx) */\r
        // 同時接続対応\r
        int ThreadCount;\r
        struct transpacket *Next;\r
@@ -1204,6 +1234,7 @@ void ResetAutoExitFlg(void);
 int AskAutoExit(void);\r
 // 暗号化通信対応\r
 BOOL __stdcall SSLTimeoutCallback();\r
+BOOL __stdcall SSLConfirmCallback(BOOL bVerified, LPCSTR Certificate, LPCSTR CommonName);\r
 \r
 /*===== filelist.c =====*/\r
 \r
@@ -1378,11 +1409,19 @@ int AskTryingConnect(void);
 int SocksGet2ndBindReply(SOCKET Socket, SOCKET *Data);\r
 // 暗号化通信対応\r
 int AskCryptMode(void);\r
+int AskUseNoEncryption(void);\r
 int AskUseFTPES(void);\r
 int AskUseFTPIS(void);\r
 int AskUseSFTP(void);\r
+char *AskPrivateKey(void);\r
 // 同時接続対応\r
 int AskMaxThreadCount(void);\r
+// FEAT対応\r
+int AskHostFeature(void);\r
+// MLSD対応\r
+int AskUseMLSD(void);\r
+// IPv6対応\r
+int AskUseIPv6(void);\r
 \r
 /*===== cache.c =====*/\r
 \r