X-Git-Url: http://git.sourceforge.jp/view?p=ffftp%2Fffftp.git;a=blobdiff_plain;f=common.h;h=0cbc4bffdccf0ea741d7356886933228463a5d2d;hp=d52071db4258d1f1fae1c2650bbccc7fca8d752f;hb=1fcca9f8f99139919fc1175834ad447746616004;hpb=0fe7b7b30512c20eafc6bfe227fb6fc1d9d73bf5 diff --git a/common.h b/common.h index d52071d..0cbc4bf 100644 --- a/common.h +++ b/common.h @@ -1,5 +1,5 @@ -/*============================================================================= -* ‚e‚e‚e‚s‚o‹¤’Ê’è‹`ƒtƒ@ƒCƒ‹ +/*============================================================================= +* FFFTP共通定義ファイル * =============================================================================== / Copyright (C) 1997-2007 Sota. All rights reserved. @@ -52,8 +52,11 @@ #define ushort unsigned short #define ulong unsigned long -#define FAIL 0 -#define SUCCESS 1 +// 警告の回避 +//#define FAIL 0 +//#define SUCCESS 1 +#define FFFTP_FAIL 0 +#define FFFTP_SUCCESS 1 #define NO 0 #define YES 1 @@ -61,41 +64,41 @@ #define YES_ALL 3 #define YES_LIST 4 -/*===== ƒo[ƒWƒ‡ƒ“ ======*/ +/*===== バージョン ======*/ -// SourceForge.JP‚É‚æ‚éƒtƒH[ƒN +// SourceForge.JPによるフォーク //#define VER_STR "1.97b" -//#define VER_NUM 1921 /* Ý’èƒo[ƒWƒ‡ƒ“ */ -//#define PROGRAM_VERSION_NUM 1972 /* ƒo[ƒWƒ‡ƒ“ */ -#define VER_STR "1.98" -#define VER_NUM 1980 /* Ý’èƒo[ƒWƒ‡ƒ“ */ -#define PROGRAM_VERSION_NUM 1980 /* ƒo[ƒWƒ‡ƒ“ */ +//#define VER_NUM 1921 /* 設定バージョン */ +//#define PROGRAM_VERSION_NUM 1972 /* バージョン */ +#define VER_STR "1.99" +#define VER_NUM 1980 /* 設定バージョン */ +#define PROGRAM_VERSION_NUM 1990 /* バージョン */ #define MYWEB_URL "http://www2.biglobe.ne.jp/~sota/ffftp-qa.html" -/*===== ’ʐMŠÖŒW ======*/ +/*===== 通信関係 ======*/ #define TCP_PORT 6 -/*===== ƒEƒCƒ“ƒhƒEƒTƒCƒY ======*/ +/*===== ウインドウサイズ ======*/ -#define TOOLWIN_HEIGHT 28 /* ƒc[ƒ‹ƒo[‚̍‚‚³ */ +#define TOOLWIN_HEIGHT 28 /* ツールバーの高さ */ -/*===== “ÁŽê‚ȃLƒƒƒbƒVƒ…ƒf[ƒ^”ԍ† =====*/ -/* iƒtƒ@ƒCƒ‹ˆê——Žæ“¾‚ÅŽg—p‚·‚郍[ƒJƒ‹ƒtƒ@ƒCƒ‹–¼ _ffftp.??? ‚̔ԍ†•”•ªj */ +/*===== 特殊なキャッシュデータ番号 =====*/ +/* (ファイル一覧取得で使用するローカルファイル名 _ffftp.??? の番号部分) */ -#define CACHE_FILE_TMP1 999 /* ƒzƒXƒg‚̃tƒ@ƒCƒ‹ƒcƒŠ[Žæ“¾—p */ -#define CACHE_FILE_TMP2 998 /* ƒAƒbƒvƒ[ƒh’†‚̃zƒXƒg‚̃tƒ@ƒCƒ‹ˆê——Žæ“¾—p */ +#define CACHE_FILE_TMP1 999 /* ホストのファイルツリー取得用 */ +#define CACHE_FILE_TMP2 998 /* アップロード中のホストのファイル一覧取得用 */ -/*===== ƒ†[ƒU’è‹`ƒRƒ}ƒ“ƒh =====*/ +/*===== ユーザ定義コマンド =====*/ -#define WM_CHANGE_COND (WM_USER+1) /* ƒtƒ@ƒCƒ‹ˆê——‚ð•ÏX‚·‚éƒRƒ}ƒ“ƒh */ -#define WM_SET_PACKET (WM_USER+2) /* Œ»ÝŽg—p‚µ‚Ä‚¢‚é“]‘—ƒpƒPƒbƒg‚̃AƒhƒŒƒX‚ð’Ê’m */ -#define WM_SELECT_HOST (WM_USER+3) /* ƒzƒXƒg‚ðƒ_ƒuƒ‹ƒNƒŠƒbƒN‚Å‘I‘ð‚µ‚½ */ -#define WM_DIAL_MSG (WM_USER+4) /* ƒ_ƒCƒAƒ‹’†‚̃Xƒe[ƒ^ƒX’Ê’m */ +#define WM_CHANGE_COND (WM_USER+1) /* ファイル一覧を変更するコマンド */ +#define WM_SET_PACKET (WM_USER+2) /* 現在使用している転送パケットのアドレスを通知 */ +#define WM_SELECT_HOST (WM_USER+3) /* ホストをダブルクリックで選択した */ +#define WM_DIAL_MSG (WM_USER+4) /* ダイアル中のステータス通知 */ #define WM_ASYNC_SOCKET (WM_USER+5) #define WM_ASYNC_DBASE (WM_USER+6) @@ -103,62 +106,62 @@ #define WM_REFRESH_LOCAL_FLG (WM_USER+7) #define WM_REFRESH_REMOTE_FLG (WM_USER+8) -/*===== ƒzƒXƒg”ԍ† =====*/ -/* ƒzƒXƒg”ԍ†‚Í 0` ‚Ì’l‚ðŽæ‚é */ - -#define HOSTNUM_NOENTRY (-1) /* ƒzƒXƒgˆê——‚É–³‚¢‚Æ‚«‚̃zƒXƒg”ԍ† */ - -/*===== ƒoƒbƒtƒ@ƒTƒCƒY =====*/ - -#define BUFSIZE 4096 /* ƒtƒ@ƒCƒ‹“]‘—ƒoƒbƒtƒ@‚̃TƒCƒY(4kˆÈã) */ - -#define HOST_NAME_LEN 40 /* ˆê——‚É•\Ž¦‚·‚éƒzƒXƒg‚Ì–¼‘O */ -#define HOST_ADRS_LEN 80 /* ƒzƒXƒg–¼ */ -#define USER_NAME_LEN 80 /* ƒ†[ƒU–¼ */ -#define PASSWORD_LEN 80 /* ƒpƒXƒ[ƒh */ -#define ACCOUNT_LEN 80 /* ƒAƒJƒEƒ“ƒg */ -#define HOST_TYPE_LEN 1 /* ƒzƒXƒg‚ÌŽí—Þ */ -#define INIT_DIR_LEN (FMAX_PATH-40) /* ‰ŠúƒfƒBƒŒƒNƒgƒŠ */ -#define USER_MAIL_LEN 80 /* ƒ†[ƒU‚̃[ƒ‹ƒAƒhƒŒƒX */ - /* PASSWORD_LEN ‚Æ“¯‚¶‚É‚·‚邱‚Æ */ -#define ASCII_EXT_LEN 400 /* ƒAƒXƒL[ƒ‚[ƒh“]‘—‚̃tƒ@ƒCƒ‹–¼—ñ */ -#define FILTER_EXT_LEN 400 /* ƒtƒBƒ‹ƒ^‚̃tƒ@ƒCƒ‹–¼—ñ */ -#define BOOKMARK_SIZE 2048 /* ƒuƒbƒNƒ}[ƒN */ -#define CHMOD_CMD_LEN 40 /* ‘®«•ÏXƒRƒ}ƒ“ƒh */ -#define MIRROR_LEN 400 /* ƒ~ƒ‰[ƒŠƒ“ƒO‚̐ݒè—p */ -#define NLST_NAME_LEN 40 /* NLST‚É•t‚¯‚éƒtƒ@ƒCƒ‹–¼^ƒIƒvƒVƒ‡ƒ“ */ -#define DEFATTRLIST_LEN 800 /* ‘®«ƒŠƒXƒg‚Ì’·‚³ */ -#define INITCMD_LEN 256 /* ‰Šú‰»ƒRƒ}ƒ“ƒh */ -#define OWNER_NAME_LEN 40 /* ƒI[ƒi–¼ */ -#define RAS_NAME_LEN 256 /* RAS‚̃Gƒ“ƒgƒŠ–¼‚Ì’·‚³ */ +/*===== ホスト番号 =====*/ +/* ホスト番号は 0~ の値を取る */ + +#define HOSTNUM_NOENTRY (-1) /* ホスト一覧に無いときのホスト番号 */ + +/*===== バッファサイズ =====*/ + +#define BUFSIZE 4096 /* ファイル転送バッファのサイズ(4k以上) */ + +#define HOST_NAME_LEN 40 /* 一覧に表示するホストの名前 */ +#define HOST_ADRS_LEN 80 /* ホスト名 */ +#define USER_NAME_LEN 80 /* ユーザ名 */ +#define PASSWORD_LEN 80 /* パスワード */ +#define ACCOUNT_LEN 80 /* アカウント */ +#define HOST_TYPE_LEN 1 /* ホストの種類 */ +#define INIT_DIR_LEN (FMAX_PATH-40) /* 初期ディレクトリ */ +#define USER_MAIL_LEN 80 /* ユーザのメールアドレス */ + /* PASSWORD_LEN と同じにすること */ +#define ASCII_EXT_LEN 400 /* アスキーモード転送のファイル名列 */ +#define FILTER_EXT_LEN 400 /* フィルタのファイル名列 */ +#define BOOKMARK_SIZE 2048 /* ブックマーク */ +#define CHMOD_CMD_LEN 40 /* 属性変更コマンド */ +#define MIRROR_LEN 400 /* ミラーリングの設定用 */ +#define NLST_NAME_LEN 40 /* NLSTに付けるファイル名/オプション */ +#define DEFATTRLIST_LEN 800 /* 属性リストの長さ */ +#define INITCMD_LEN 256 /* 初期化コマンド */ +#define OWNER_NAME_LEN 40 /* オーナ名 */ +#define RAS_NAME_LEN 256 /* RASのエントリ名の長さ */ #define FMAX_PATH 1024 #define ONELINE_BUF_SIZE (10*1024) -/*===== ‰Šú’l =====*/ +/*===== 初期値 =====*/ -#define SAMBA_HEX_TAG ':' /* Samba-HEX ‚Ì‹æØ‚蕶Žš */ -#define CHMOD_CMD_NOR "SITE CHMOD" /* ‘®«•ÏXƒRƒ}ƒ“ƒh */ -#define PORT_NOR 21 /* ƒ|[ƒg”ԍ† */ -#define LS_FNAME "-alL" /* NLST‚É•t‚¯‚é‚à‚Ì */ +#define SAMBA_HEX_TAG ':' /* Samba-HEX の区切り文字 */ +#define CHMOD_CMD_NOR "SITE CHMOD" /* 属性変更コマンド */ +#define PORT_NOR 21 /* ポート番号 */ +#define LS_FNAME "-alL" /* NLSTに付けるもの */ -/*===== “¯‚¶–¼‘O‚̃tƒ@ƒCƒ‹‚ª‚ ‚Á‚½Žž‚̏ˆ— =====*/ +/*===== 同じ名前のファイルがあった時の処理 =====*/ -#define EXIST_OVW 0 /* ã‘‚« */ -#define EXIST_NEW 1 /* V‚µ‚¯‚ê‚Ώ㏑‚« */ -#define EXIST_RESUME 2 /* ƒŒƒWƒ…[ƒ€ */ -#define EXIST_IGNORE 3 /* –³Ž‹ */ -#define EXIST_UNIQUE 4 /* ƒzƒXƒg‚ª–¼‘O‚ð•t‚¯‚é */ -#define EXIST_ABORT 5 /* ‘S‚Ä’†Ž~ */ +#define EXIST_OVW 0 /* 上書き */ +#define EXIST_NEW 1 /* 新しければ上書き */ +#define EXIST_RESUME 2 /* レジューム */ +#define EXIST_IGNORE 3 /* 無視 */ +#define EXIST_UNIQUE 4 /* ホストが名前を付ける */ +#define EXIST_ABORT 5 /* 全て中止 */ -/*===== ƒtƒ@ƒCƒ‹–¼‚Ì”äŠrƒ‚[ƒh =====*/ +/*===== ファイル名の比較モード =====*/ -#define COMP_IGNORE 0 /* ‘啶Žš/¬•¶Žš‚Í‹æ•Ê‚µ‚È‚¢ */ -#define COMP_STRICT 1 /* ‘啶Žš/¬•¶Žš‚ð‹æ•Ê‚·‚é */ -#define COMP_LOWERMATCH 2 /* ‘啶Žš/¬•¶Žš‚ð‹æ•Ê‚µ‚È‚¢i•Ð‘¤‚Í‘S‚ﬕ¶Žšj */ +#define COMP_IGNORE 0 /* 大文字/小文字は区別しない */ +#define COMP_STRICT 1 /* 大文字/小文字を区別する */ +#define COMP_LOWERMATCH 2 /* 大文字/小文字を区別しない(片側は全て小文字) */ -/*===== FTP‚̉ž“šƒR[ƒh‚Ì“ª‚PŒ… =====*/ +/*===== FTPの応答コードの頭1桁 =====*/ #define FTP_PRELIM 1 /* */ #define FTP_COMPLETE 2 /* */ @@ -166,80 +169,80 @@ #define FTP_RETRY 4 /* */ #define FTP_ERROR 5 /* */ -/*===== ƒtƒ@ƒCƒ‹ƒŠƒXƒg‚̃m[ƒh‘®« =====*/ +/*===== ファイルリストのノード属性 =====*/ -#define NODE_DIR 0 /* ƒfƒBƒŒƒNƒgƒŠ */ -#define NODE_FILE 1 /* ƒtƒ@ƒCƒ‹ */ -#define NODE_DRIVE 2 /* ƒhƒ‰ƒCƒu */ -#define NODE_NONE (-1) /* ‚È‚µ */ +#define NODE_DIR 0 /* ディレクトリ */ +#define NODE_FILE 1 /* ファイル */ +#define NODE_DRIVE 2 /* ドライブ */ +#define NODE_NONE (-1) /* なし */ -/*===== ã‘‚«Šm”F•û–@‚̐ݒè’l =====*/ +/*===== 上書き確認方法の設定値 =====*/ -#define TRANS_OVW 0 /* ã‘‚« */ -#define TRANS_DLG 1 /* ƒ_ƒCƒAƒƒO‚ðo‚· */ +#define TRANS_OVW 0 /* 上書き */ +#define TRANS_DLG 1 /* ダイアログを出す */ -/*===== ƒzƒXƒg“àƒtƒ@ƒCƒ‹ˆÚ“®Šm”F•û–@‚̐ݒè’l =====*/ +/*===== ホスト内ファイル移動確認方法の設定値 =====*/ -#define MOVE_NODLG 0 /* ƒ_ƒCƒAƒƒO‚ðo‚³‚È‚¢ */ -#define MOVE_DLG 1 /* ƒ_ƒCƒAƒƒO‚ðo‚· */ -#define MOVE_DISABLE 2 /* ‹@”\Žg—p‹ÖŽ~ */ +#define MOVE_NODLG 0 /* ダイアログを出さない */ +#define MOVE_DLG 1 /* ダイアログを出す */ +#define MOVE_DISABLE 2 /* 機能使用禁止 */ -/*===== “]‘—•û–@ =====*/ +/*===== 転送方法 =====*/ -#define TYPE_I 'I' /* ƒoƒCƒiƒŠƒ‚[ƒh */ -#define TYPE_A 'A' /* ƒAƒXƒL[ƒ‚[ƒh */ -#define TYPE_X 'X' /* Ž©“®”»•Ê */ +#define TYPE_I 'I' /* バイナリモード */ +#define TYPE_A 'A' /* アスキーモード */ +#define TYPE_X 'X' /* 自動判別 */ -#define TYPE_DEFAULT NUL /* Ý’肵‚È‚¢ DirectConnectProc()‚̈ø”‚Æ‚µ‚Ä—LŒø */ +#define TYPE_DEFAULT NUL /* 設定しない DirectConnectProc()の引数として有効 */ -/*===== ƒ\[ƒg•û–@ =====*/ -/* ”ԍ†‚ÍListView‚̃Jƒ‰ƒ€”ԍ†‚ƍ‡‚킹‚Ä‚ ‚é */ +/*===== ソート方法 =====*/ +/* 番号はListViewのカラム番号と合わせてある */ -#define SORT_NAME 0 /* –¼‘O‡ */ -#define SORT_DATE 1 /* “ú•t‡ */ -#define SORT_SIZE 2 /* ƒTƒCƒY‡ */ -#define SORT_EXT 3 /* Šg’£Žq‡ */ +#define SORT_NAME 0 /* 名前順 */ +#define SORT_DATE 1 /* 日付順 */ +#define SORT_SIZE 2 /* サイズ順 */ +#define SORT_EXT 3 /* 拡張子順 */ -#define SORT_ASCENT 0x00 /* ¸‡ */ -#define SORT_DESCENT 0x80 /* ~‡ */ +#define SORT_ASCENT 0x00 /* 昇順 */ +#define SORT_DESCENT 0x80 /* 降順 */ -#define SORT_MASK_ORD 0x7F /* ‚˜‚˜‡‚ðŽæ‚èo‚·ƒ}ƒXƒN */ -#define SORT_GET_ORD 0x80 /* ¸‡^~‡‚ðŽæ‚èo‚·ƒ}ƒXƒN */ +#define SORT_MASK_ORD 0x7F /* xx順を取り出すマスク */ +#define SORT_GET_ORD 0x80 /* 昇順/降順を取り出すマスク */ -#define SORT_NOTSAVED ((ulong)0xFFFFFFFF) /* ƒzƒXƒg–ˆ‚̃Z[ƒu•û–@‚ð•Û‘¶‚µ‚Ä‚¢‚È‚¢Žž‚Ì’l */ +#define SORT_NOTSAVED ((ulong)0xFFFFFFFF) /* ホスト毎のセーブ方法を保存していない時の値 */ -/*===== ƒ\[ƒg‚·‚éêŠ =====*/ +/*===== ソートする場所 =====*/ -#define ITEM_LFILE 0 /* ƒ[ƒJƒ‹‚Ì–¼‘O */ -#define ITEM_LDIR 1 /* ƒ[ƒJƒ‹‚̃fƒBƒŒƒNƒgƒŠ */ -#define ITEM_RFILE 2 /* ƒzƒXƒg‚Ì–¼‘O */ -#define ITEM_RDIR 3 /* ƒzƒXƒg‚̃fƒBƒŒƒNƒgƒŠ */ +#define ITEM_LFILE 0 /* ローカルの名前 */ +#define ITEM_LDIR 1 /* ローカルのディレクトリ */ +#define ITEM_RFILE 2 /* ホストの名前 */ +#define ITEM_RDIR 3 /* ホストのディレクトリ */ -/*===== ƒEƒCƒ“ƒhƒE”ԍ† =====*/ +/*===== ウインドウ番号 =====*/ -#define WIN_LOCAL 0 /* ƒ[ƒJƒ‹ */ -#define WIN_REMOTE 1 /* ƒzƒXƒg */ -#define WIN_BOTH 2 /* —¼•û */ +#define WIN_LOCAL 0 /* ローカル */ +#define WIN_REMOTE 1 /* ホスト */ +#define WIN_BOTH 2 /* 両方 */ -/*===== ƒtƒ@ƒCƒ‹‘I‘ð•û–@ =====*/ +/*===== ファイル選択方法 =====*/ -#define SELECT_ALL 0 /* ‘S‘I‘ð */ -#define SELECT_REGEXP 1 /* ŒŸõŽ®‚ð“ü—Í‚µ‚Ä‘I‘ð */ +#define SELECT_ALL 0 /* 全選択 */ +#define SELECT_REGEXP 1 /* 検索式を入力して選択 */ -/*===== ŒŸõ•û–@ =====*/ +/*===== 検索方法 =====*/ -#define FIND_FIRST 0 /* Å‰‚ÌŒŸõ */ -#define FIND_NEXT 1 /* ŽŸ‚ðŒŸõ */ +#define FIND_FIRST 0 /* 最初の検索 */ +#define FIND_NEXT 1 /* 次を検索 */ -/*===== ƒtƒ@ƒCƒ‹–¼‚̑啶Žš^¬•¶Žš•ÏŠ· =====*/ +/*===== ファイル名の大文字/小文字変換 =====*/ -#define FNAME_NOCNV 0 /* •ÏŠ·‚µ‚È‚¢ */ -#define FNAME_LOWER 1 /* ¬•¶Žš‚É•ÏŠ· */ -#define FNAME_UPPER 2 /* ‘啶Žš‚É•ÏŠ· */ +#define FNAME_NOCNV 0 /* 変換しない */ +#define FNAME_LOWER 1 /* 小文字に変換 */ +#define FNAME_UPPER 2 /* 大文字に変換 */ -/*===== ƒtƒ@ƒCƒ‹ˆê——‚ÌŒ`Ž® =====*/ +/*===== ファイル一覧の形式 =====*/ -#define LIST_UNKNOWN (-1) /* •s–¾ */ +#define LIST_UNKNOWN (-1) /* 不明 */ #define LIST_UNIX_10 0 /* UNIX 10 */ #define LIST_UNIX_11 1 /* UNIX 11 */ @@ -269,7 +272,7 @@ #define LIST_ACOS 25 /* ACOS */ #define LIST_AS400 26 /* AS/400 */ #define LIST_M1800 27 /* Fujitu M1800 (OS IV/MSP E20) */ -#define LIST_CHAMELEON 28 /* Win3.1—p Chameleon FTP server */ +#define LIST_CHAMELEON 28 /* Win3.1用 Chameleon FTP server */ #define LIST_GP6000 29 /* Fujitu GP6000 Model 900 */ #define LIST_OS2 30 /* OS/2 */ #define LIST_VMS 31 /* VAX VMS */ @@ -289,53 +292,55 @@ #define LIST_UNIX_73 45 /* UNIX 73 */ #define LIST_UNIX_74 46 /* UNIX 74 */ #define LIST_UNIX_75 47 /* UNIX 75 */ +// MLSD対応 +#define LIST_MLSD 48 #define LIST_MELCOM 0x100 /* MELCOM80 */ #define LIST_MASKFLG 0xFF -/* ƒtƒ@ƒCƒ‹ˆê——î•ñ—á --------------- +/* ファイル一覧情報例 --------------- *LIST_UNIX_10 0 1 2 3 4 5 6 7 8 ------------------------------------------------------- drwxr-xr-x 15 owner group 1024 Nov 6 14:21 Linux/ -rwxrwx--- 5 owner group 12 Nov 6 1996 test.txt - drwxr-xr-x 15 owner group 1024 11ŒŽ 6“ú 14:21 Linux/ - drwxr-xr-x 15 owner group 1024 11ŒŽ 6“ú 14Žž21•ª Linux/ - -rwxrwx--- 5 owner group 12 11ŒŽ 6“ú 1996”N test.txt - drwxrwxr-x 6 root sys 512 1ŒŽ 26 03:10 adm (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x 15 owner group 1024 11月 6日 14:21 Linux/ + drwxr-xr-x 15 owner group 1024 11月 6日 14時21分 Linux/ + -rwxrwx--- 5 owner group 12 11月 6日 1996å¹´ test.txt + drwxrwxr-x 6 root sys 512 1月 26 03:10 adm (月はGBコードで0xD4C2) *LIST_UNIX_11 0 1 2 3 4 5 6 7 ------------------------------------------------------- - drwxr-xr-x 15 owner group 1024 11ŒŽ12“ú 14Žž21•ª Linux/ - -rwxrwx--- 5 owner group 12 11ŒŽ12“ú 1996”N test.txt + drwxr-xr-x 15 owner group 1024 11月12日 14時21分 Linux/ + -rwxrwx--- 5 owner group 12 11月12日 1996å¹´ test.txt *LIST_UNIX_12 0 1 2 3 4 5 6 7 ------------------------------------------------------- drwxr-xr-x123 owner group 1024 Nov 6 14:21 Linux/ -rwxrwx---132 owner group 12 Nov 6 1996 test.txt - drwxr-xr-x123 owner group 1024 11ŒŽ 6“ú 14:21 Linux/ - drwxr-xr-x123 owner group 1024 11ŒŽ 6“ú 14Žž21•ª Linux/ - -rwxrwx---132 owner group 12 11ŒŽ 6“ú 1996”N test.txt + drwxr-xr-x123 owner group 1024 11月 6日 14:21 Linux/ + drwxr-xr-x123 owner group 1024 11月 6日 14時21分 Linux/ + -rwxrwx---132 owner group 12 11月 6日 1996å¹´ test.txt *LIST_UNIX_13 0 1 2 3 4 5 6 ------------------------------------------------------- - drwxr-xr-x123 owner group 1024 11ŒŽ12“ú 14Žž21•ª Linux/ - -rwxrwx---132 owner group 12 11ŒŽ12“ú 1996”N test.txt + drwxr-xr-x123 owner group 1024 11月12日 14時21分 Linux/ + -rwxrwx---132 owner group 12 11月12日 1996å¹´ test.txt *LIST_UNIX_14 0 1 2 3 4 5 6 7 8 ------------------------------------------------------- - drwxr-xr-x 15 owner group 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x 15 owner group 512 2001 6月 18 audit (月はGBコードで0xD4C2) *LIST_UNIX_15 0 1 2 3 4 5 6 7 ------------------------------------------------------- - drwxr-xr-x15 owner group 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x15 owner group 512 2001 6月 18 audit (月はGBコードで0xD4C2) @@ -346,40 +351,40 @@ ------------------------------------------------------- drwxr-xr-x 15 owner 1024 Nov 6 14:21 Linux/ -rwxrwx--- 5 owner 12 Nov 6 1996 test.txt - drwxr-xr-x 15 owner 1024 11ŒŽ 6“ú 14:21 Linux/ - drwxr-xr-x 15 owner 1024 11ŒŽ 6“ú 14Žž21•ª Linux/ - -rwxrwx--- 5 owner 12 11ŒŽ 6“ú 1996”N test.txt + drwxr-xr-x 15 owner 1024 11月 6日 14:21 Linux/ + drwxr-xr-x 15 owner 1024 11月 6日 14時21分 Linux/ + -rwxrwx--- 5 owner 12 11月 6日 1996å¹´ test.txt *LIST_UNIX_21 0 1 2 3 4 5 6 ------------------------------------------------------- - drwxr-xr-x 15 owner 1024 11ŒŽ12“ú 14Žž21•ª Linux/ - -rwxrwx--- 5 owner 12 11ŒŽ12“ú 1996”N test.txt + drwxr-xr-x 15 owner 1024 11月12日 14時21分 Linux/ + -rwxrwx--- 5 owner 12 11月12日 1996å¹´ test.txt *LIST_UNIX_22 0 1 2 3 4 5 6 ------------------------------------------------------- drwxr-xr-x123 owner 1024 Nov 6 14:21 Linux/ -rwxrwx---132 owner 12 Nov 6 1996 test.txt - drwxr-xr-x123 owner 1024 11ŒŽ 6“ú 14:21 Linux/ - drwxr-xr-x123 owner 1024 11ŒŽ 6“ú 14Žž21•ª Linux/ - -rwxrwx---132 owner 12 11ŒŽ 6“ú 1996”N test.txt + drwxr-xr-x123 owner 1024 11月 6日 14:21 Linux/ + drwxr-xr-x123 owner 1024 11月 6日 14時21分 Linux/ + -rwxrwx---132 owner 12 11月 6日 1996å¹´ test.txt *LIST_UNIX_23 0 1 2 3 4 5 ------------------------------------------------------- - drwxr-xr-x123 owner 1024 11ŒŽ12“ú 14Žž21•ª Linux/ - -rwxrwx---132 owner 12 11ŒŽ12“ú 1996”N test.txt + drwxr-xr-x123 owner 1024 11月12日 14時21分 Linux/ + -rwxrwx---132 owner 12 11月12日 1996å¹´ test.txt *LIST_UNIX_24 0 1 2 3 4 5 6 7 ------------------------------------------------------- - drwxr-xr-x 15 owner 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x 15 owner 512 2001 6月 18 audit (月はGBコードで0xD4C2) *LIST_UNIX_25 0 1 2 3 4 5 6 ------------------------------------------------------- - drwxr-xr-x15 owner 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x15 owner 512 2001 6月 18 audit (月はGBコードで0xD4C2) @@ -392,15 +397,15 @@ ------------------------------------------------------- drwxr-xr-x owner 1024 Nov 6 14:21 Linux/ -rwxrwx--- owner 12 Nov 6 1996 test.txt - drwxr-xr-x owner 1024 11ŒŽ 6“ú 14:21 Linux/ - drwxr-xr-x owner 1024 11ŒŽ 6“ú 14Žž21•ª Linux/ - -rwxrwx--- owner 12 11ŒŽ 6“ú 1996”N test.txt + drwxr-xr-x owner 1024 11月 6日 14:21 Linux/ + drwxr-xr-x owner 1024 11月 6日 14時21分 Linux/ + -rwxrwx--- owner 12 11月 6日 1996å¹´ test.txt *LIST_UNIX_51 0 1 2 3 4 5 ------------------------------------------------------- - drwxr-xr-x owner 1024 11ŒŽ12“ú 14Žž21•ª Linux/ - -rwxrwx--- owner 12 11ŒŽ12“ú 1996”N test.txt + drwxr-xr-x owner 1024 11月12日 14時21分 Linux/ + -rwxrwx--- owner 12 11月12日 1996å¹´ test.txt 0 1 2 3 4 5 ------------------------------------------------------- @@ -410,7 +415,7 @@ *LIST_UNIX_54 0 1 2 3 4 5 6 ------------------------------------------------------- - drwxr-xr-x owner 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x owner 512 2001 6月 18 audit (月はGBコードで0xD4C2) @@ -427,8 +432,8 @@ *LIST_UNIX_61 0 1 2 3 4 5 6 7 8 9 ------------------------------------------------------- - drwxr-xr-x 123 owner m group g 1024 11ŒŽ12“ú 14:21 Linux/ - -rwxrwx--- 132 owner m group g 12 11ŒŽ12“ú 1996 test.txt + drwxr-xr-x 123 owner m group g 1024 11月12日 14:21 Linux/ + -rwxrwx--- 132 owner m group g 12 11月12日 1996 test.txt *LIST_UNIX_62 0 1 2 3 4 5 6 7 8 9 @@ -439,18 +444,18 @@ *LIST_UNIX_63 0 1 2 3 4 5 6 7 8 ------------------------------------------------------- - drwxr-xr-x123 owner m group g 1024 11ŒŽ12“ú 14:21 Linux/ - -rwxrwx---132 owner m group g 12 11ŒŽ12“ú 1996 test.txt + drwxr-xr-x123 owner m group g 1024 11月12日 14:21 Linux/ + -rwxrwx---132 owner m group g 12 11月12日 1996 test.txt *LIST_UNIX_64 0 1 2 3 4 5 6 7 8 9 10 ------------------------------------------------------- - drwxr-xr-x 15 owner m group g 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x 15 owner m group g 512 2001 6月 18 audit (月はGBコードで0xD4C2) *LIST_UNIX_65 0 1 2 3 4 5 6 7 8 9 ------------------------------------------------------- - drwxr-xr-x15 owner m group g 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x15 owner m group g 512 2001 6月 18 audit (月はGBコードで0xD4C2) @@ -464,8 +469,8 @@ LIST_UNIX_70 *LIST_UNIX_71 0 1 2 3 4 5 6 7 8 ------------------------------------------------------- - drwxr-xr-x 123 owner group g 1024 11ŒŽ12“ú 14:21 Linux/ - -rwxrwx--- 132 owner group g 12 11ŒŽ12“ú 1996 test.txt + drwxr-xr-x 123 owner group g 1024 11月12日 14:21 Linux/ + -rwxrwx--- 132 owner group g 12 11月12日 1996 test.txt *LIST_UNIX_72 0 1 2 3 4 5 6 7 8 @@ -476,25 +481,25 @@ LIST_UNIX_70 *LIST_UNIX_73 0 1 2 3 4 5 6 7 ------------------------------------------------------- - drwxr-xr-x123 owner group g 1024 11ŒŽ12“ú 14:21 Linux/ - -rwxrwx---132 owner group g 12 11ŒŽ12“ú 1996 test.txt + drwxr-xr-x123 owner group g 1024 11月12日 14:21 Linux/ + -rwxrwx---132 owner group g 12 11月12日 1996 test.txt *LIST_UNIX_74 0 1 2 3 4 5 6 7 8 9 ------------------------------------------------------- - drwxr-xr-x 15 owner group g 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x 15 owner group g 512 2001 6月 18 audit (月はGBコードで0xD4C2) *LIST_UNIX_75 0 1 2 3 4 5 6 7 8 ------------------------------------------------------- - drwxr-xr-x15 owner group g 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x15 owner group g 512 2001 6月 18 audit (月はGBコードで0xD4C2) -*unixŒn‚ňȉº‚̂悤‚È“ú•t +*unix系で以下のような日付 0 1 2 3 4 5 6 ------------------------------------------------------- drwxr-xr-x123 owner 1024 11/ 6 14:21 Linux/ @@ -548,7 +553,7 @@ LIST_UNIX_70 0 ------------------------------------------------------- test.txt -@@ƒfƒBƒŒƒNƒgƒŠ‚È‚µA +  ディレクトリなし、 *LIST_AS400 0 1 2 3 4 5 @@ -559,7 +564,7 @@ LIST_UNIX_70 QSECOFR 0 98/05/15 16:01:15 *STMF WWWTEST.BAK *LIST_M1800 - 0 1 2 3 4 5 6 (ƒtƒ@ƒCƒ‹–¼‚ÌŒã‚ë‚ɃXƒy[ƒX‚ ‚èj + 0 1 2 3 4 5 6 (ファイル名の後ろにスペースあり) ------------------------------------------------------- drwx F 400 400 PO 93.10.27 COMMON.PDL.EXCEL/ -rw- F 10000 10000 DA 97.03.04 DTSLOG1.FNA @@ -583,8 +588,8 @@ LIST_UNIX_70 0 1 2 3 4 ------------------------------------------------------- 345 A 12-02-98 10:59 VirtualDevice.java - 0 DIR 12-09-98 09:43 ƒfƒBƒŒƒNƒgƒŠ - 0 DIR 12-09-100 09:43 ƒfƒBƒŒƒNƒgƒŠ + 0 DIR 12-09-98 09:43 ディレクトリ + 0 DIR 12-09-100 09:43 ディレクトリ *LIST_MELCOM 0 1 2 3 4 5 6 7 8 @@ -600,7 +605,7 @@ LIST_UNIX_70 (RWED,RWED,RE,) MAIL.DIR;1 104/248 18-SEP-2001 16:19:39 [CIM,MIZOTE] (RWE,RWE,,) - ¦VMS‚̏ꍇˆê——‚ª•¡”s‚É•Ê‚ê‚éê‡‚ª‚ ‚é + ※VMSの場合一覧が複数行に別れる場合がある *LIST_OS7_1 0 1 2 3 @@ -660,121 +665,123 @@ LIST_UNIX_70 ------------------------------------*/ -/*===== Ú‘±ƒEƒCƒ“ƒhƒE‚ÌŒ`Ž® =====*/ +/*===== 接続ウインドウの形式 =====*/ -#define DLG_TYPE_CON 0 /* ŠÈˆÕiƒzƒXƒg•ÒW‚È‚µj */ -#define DLG_TYPE_SET 1 /* ƒzƒXƒg•ÒW‚ ‚è */ +#define DLG_TYPE_CON 0 /* 簡易(ホスト編集なし) */ +#define DLG_TYPE_SET 1 /* ホスト編集あり */ -/*===== ƒtƒ@ƒCƒ‹ˆê——Žæ“¾ƒ‚[ƒh =====*/ +/*===== ファイル一覧取得モード =====*/ -#define CACHE_NORMAL 0 /* ’ʏíiƒLƒƒƒbƒVƒ…‚É‚ ‚ê‚ÎŽg—pA‚È‚¯‚ê‚Γǂݍž‚݁j */ -#define CACHE_REFRESH 1 /* í‚ɓǂݍž‚Ý */ -#define CACHE_LASTREAD 2 /* ÅŒã‚ɓǂݍž‚ñ‚¾‚à‚Ì‚ðŽg—p */ +#define CACHE_NORMAL 0 /* 通常(キャッシュにあれば使用、なければ読み込み) */ +#define CACHE_REFRESH 1 /* 常に読み込み */ +#define CACHE_LASTREAD 2 /* 最後に読み込んだものを使用 */ -/*===== Š¿ŽšƒR[ƒh•ÏŠ· =====*/ +/*===== 漢字コード変換 =====*/ #define KANJI_SJIS 0 /* SJIS */ #define KANJI_JIS 1 /* JIS */ #define KANJI_EUC 2 /* EUC */ #define KANJI_SMB_HEX 3 /* Samba-HEX */ #define KANJI_SMB_CAP 4 /* Samba-CAP */ -#define KANJI_UTF8N 5 /* UTF-8N */ +#define KANJI_UTF8N 5 /* UTF-8 */ -#define KANJI_NOCNV -1 /* Š¿ŽšƒR[ƒh•ÏŠ·‚È‚µ */ +#define KANJI_NOCNV -1 /* 漢字コード変換なし */ #define KANJI_AUTO -1 -/*===== ƒTƒEƒ“ƒh =====*/ +/*===== サウンド =====*/ -#define SND_CONNECT 0 /* Ú‘±Žž‚̃TƒEƒ“ƒh */ -#define SND_TRANS 1 /* “]‘—I—¹Žž‚̃TƒEƒ“ƒh */ -#define SND_ERROR 2 /* ƒGƒ‰[Žž‚̃TƒEƒ“ƒh */ +#define SND_CONNECT 0 /* 接続時のサウンド */ +#define SND_TRANS 1 /* 転送終了時のサウンド */ +#define SND_ERROR 2 /* エラー時のサウンド */ -#define SOUND_TYPES 3 /* ƒTƒEƒ“ƒh‚ÌŽí—Þ */ +#define SOUND_TYPES 3 /* サウンドの種類 */ -/*===== ƒrƒ…[ƒ =====*/ +/*===== ビューワ =====*/ -#define VIEWERS 3 /* ƒrƒ…[ƒ‚̐” */ +#define VIEWERS 3 /* ビューワの数 */ -/*===== ƒuƒbƒNƒ}[ƒN =====*/ +/*===== ブックマーク =====*/ -#define BMARK_SUB_MENU 2 /* ƒuƒbƒNƒ}[ƒNƒƒjƒ…[‚̃Tƒuƒƒjƒ…[”ԍ† */ -#define DEFAULT_BMARK_ITEM 5 /* ƒuƒbƒNƒ}[ƒNƒƒjƒ…[‚É‚ ‚éŒÅ’è•”•ª‚̐” */ -#define MENU_BMARK_TOP 30000 /* 3000ˆÈ~(3100‚­‚ç‚¢‚Ü‚Å)‚Í—\–ñ‚·‚é */ - /* resource.h ‚Ì’è‹`‚Əd‚È‚ç‚È‚¢‚悤‚É */ +#define BMARK_SUB_MENU 2 /* ブックマークメニューのサブメニュー番号 */ +#define DEFAULT_BMARK_ITEM 5 /* ブックマークメニューにある固定部分の数 */ +#define MENU_BMARK_TOP 30000 /* 3000以降(3100くらいまで)は予約する */ + /* resource.h の定義と重ならないように */ -#define BMARK_TYPE_NONE 0 /* ƒuƒbƒNƒ}[ƒN–³‚µ */ -#define BMARK_TYPE_LOCAL 1 /* ƒ[ƒJƒ‹‘¤‚̃uƒbƒNƒ}[ƒN */ -#define BMARK_TYPE_REMOTE 2 /* ƒzƒXƒg‘¤‚̃uƒbƒNƒ}[ƒN */ -#define BMARK_TYPE_BOTH 3 /* —¼•û‚̃uƒbƒNƒ}[ƒN */ +#define BMARK_TYPE_NONE 0 /* ブックマーク無し */ +#define BMARK_TYPE_LOCAL 1 /* ローカル側のブックマーク */ +#define BMARK_TYPE_REMOTE 2 /* ホスト側のブックマーク */ +#define BMARK_TYPE_BOTH 3 /* 両方のブックマーク */ -#define BMARK_MARK_LOCAL "L " /* ƒ[ƒJƒ‹‘¤‚̈ó */ -#define BMARK_MARK_REMOTE "H " /* ƒzƒXƒg‘¤‚̈ó */ -#define BMARK_MARK_BOTH "W " /* —¼•û‚̈ó */ -#define BMARK_MARK_LEN 2 /* ˆó‚Ì•¶Žš” */ +#define BMARK_MARK_LOCAL "L " /* ローカル側の印 */ +#define BMARK_MARK_REMOTE "H " /* ホスト側の印 */ +#define BMARK_MARK_BOTH "W " /* 両方の印 */ +#define BMARK_MARK_LEN 2 /* 印の文字数 */ -#define BMARK_SEP " <> " /* ƒ[ƒJƒ‹‘¤‚ƃzƒXƒg‘¤‚Ì‹æØ‚è */ -#define BMARK_SEP_LEN 4 /* ‹æØ‚è‚Ì•¶Žš” */ +#define BMARK_SEP " <> " /* ローカル側とホスト側の区切り */ +#define BMARK_SEP_LEN 4 /* 区切りの文字数 */ -/*===== ƒŒƒWƒXƒgƒŠ‚̃^ƒCƒv =====*/ +/*===== レジストリのタイプ =====*/ -#define REGTYPE_REG 0 /* ƒŒƒWƒXƒgƒŠ */ -#define REGTYPE_INI 1 /* INIƒtƒ@ƒCƒ‹ */ +#define REGTYPE_REG 0 /* レジストリ */ +#define REGTYPE_INI 1 /* INIファイル */ -#define REG_SECT_MAX (16*1024) /* ƒŒƒWƒXƒgƒŠ‚Ì‚PƒZƒNƒVƒ‡ƒ“‚̍őåƒf[ƒ^ƒTƒCƒY */ +// UTF-8対応 +//#define REG_SECT_MAX (16*1024) /* レジストリの1セクションの最大データサイズ */ +#define REG_SECT_MAX (64*1024) /* レジストリの1セクションの最大データサイズ */ -/*===== ƒzƒXƒgÝ’è‚Å–¾Ž¦“I‚ÉŽw’è‚·‚éƒzƒXƒg‚̃^ƒCƒv =====*/ +/*===== ホスト設定で明示的に指定するホストのタイプ =====*/ -#define HTYPE_AUTO 0 /* Ž©“® */ -#define HTYPE_ACOS 1 /* ACOS (‘Ò‹@Œ‹‡ƒtƒ@ƒCƒ‹‚ÌŽw’肪•K—v) */ +#define HTYPE_AUTO 0 /* 自動 */ +#define HTYPE_ACOS 1 /* ACOS (待機結合ファイルの指定が必要) */ #define HTYPE_VMS 2 /* VAX VMS */ #define HTYPE_IRMX 3 /* IRMX */ -#define HTYPE_ACOS_4 4 /* ACOS ƒtƒ@ƒCƒ‹–¼‚ð('')‚ÅŠ‡‚ç‚È‚¢ */ +#define HTYPE_ACOS_4 4 /* ACOS ファイル名を('')で括らない */ #define HTYPE_STRATUS 5 /* Stratus */ #define HTYPE_AGILENT 6 /* Agilent Logic analyzer */ #define HTYPE_SHIBASOKU 7 /* Shibasoku LSI test system */ -/*===== ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ƒIƒvƒVƒ‡ƒ“ =====*/ +/*===== コマンドラインオプション =====*/ -#define OPT_MIRROR 0x0001 /* ƒ~ƒ‰[ƒŠƒ“ƒOƒAƒbƒvƒ[ƒh‚ðs‚¤ */ -#define OPT_FORCE 0x0002 /* ƒ~ƒ‰[ƒŠƒ“ƒOŠJŽn‚ÌŠm”F‚ð‚µ‚È‚¢ */ -#define OPT_QUIT 0x0004 /* I—¹ŒãƒvƒƒOƒ‰ƒ€I—¹ */ -#define OPT_EUC 0x0008 /* Š¿ŽšƒR[ƒh‚ÍEUC */ -#define OPT_JIS 0x0010 /* Š¿ŽšƒR[ƒh‚ÍJIS */ -#define OPT_ASCII 0x0020 /* ƒAƒXƒL[“]‘—ƒ‚[ƒh */ -#define OPT_BINARY 0x0040 /* ƒoƒCƒiƒŠ“]‘—ƒ‚[ƒh */ -#define OPT_AUTO 0x0080 /* Ž©“®”»•Ê */ -#define OPT_KANA 0x0100 /* ”¼Šp‚©‚È‚ð‚»‚Ì‚Ü‚Ü’Ê‚· */ -#define OPT_EUC_NAME 0x0200 /* ƒtƒ@ƒCƒ‹–¼‚ÍEUC */ -#define OPT_JIS_NAME 0x0400 /* ƒtƒ@ƒCƒ‹–¼‚ÍJIS */ -#define OPT_MIRRORDOWN 0x0800 /* ƒ~ƒ‰[ƒŠƒ“ƒOƒ_ƒEƒ“ƒ[ƒh‚ðs‚¤ */ -#define OPT_SAVEOFF 0x1000 /* Ý’è‚Ì•Û‘¶‚𒆎~‚·‚é */ -#define OPT_SAVEON 0x2000 /* Ý’è‚Ì•Û‘¶‚ðÄŠJ‚·‚é */ +#define OPT_MIRROR 0x0001 /* ミラーリングアップロードを行う */ +#define OPT_FORCE 0x0002 /* ミラーリング開始の確認をしない */ +#define OPT_QUIT 0x0004 /* 終了後プログラム終了 */ +#define OPT_EUC 0x0008 /* 漢字コードはEUC */ +#define OPT_JIS 0x0010 /* 漢字コードはJIS */ +#define OPT_ASCII 0x0020 /* アスキー転送モード */ +#define OPT_BINARY 0x0040 /* バイナリ転送モード */ +#define OPT_AUTO 0x0080 /* 自動判別 */ +#define OPT_KANA 0x0100 /* 半角かなをそのまま通す */ +#define OPT_EUC_NAME 0x0200 /* ファイル名はEUC */ +#define OPT_JIS_NAME 0x0400 /* ファイル名はJIS */ +#define OPT_MIRRORDOWN 0x0800 /* ミラーリングダウンロードを行う */ +#define OPT_SAVEOFF 0x1000 /* 設定の保存を中止する */ +#define OPT_SAVEON 0x2000 /* 設定の保存を再開する */ -/*===== ƒzƒXƒg‚̃qƒXƒgƒŠ =====*/ +/*===== ホストのヒストリ =====*/ -#define HISTORY_MAX 20 /* ƒtƒ@ƒCƒ‹‚̃qƒXƒgƒŠ‚̍őåŒÂ” */ -#define DEF_FMENU_ITEMS 8 /* Fileƒƒjƒ…[‚É‚ ‚鍀–ڐ”‚̏‰Šú’l */ +#define HISTORY_MAX 20 /* ファイルのヒストリの最大個数 */ +#define DEF_FMENU_ITEMS 8 /* Fileメニューにある項目数の初期値 */ /*===== SOCKS4 =====*/ -#define SOCKS4_VER 4 /* SOCKS‚̃o[ƒWƒ‡ƒ“ */ +#define SOCKS4_VER 4 /* SOCKSのバージョン */ -#define SOCKS4_CMD_CONNECT 1 /* CONNECTƒRƒ}ƒ“ƒh */ -#define SOCKS4_CMD_BIND 2 /* BINDƒRƒ}ƒ“ƒh */ +#define SOCKS4_CMD_CONNECT 1 /* CONNECTコマンド */ +#define SOCKS4_CMD_BIND 2 /* BINDコマンド */ -/* ƒŠƒUƒ‹ƒgƒR[ƒh */ -#define SOCKS4_RES_OK 90 /* —v‹‚Í‹–‰Â‚³‚ꂽ */ - /* ‚»‚Ì‘¼‚̃R[ƒh‚̓`ƒFƒbƒN‚µ‚È‚¢‚Ì‚Å’è‹`‚µ‚È‚¢ */ +/* リザルトコード */ +#define SOCKS4_RES_OK 90 /* 要求は許可された */ + /* その他のコードはチェックしないので定義しない */ /*===== SOCKS5 =====*/ -#define SOCKS5_VER 5 /* SOCKS‚̃o[ƒWƒ‡ƒ“ */ +#define SOCKS5_VER 5 /* SOCKSのバージョン */ -#define SOCKS5_CMD_CONNECT 1 /* CONNECTƒRƒ}ƒ“ƒh */ -#define SOCKS5_CMD_BIND 2 /* BINDƒRƒ}ƒ“ƒh */ +#define SOCKS5_CMD_CONNECT 1 /* CONNECTコマンド */ +#define SOCKS5_CMD_BIND 2 /* BINDコマンド */ -#define SOCKS5_AUTH_NONE 0 /* ”FØ–³‚µ */ +#define SOCKS5_AUTH_NONE 0 /* 認証無し */ #define SOCKS5_AUTH_GSSAPI 1 /* GSS-API */ #define SOCKS5_AUTH_USER 2 /* Username/Password */ @@ -782,142 +789,164 @@ LIST_UNIX_70 #define SOCKS5_ADRS_NAME 3 /* Domain name */ #define SOCKS5_ADRS_IPV6 4 /* IP V6 address */ -#define SOCKS5_USERAUTH_VER 1 /* Username\Password”FØ‚̃o[ƒWƒ‡ƒ“ */ +#define SOCKS5_USERAUTH_VER 1 /* Username\Password認証のバージョン */ -/* ƒŠƒUƒ‹ƒgƒR[ƒh */ +/* リザルトコード */ #define SOCKS5_RES_OK 0x00 /* succeeded */ - /* ‚»‚Ì‘¼‚̃R[ƒh‚̓`ƒFƒbƒN‚µ‚È‚¢‚Ì‚Å’è‹`‚µ‚È‚¢ */ + /* その他のコードはチェックしないので定義しない */ -/*===== ’†’fƒR[ƒh =====*/ +/*===== 中断コード =====*/ -#define ABORT_NONE 0 /* “]‘—’†’f‚È‚µ */ -#define ABORT_USER 1 /* ƒ†[ƒU‚É‚æ‚é’†’f */ -#define ABORT_ERROR 2 /* ƒGƒ‰[‚É‚æ‚é’†’f */ -#define ABORT_DISKFULL 3 /* ƒfƒBƒXƒNƒtƒ‹‚æ‚é’†’f */ +#define ABORT_NONE 0 /* 転送中断なし */ +#define ABORT_USER 1 /* ユーザによる中断 */ +#define ABORT_ERROR 2 /* エラーによる中断 */ +#define ABORT_DISKFULL 3 /* ディスクフルよる中断 */ -/*===== FireWall‚ÌŽí—Þ =====*/ +/*===== FireWallの種類 =====*/ -#define FWALL_NONE 0 /* ‚È‚µ */ -#define FWALL_FU_FP_SITE 1 /* FW user ¨ FW pass ¨ SITE host */ -#define FWALL_FU_FP_USER 2 /* FW user ¨ FW pass ¨ USER user@host */ +#define FWALL_NONE 0 /* なし */ +#define FWALL_FU_FP_SITE 1 /* FW user → FW pass → SITE host */ +#define FWALL_FU_FP_USER 2 /* FW user → FW pass → USER user@host */ #define FWALL_USER 3 /* USER user@host */ #define FWALL_OPEN 4 /* OPEN host */ #define FWALL_SOCKS4 5 /* SOCKS4 */ -#define FWALL_SOCKS5_NOAUTH 6 /* SOCKS5 (”FØ‚È‚µ) */ -#define FWALL_SOCKS5_USER 7 /* SOCKS5 (Username/Password”FØ) */ -#define FWALL_FU_FP 8 /* FW user ¨ FW pass */ +#define FWALL_SOCKS5_NOAUTH 6 /* SOCKS5 (認証なし) */ +#define FWALL_SOCKS5_USER 7 /* SOCKS5 (Username/Password認証) */ +#define FWALL_FU_FP 8 /* FW user → FW pass */ #define FWALL_SIDEWINDER 9 /* USER FWuser:FWpass@host */ -/*===== ƒƒ“ƒ^ƒCƒ€ƒpƒXƒ[ƒh =====*/ +/*===== ワンタイムパスワード =====*/ -/* ƒR[ƒh‚ÌŽí—Þ */ -#define SECURITY_DISABLE 0 /* Žg—p‚µ‚È‚¢ */ -#define SECURITY_AUTO 1 /* Ž©“®”FŽ¯ */ +/* コードの種類 */ +#define SECURITY_DISABLE 0 /* 使用しない */ +#define SECURITY_AUTO 1 /* 自動認識 */ #define MD4 2 /* MD4 */ #define MD5 3 /* MD5 */ #define SHA1 4 /* SHA-1 */ -#define MAX_SEED_LEN 16 /* Seed‚Ì•¶Žš” */ +#define MAX_SEED_LEN 16 /* Seedの文字数 */ -/*===== Ä‹A“I‚ȃtƒ@ƒCƒ‹ŒŸõ‚Ì•û–@ =====*/ +/*===== 再帰的なファイル検索の方法 =====*/ -#define RDIR_NONE 0 /* Ä‹AŒŸõ‚È‚µ */ +#define RDIR_NONE 0 /* 再帰検索なし */ #define RDIR_NLST 1 /* NLST -R */ -#define RDIR_CWD 2 /* CWD‚ňړ® */ +#define RDIR_CWD 2 /* CWDで移動 */ -/*===== VAX VMS ŠÖŒW =====*/ +/*===== VAX VMS 関係 =====*/ -#define BLOCK_SIZE 512 /* 1ƒuƒƒbƒN‚̃oƒCƒg” */ +#define BLOCK_SIZE 512 /* 1ブロックのバイト数 */ -/*===== Ý’è‚̃Œƒxƒ‹ =====*/ +/*===== 設定のレベル =====*/ -#define SET_LEVEL_GROUP 0x8000 /* ƒOƒ‹[ƒv‚̃tƒ‰ƒO */ +#define SET_LEVEL_GROUP 0x8000 /* グループのフラグ */ #define SET_LEVEL_MASK 0x7FFF #define SET_LEVEL_SAME 0x7FFF -/*===== “ú•tA”’l‚Ì•\Ž¦Œ`Ž® =====*/ +/*===== 日付、数値の表示形式 =====*/ -#define DISPFORM_LEGACY 0 /* ŒÅ’菑Ž® */ -#define DISPFORM_LOCALE 1 /* ƒRƒ“ƒgƒ[ƒ‹ƒpƒlƒ‹‚ɏ]‚¤ */ +#define DISPFORM_LEGACY 0 /* 固定書式 */ +#define DISPFORM_LOCALE 1 /* コントロールパネルに従う */ -/*===== ƒtƒ@ƒCƒ‹ˆê——‚É‘¶Ý‚µ‚½î•ñ =====*/ +/*===== ファイル一覧に存在した情報 =====*/ -#define FINFO_DATE 0x01 /* “ú•t */ -#define FINFO_TIME 0x02 /* ŽžŠÔ */ -#define FINFO_SIZE 0x04 /* ƒTƒCƒY */ -#define FINFO_ATTR 0x08 /* ‘®« */ -#define FINFO_ALL 0xFF /* ‘S‚Ä */ +#define FINFO_DATE 0x01 /* 日付 */ +#define FINFO_TIME 0x02 /* 時間 */ +#define FINFO_SIZE 0x04 /* サイズ */ +#define FINFO_ATTR 0x08 /* 属性 */ +#define FINFO_ALL 0xFF /* 全て */ -/*===== GetMasterPasswordStatus‚ÅŽg‚¤ƒR[ƒh =====*/ +/*===== GetMasterPasswordStatusで使うコード =====*/ #define PASSWORD_OK 0 #define PASSWORD_UNMATCH 2 #define BAD_PASSWORD_HASH 3 -/*===== ˆÃ†‰»ƒpƒXƒ[ƒhÝ’è =====*/ +/*===== 暗号化パスワード設定 =====*/ #define DEFAULT_PASSWORD "DefaultPassword" #define MAX_PASSWORD_LEN 128 -// ˆÃ†‰»’ʐM‘Ήž +// 暗号化通信対応 #define CRYPT_NONE 0 #define CRYPT_FTPES 1 #define CRYPT_FTPIS 2 #define CRYPT_SFTP 3 +// FEAT対応 +// UTF-8対応 +#define FEATURE_UTF8 0x00000001 +// MLSD対応 +#define FEATURE_MLSD 0x00000002 +// IPv6対応 +#define FEATURE_EPRT 0x00000004 +#define FEATURE_EPSV 0x00000008 + +// 暗号化通信対応 +// REG_SECT_MAXの値を加味する必要がある +#define MAX_CERT_CACHE_HASH 256 + /*================================================= -* ƒXƒgƒ‰ƒNƒ`ƒƒ +* ストラクチャ *=================================================*/ -/*===== ƒzƒXƒgÝ’èƒf[ƒ^ =====*/ +/*===== ホスト設定データ =====*/ typedef struct { - int Level; /* Ý’è‚̃Œƒxƒ‹ */ - /* ’ʏí‚̓Oƒ‹[ƒv‚̃tƒ‰ƒO‚Ì‚Ý‚ª—LŒø */ - /* ƒŒƒxƒ‹”‚͐ݒè‚Ì“o˜^^ŒÄoŽž‚Ì‚Ý‚ÅŽg—p */ - char HostName[HOST_NAME_LEN+1]; /* Ý’è–¼ */ - char HostAdrs[HOST_ADRS_LEN+1]; /* ƒzƒXƒg–¼ */ - char UserName[USER_NAME_LEN+1]; /* ƒ†[ƒU–¼ */ - char PassWord[PASSWORD_LEN+1]; /* ƒpƒXƒ[ƒh */ - char Account[ACCOUNT_LEN+1]; /* ƒAƒJƒEƒ“ƒg */ - char LocalInitDir[INIT_DIR_LEN+1]; /* ƒ[ƒJƒ‹‚ÌŠJŽnƒfƒBƒŒƒNƒgƒŠ */ - char RemoteInitDir[INIT_DIR_LEN+1]; /* ƒzƒXƒg‚ÌŠJŽnƒfƒBƒŒƒNƒgƒŠ */ - char BookMark[BOOKMARK_SIZE]; /* ƒuƒbƒNƒ}[ƒN */ - char ChmodCmd[CHMOD_CMD_LEN+1]; /* ‘®«•ÏXƒRƒ}ƒ“ƒh */ - char LsName[NLST_NAME_LEN+1]; /* NLST‚É•t‚¯‚éƒtƒ@ƒCƒ‹–¼/ƒIƒvƒVƒ‡ƒ“*/ - char InitCmd[INITCMD_LEN+1]; /* ƒzƒXƒg‚̏‰Šú‰»ƒRƒ}ƒ“ƒh */ - int Port; /* ƒ|[ƒg”ԍ† */ - int Anonymous; /* Anonymousƒtƒ‰ƒO */ - int KanjiCode; /* ƒzƒXƒg‚ÌŠ¿ŽšƒR[ƒh (KANJI_xxx) */ - int KanaCnv; /* ”¼ŠpƒJƒi‚ð‘SŠp‚É•ÏŠ·(YES/NO) */ - int NameKanjiCode; /* ƒtƒ@ƒCƒ‹–¼‚ÌŠ¿ŽšƒR[ƒh (KANJI_xxx) */ - int NameKanaCnv; /* ƒtƒ@ƒCƒ‹–¼‚Ì”¼ŠpƒJƒi‚ð‘SŠp‚É•ÏŠ·(YES/NO) */ - int Pasv; /* PASVƒ‚[ƒh (YES/NO) */ - int FireWall; /* FireWall‚ðŽg‚¤ (YES/NO) */ - int ListCmdOnly; /* "LIST"ƒRƒ}ƒ“ƒh‚Ì‚ÝŽg—p‚·‚é */ - int UseNLST_R; /* "NLST -R"ƒRƒ}ƒ“ƒh‚ðŽg—p‚·‚é */ - int LastDir; /* ÅŒã‚ɃAƒNƒZƒX‚µ‚½ƒtƒHƒ‹ƒ_‚ð•Û‘¶ */ - int TimeZone; /* ƒ^ƒCƒ€ƒ][ƒ“ (-12`12) */ - int HostType; /* ƒzƒXƒg‚̃^ƒCƒv (HTYPE_xxx) */ - int SyncMove; /* ƒtƒHƒ‹ƒ_“¯ŽžˆÚ“® (YES/NO) */ - int NoFullPath; /* ƒtƒ‹ƒpƒX‚Ńtƒ@ƒCƒ‹ƒAƒNƒZƒX‚µ‚È‚¢ (YES/NO) */ - ulong Sort; /* ƒ\[ƒg•û–@ (0x11223344 : 11=LFsort 22=LDsort 33=RFsort 44=RFsort) */ - int Security; /* ƒZƒLƒ…ƒŠƒeƒB (SECURITY_xxx , MDx) */ - int Dialup; /* ƒ_ƒCƒAƒ‹ƒAƒbƒvÚ‘±‚·‚é‚©‚Ç‚¤‚© (YES/NO) */ - int DialupAlways; /* í‚É‚±‚̃Gƒ“ƒgƒŠ‚֐ڑ±‚·‚é‚©‚Ç‚¤‚© (YES/NO) */ - int DialupNotify; /* ÄÚ‘±‚̍ۂɊm”F‚·‚é (YES/NO) */ - char DialEntry[RAS_NAME_LEN+1]; /* ƒ_ƒCƒAƒ‹ƒAƒbƒvƒGƒ“ƒgƒŠ */ - // ˆÃ†‰»’ʐM‘Ήž - int CryptMode; /* ˆÃ†‰»’ʐMƒ‚[ƒh (CRYPT_xxx) */ - int UseFTPES; /* FTPES‚Őڑ±‚·‚é (YES/NO) */ - int UseFTPIS; /* FTPIS‚Őڑ±‚·‚é (YES/NO) */ - int UseSFTP; /* SFTP‚Őڑ±‚·‚é (YES/NO) */ + int Level; /* 設定のレベル */ + /* 通常はグループのフラグのみが有効 */ + /* レベル数は設定の登録/呼出時のみで使用 */ + char HostName[HOST_NAME_LEN+1]; /* 設定名 */ + char HostAdrs[HOST_ADRS_LEN+1]; /* ホスト名 */ + char UserName[USER_NAME_LEN+1]; /* ユーザ名 */ + char PassWord[PASSWORD_LEN+1]; /* パスワード */ + char Account[ACCOUNT_LEN+1]; /* アカウント */ + char LocalInitDir[INIT_DIR_LEN+1]; /* ローカルの開始ディレクトリ */ + char RemoteInitDir[INIT_DIR_LEN+1]; /* ホストの開始ディレクトリ */ + char BookMark[BOOKMARK_SIZE]; /* ブックマーク */ + char ChmodCmd[CHMOD_CMD_LEN+1]; /* 属性変更コマンド */ + char LsName[NLST_NAME_LEN+1]; /* NLSTに付けるファイル名/オプション*/ + char InitCmd[INITCMD_LEN+1]; /* ホストの初期化コマンド */ + int Port; /* ポート番号 */ + int Anonymous; /* Anonymousフラグ */ + int KanjiCode; /* ホストの漢字コード (KANJI_xxx) */ + int KanaCnv; /* 半角カナを全角に変換(YES/NO) */ + int NameKanjiCode; /* ファイル名の漢字コード (KANJI_xxx) */ + int NameKanaCnv; /* ファイル名の半角カナを全角に変換(YES/NO) */ + int Pasv; /* PASVモード (YES/NO) */ + int FireWall; /* FireWallを使う (YES/NO) */ + int ListCmdOnly; /* "LIST"コマンドのみ使用する */ + int UseNLST_R; /* "NLST -R"コマンドを使用する */ + int LastDir; /* 最後にアクセスしたフォルダを保存 */ + int TimeZone; /* タイムゾーン (-12~12) */ + int HostType; /* ホストのタイプ (HTYPE_xxx) */ + int SyncMove; /* フォルダ同時移動 (YES/NO) */ + int NoFullPath; /* フルパスでファイルアクセスしない (YES/NO) */ + ulong Sort; /* ソート方法 (0x11223344 : 11=LFsort 22=LDsort 33=RFsort 44=RFsort) */ + int Security; /* セキュリティ (SECURITY_xxx , MDx) */ + int Dialup; /* ダイアルアップ接続するかどうか (YES/NO) */ + int DialupAlways; /* 常にこのエントリへ接続するかどうか (YES/NO) */ + int DialupNotify; /* 再接続の際に確認する (YES/NO) */ + char DialEntry[RAS_NAME_LEN+1]; /* ダイアルアップエントリ */ + // 暗号化通信対応 + int CryptMode; /* 暗号化通信モード (CRYPT_xxx) */ + int UseNoEncryption; /* 暗号化なしで接続する (YES/NO) */ + int UseFTPES; /* FTPESで接続する (YES/NO) */ + int UseFTPIS; /* FTPISで接続する (YES/NO) */ + int UseSFTP; /* SFTPで接続する (YES/NO) */ + // 同時接続対応 + int MaxThreadCount; /* 同時接続数 */ + // FEAT対応 + int Feature; /* 利用可能な機能のフラグ (FEATURE_xxx) */ + // MLSD対応 + int UseMLSD; /* "MLSD"コマンドを使用する */ + // IPv6対応 + int UseIPv6; /* IPv6接続を許可しEPRT/EPSVコマンドを使用する */ } HOSTDATA; -/*===== ƒzƒXƒgÝ’胊ƒXƒg =====*/ +/*===== ホスト設定リスト =====*/ typedef struct hostlistdata { - HOSTDATA Set; /* ƒzƒXƒgÝ’èƒf[ƒ^ */ + HOSTDATA Set; /* ホスト設定データ */ struct hostlistdata *Next; struct hostlistdata *Prev; struct hostlistdata *Child; @@ -925,165 +954,173 @@ typedef struct hostlistdata { } HOSTLISTDATA; -/*===== Ú‘±ƒqƒXƒgƒŠƒŠƒXƒg =====*/ +/*===== 接続ヒストリリスト =====*/ typedef struct historydata { - char HostAdrs[HOST_ADRS_LEN+1]; /* ƒzƒXƒg–¼ */ - char UserName[USER_NAME_LEN+1]; /* ƒ†[ƒU–¼ */ - char PassWord[PASSWORD_LEN+1]; /* ƒpƒXƒ[ƒh */ - char Account[ACCOUNT_LEN+1]; /* ƒAƒJƒEƒ“ƒg */ - char LocalInitDir[INIT_DIR_LEN+1]; /* ƒfƒBƒŒƒNƒgƒŠ */ - char RemoteInitDir[INIT_DIR_LEN+1]; /* ƒfƒBƒŒƒNƒgƒŠ */ - char ChmodCmd[CHMOD_CMD_LEN+1]; /* ‘®«•ÏXƒRƒ}ƒ“ƒh */ - char LsName[NLST_NAME_LEN+1]; /* NLST‚É•t‚¯‚éƒtƒ@ƒCƒ‹–¼/ƒIƒvƒVƒ‡ƒ“*/ - char InitCmd[INITCMD_LEN+1]; /* ƒzƒXƒg‚̏‰Šú‰»ƒRƒ}ƒ“ƒh */ - int Port; /* ƒ|[ƒg”ԍ† */ - int KanjiCode; /* ƒzƒXƒg‚ÌŠ¿ŽšƒR[ƒh (KANJI_xxx) */ - int KanaCnv; /* ”¼ŠpƒJƒi‚ð‘SŠp‚É•ÏŠ·(YES/NO) */ - int NameKanjiCode; /* ƒtƒ@ƒCƒ‹–¼‚ÌŠ¿ŽšƒR[ƒh (KANJI_xxx) */ - int NameKanaCnv; /* ƒtƒ@ƒCƒ‹–¼‚Ì”¼ŠpƒJƒi‚ð‘SŠp‚É•ÏŠ·(YES/NO) */ - int Pasv; /* PASVƒ‚[ƒh (YES/NO) */ - int FireWall; /* FireWall‚ðŽg‚¤ (YES/NO) */ - int ListCmdOnly; /* "LIST"ƒRƒ}ƒ“ƒh‚Ì‚ÝŽg—p‚·‚é */ - int UseNLST_R; /* "NLST -R"ƒRƒ}ƒ“ƒh‚ðŽg—p‚·‚é */ - int TimeZone; /* ƒ^ƒCƒ€ƒ][ƒ“ (-12`12) */ - int HostType; /* ƒzƒXƒg‚̃^ƒCƒv (HTYPE_xxx) */ - int SyncMove; /* ƒtƒHƒ‹ƒ_“¯ŽžˆÚ“® (YES/NO) */ - int NoFullPath; /* ƒtƒ‹ƒpƒX‚Ńtƒ@ƒCƒ‹ƒAƒNƒZƒX‚µ‚È‚¢ (YES/NO) */ - ulong Sort; /* ƒ\[ƒg•û–@ (0x11223344 : 11=LFsort 22=LDsort 33=RFsort 44=RFsort) */ - int Security; /* ƒZƒLƒ…ƒŠƒeƒB (OTP_xxx , MDx) */ - int Type; /* “]‘—•û–@ (TYPE_xx) */ - int Dialup; /* ƒ_ƒCƒAƒ‹ƒAƒbƒvÚ‘±‚·‚é‚©‚Ç‚¤‚© (YES/NO) */ - int DialupAlways; /* í‚É‚±‚̃Gƒ“ƒgƒŠ‚֐ڑ±‚·‚é‚©‚Ç‚¤‚© (YES/NO) */ - int DialupNotify; /* ÄÚ‘±‚̍ۂɊm”F‚·‚é (YES/NO) */ - char DialEntry[RAS_NAME_LEN+1]; /* ƒ_ƒCƒAƒ‹ƒAƒbƒvƒGƒ“ƒgƒŠ */ - // ˆÃ†‰»’ʐM‘Ήž - int UseFTPES; /* FTPES‚Őڑ±‚·‚é (YES/NO) */ - int UseFTPIS; /* FTPIS‚Őڑ±‚·‚é (YES/NO) */ - int UseSFTP; /* SFTP‚Őڑ±‚·‚é (YES/NO) */ + char HostAdrs[HOST_ADRS_LEN+1]; /* ホスト名 */ + char UserName[USER_NAME_LEN+1]; /* ユーザ名 */ + char PassWord[PASSWORD_LEN+1]; /* パスワード */ + char Account[ACCOUNT_LEN+1]; /* アカウント */ + char LocalInitDir[INIT_DIR_LEN+1]; /* ディレクトリ */ + char RemoteInitDir[INIT_DIR_LEN+1]; /* ディレクトリ */ + char ChmodCmd[CHMOD_CMD_LEN+1]; /* 属性変更コマンド */ + char LsName[NLST_NAME_LEN+1]; /* NLSTに付けるファイル名/オプション*/ + char InitCmd[INITCMD_LEN+1]; /* ホストの初期化コマンド */ + int Port; /* ポート番号 */ + int KanjiCode; /* ホストの漢字コード (KANJI_xxx) */ + int KanaCnv; /* 半角カナを全角に変換(YES/NO) */ + int NameKanjiCode; /* ファイル名の漢字コード (KANJI_xxx) */ + int NameKanaCnv; /* ファイル名の半角カナを全角に変換(YES/NO) */ + int Pasv; /* PASVモード (YES/NO) */ + int FireWall; /* FireWallを使う (YES/NO) */ + int ListCmdOnly; /* "LIST"コマンドのみ使用する */ + int UseNLST_R; /* "NLST -R"コマンドを使用する */ + int TimeZone; /* タイムゾーン (-12~12) */ + int HostType; /* ホストのタイプ (HTYPE_xxx) */ + int SyncMove; /* フォルダ同時移動 (YES/NO) */ + int NoFullPath; /* フルパスでファイルアクセスしない (YES/NO) */ + ulong Sort; /* ソート方法 (0x11223344 : 11=LFsort 22=LDsort 33=RFsort 44=RFsort) */ + int Security; /* セキュリティ (OTP_xxx , MDx) */ + int Type; /* 転送方法 (TYPE_xx) */ + int Dialup; /* ダイアルアップ接続するかどうか (YES/NO) */ + int DialupAlways; /* 常にこのエントリへ接続するかどうか (YES/NO) */ + int DialupNotify; /* 再接続の際に確認する (YES/NO) */ + char DialEntry[RAS_NAME_LEN+1]; /* ダイアルアップエントリ */ + // 暗号化通信対応 + int UseFTPES; /* FTPESで接続する (YES/NO) */ + int UseFTPIS; /* FTPISで接続する (YES/NO) */ + int UseSFTP; /* SFTPで接続する (YES/NO) */ + // 同時接続対応 + int MaxThreadCount; /* 同時接続数 */ + // MLSD対応 + int UseMLSD; /* "MLSD"コマンドを使用する */ + // IPv6対応 + int UseIPv6; /* IPv6接続を許可しEPRT/EPSVコマンドを使用する */ struct historydata *Next; } HISTORYDATA; -/*===== “]‘—ƒtƒ@ƒCƒ‹ƒŠƒXƒg =====*/ +/*===== 転送ファイルリスト =====*/ typedef struct transpacket { SOCKET ctrl_skt; /* Socket */ char Cmd[40]; /* STOR/RETR/MKD */ - char RemoteFile[FMAX_PATH+1]; /* ƒzƒXƒg‘¤‚̃tƒ@ƒCƒ‹–¼iƒtƒ‹ƒpƒXj */ - /* VMS‚ÌŽž‚Í ddd[xxx.yyy]/yyy/zzz ‚̂悤‚É */ - /* ‚È‚Á‚Ä‚é‚Ì‚Å’ˆÓ */ - char LocalFile[FMAX_PATH+1]; /* ƒ[ƒJƒ‹‘¤‚̃tƒ@ƒCƒ‹–¼iƒtƒ‹ƒpƒXj */ - int Type; /* “]‘—•û–@ (TYPE_xx) */ - LONGLONG Size; /* ƒtƒ@ƒCƒ‹‚̃TƒCƒY */ - LONGLONG ExistSize; /* ‚·‚Å‚É‘¶Ý‚·‚éƒtƒ@ƒCƒ‹‚̃TƒCƒY */ - /* “]‘—’†‚́A“]‘—‚µ‚½ƒtƒ@ƒCƒ‹‚̃TƒCƒY‚ðŠi”[‚·‚é */ - FILETIME Time; /* ƒtƒ@ƒCƒ‹‚ÌŽžŠÔ(UTC) */ - int Attr; /* ƒtƒ@ƒCƒ‹‚Ì‘®« */ - int KanjiCode; /* Š¿ŽšƒR[ƒh (KANJI_xxx) */ - // UTF-8‘Ήž - int KanjiCodeDesired; /* ƒ[ƒJƒ‹‚ÌŠ¿ŽšƒR[ƒh (KANJI_xxx) */ - int KanaCnv; /* ”¼ŠpƒJƒi‚ð‘SŠp‚É•ÏŠ·(YES/NO) */ - int Mode; /* “]‘—ƒ‚[ƒh (EXIST_xxx) */ - HWND hWndTrans; /* “]‘—’†ƒ_ƒCƒAƒƒO‚̃EƒCƒ“ƒhƒEƒnƒ“ƒhƒ‹ */ - int Abort; /* “]‘—’†Ž~ƒtƒ‰ƒO (ABORT_xxx) */ - // ˆÃ†‰»’ʐM‘Ήž - int CryptMode; /* ˆÃ†‰»’ʐMƒ‚[ƒh (CRYPT_xxx) */ + char RemoteFile[FMAX_PATH+1]; /* ホスト側のファイル名(フルパス) */ + /* VMSの時は ddd[xxx.yyy]/yyy/zzz のように */ + /* なってるので注意 */ + char LocalFile[FMAX_PATH+1]; /* ローカル側のファイル名(フルパス) */ + int Type; /* 転送方法 (TYPE_xx) */ + LONGLONG Size; /* ファイルのサイズ */ + LONGLONG ExistSize; /* すでに存在するファイルのサイズ */ + /* 転送中は、転送したファイルのサイズを格納する */ + FILETIME Time; /* ファイルの時間(UTC) */ + int Attr; /* ファイルの属性 */ + int KanjiCode; /* 漢字コード (KANJI_xxx) */ + // UTF-8対応 + int KanjiCodeDesired; /* ローカルの漢字コード (KANJI_xxx) */ + int KanaCnv; /* 半角カナを全角に変換(YES/NO) */ + int Mode; /* 転送モード (EXIST_xxx) */ + HWND hWndTrans; /* 転送中ダイアログのウインドウハンドル */ + int Abort; /* 転送中止フラグ (ABORT_xxx) */ + // 暗号化通信対応 + int CryptMode; /* 暗号化通信モード (CRYPT_xxx) */ + // 同時接続対応 + int ThreadCount; struct transpacket *Next; } TRANSPACKET; -/*===== ƒtƒ@ƒCƒ‹ƒŠƒXƒg =====*/ +/*===== ファイルリスト =====*/ typedef struct filelist { - char File[FMAX_PATH+1]; /* ƒtƒ@ƒCƒ‹–¼ */ - char Node; /* Ží—Þ (NODE_xxx) */ - char Link; /* ƒŠƒ“ƒNƒtƒ@ƒCƒ‹‚©‚Ç‚¤‚© (YES/NO) */ - LONGLONG Size; /* ƒtƒ@ƒCƒ‹ƒTƒCƒY */ - int Attr; /* ‘®« */ - FILETIME Time; /* ŽžŠÔ(UTC) */ - char Owner[OWNER_NAME_LEN+1]; /* ƒI[ƒi–¼ */ - char InfoExist; /* ƒtƒ@ƒCƒ‹ˆê——‚É‘¶Ý‚µ‚½î•ñ‚̃tƒ‰ƒO (FINFO_xxx) */ + char File[FMAX_PATH+1]; /* ファイル名 */ + char Node; /* 種類 (NODE_xxx) */ + char Link; /* リンクファイルかどうか (YES/NO) */ + LONGLONG Size; /* ファイルサイズ */ + int Attr; /* 属性 */ + FILETIME Time; /* 時間(UTC) */ + char Owner[OWNER_NAME_LEN+1]; /* オーナ名 */ + char InfoExist; /* ファイル一覧に存在した情報のフラグ (FINFO_xxx) */ struct filelist *Next; } FILELIST; -/*===== ƒR[ƒh•ÏŠ·î•ñƒpƒPƒbƒg =====*/ +/*===== コード変換情報パケット =====*/ typedef char * (*funcptr)(struct codeconvinfo *, char , char *); typedef struct codeconvinfo { - char *Str; /* •¶Žš—ñ */ - int StrLen; /* •¶Žš—ñ‚Ì’·‚³ */ - int KanaCnv; /* ”¼ŠpƒJƒ^ƒJƒi‚ð‘SŠp‚É•ÏŠ·‚·‚é‚©‚Ç‚¤‚© (YES/NO) */ - char *Buf; /* •ÏŠ·Œã‚Ì•¶Žš—ñ‚ðŠi”[‚·‚éƒoƒbƒtƒ@ */ - int BufSize; /* •ÏŠ·Œã‚Ì•¶Žš—ñ‚ðŠi”[‚·‚éƒoƒbƒtƒ@‚̃TƒCƒY */ - int OutLen; /* •ÏŠ·Œã‚Ì•¶Žš—ñ‚̃TƒCƒY */ - int KanjiMode; /* Š¿Žšƒ‚[ƒhƒtƒ‰ƒO(YES/NO) (“à•”ˆ——pƒ[ƒN) */ - int EscProc; /* ƒGƒXƒP[ƒvƒV[ƒPƒ“ƒX•¶Žš” (0`) (“à•”ˆ——pƒ[ƒN) */ - char EscCode[2]; /* ƒGƒXƒP[ƒvƒV[ƒPƒ“ƒX•¶Žš•Û‘¶—p (“à•”ˆ——pƒ[ƒN) */ - char KanjiFst; /* Š¿ŽšƒR[ƒh‚PƒoƒCƒg–Ú•Û‘¶—p (“à•”ˆ——pƒ[ƒN) */ - char KanaPrev; /* ”¼ŠpƒJƒ^ƒJƒi•Û‘¶—p (“à•”ˆ——pƒ[ƒN) */ - funcptr KanaProc; /* ”¼ŠpƒJƒ^ƒJƒiˆ—ƒ‹[ƒ`ƒ“ (“à•”ˆ——pƒ[ƒN) */ + char *Str; /* 文字列 */ + int StrLen; /* 文字列の長さ */ + int KanaCnv; /* 半角カタカナを全角に変換するかどうか (YES/NO) */ + char *Buf; /* 変換後の文字列を格納するバッファ */ + int BufSize; /* 変換後の文字列を格納するバッファのサイズ */ + int OutLen; /* 変換後の文字列のサイズ */ + int KanjiMode; /* 漢字モードフラグ(YES/NO) (内部処理用ワーク) */ + int EscProc; /* エスケープシーケンス文字数 (0~) (内部処理用ワーク) */ + char EscCode[2]; /* エスケープシーケンス文字保存用 (内部処理用ワーク) */ + char KanjiFst; /* 漢字コード1バイト目保存用 (内部処理用ワーク) */ + char KanaPrev; /* 半角カタカナ保存用 (内部処理用ワーク) */ + funcptr KanaProc; /* 半角カタカナ処理ルーチン (内部処理用ワーク) */ char EscUTF8[8]; int EscUTF8Len; } CODECONVINFO; -/*===== ‰üsƒR[ƒh•ÏŠ·î•ñƒpƒPƒbƒg =====*/ +/*===== 改行コード変換情報パケット =====*/ typedef struct termcodeconvinfo { - char *Str; /* •¶Žš—ñ */ - int StrLen; /* •¶Žš—ñ‚Ì’·‚³ */ - char *Buf; /* •ÏŠ·Œã‚Ì•¶Žš—ñ‚ðŠi”[‚·‚éƒoƒbƒtƒ@ */ - int BufSize; /* •ÏŠ·Œã‚Ì•¶Žš—ñ‚ðŠi”[‚·‚éƒoƒbƒtƒ@‚̃TƒCƒY */ - int OutLen; /* •ÏŠ·Œã‚Ì•¶Žš—ñ‚̃TƒCƒY */ - char Term; /* ‰üsƒR[ƒh‚PƒoƒCƒg–Ú•Û‘¶—p (“à•”ˆ——pƒ[ƒN) */ + char *Str; /* 文字列 */ + int StrLen; /* 文字列の長さ */ + char *Buf; /* 変換後の文字列を格納するバッファ */ + int BufSize; /* 変換後の文字列を格納するバッファのサイズ */ + int OutLen; /* 変換後の文字列のサイズ */ + char Term; /* 改行コード1バイト目保存用 (内部処理用ワーク) */ } TERMCODECONVINFO; -/*===== ƒeƒ“ƒ|ƒ‰ƒŠƒtƒ@ƒCƒ‹ƒŠƒXƒg =====*/ +/*===== テンポラリファイルリスト =====*/ typedef struct tempfilelist { - char *Fname; /* ƒtƒ@ƒCƒ‹–¼ */ + char *Fname; /* ファイル名 */ struct tempfilelist *Next; } TEMPFILELIST; -/*===== ƒTƒEƒ“ƒhƒtƒ@ƒCƒ‹ =====*/ +/*===== サウンドファイル =====*/ typedef struct { - int On; /* ON/OFFƒXƒCƒbƒ` */ - char Fname[FMAX_PATH+1]; /* ƒtƒ@ƒCƒ‹–¼ */ + int On; /* ON/OFFスイッチ */ + char Fname[FMAX_PATH+1]; /* ファイル名 */ } SOUNDFILE; -/*===== ƒ‰ƒWƒIƒ{ƒ^ƒ“‚̐ݒè =====*/ +/*===== ラジオボタンの設定 =====*/ typedef struct { - int ButID; /* ƒ{ƒ^ƒ“‚ÌID */ - int Value; /* ’l */ + int ButID; /* ボタンのID */ + int Value; /* 値 */ } RADIOBUTTON; /*===== SOCKS4 =====*/ -/* ƒRƒ}ƒ“ƒhƒpƒPƒbƒg */ +/* コマンドパケット */ typedef struct { - char Ver; /* ƒo[ƒWƒ‡ƒ“ (SOCKS4_VER) */ - char Cmd; /* ƒRƒ}ƒ“ƒh (SOCKS4_CMD_xxx) */ - ushort Port; /* ƒ|[ƒg */ - ulong AdrsInt; /* ƒAƒhƒŒƒX */ - char UserID[USER_NAME_LEN+1]; /* ƒ†[ƒUID */ + char Ver; /* バージョン (SOCKS4_VER) */ + char Cmd; /* コマンド (SOCKS4_CMD_xxx) */ + ushort Port; /* ポート */ + ulong AdrsInt; /* アドレス */ + char UserID[USER_NAME_LEN+1]; /* ユーザID */ } SOCKS4CMD; -/* •ÔMƒpƒPƒbƒg */ +/* 返信パケット */ typedef struct { - char Ver; /* ƒo[ƒWƒ‡ƒ“ */ - char Result; /* ƒŠƒUƒ‹ƒgƒR[ƒh (SOCKS4_RES_xxx) */ - ushort Port; /* ƒ|[ƒg */ - ulong AdrsInt; /* ƒAƒhƒŒƒX */ + char Ver; /* バージョン */ + char Result; /* リザルトコード (SOCKS4_RES_xxx) */ + ushort Port; /* ポート */ + ulong AdrsInt; /* アドレス */ } SOCKS4REPLY; #define SOCKS4REPLY_SIZE 8 @@ -1091,75 +1128,75 @@ typedef struct { /*===== SOCKS5 =====*/ -/* Method requestƒpƒPƒbƒg */ +/* Method requestパケット */ typedef struct { - char Ver; /* ƒo[ƒWƒ‡ƒ“ (SOCKS5_VER) */ - char Num; /* ƒƒ\ƒbƒh‚̐” */ - uchar Methods[1]; /* ƒƒ\ƒbƒh */ + char Ver; /* バージョン (SOCKS5_VER) */ + char Num; /* メソッドの数 */ + uchar Methods[1]; /* メソッド */ } SOCKS5METHODREQUEST; #define SOCKS5METHODREQUEST_SIZE 3 -/* Method replyƒpƒPƒbƒg */ +/* Method replyパケット */ typedef struct { - char Ver; /* ƒo[ƒWƒ‡ƒ“ (SOCKS5_VER) */ - uchar Method; /* ƒƒ\ƒbƒh */ + char Ver; /* バージョン (SOCKS5_VER) */ + uchar Method; /* メソッド */ } SOCKS5METHODREPLY; #define SOCKS5METHODREPLY_SIZE 2 -/* RequestƒpƒPƒbƒg */ +/* Requestパケット */ typedef struct { - char Ver; /* ƒo[ƒWƒ‡ƒ“ (SOCKS5_VER) */ - char Cmd; /* ƒRƒ}ƒ“ƒh (SOCKS5_CMD_xxx) */ - char Rsv; /* i—\–ñj */ - char Type; /* ƒAƒhƒŒƒX‚̃^ƒCƒv */ - /* ˆÈŒãi‰Â•Ï’·•”•ªj */ - char _dummy[255+1+2]; /* ƒAƒhƒŒƒXAƒ|[ƒg */ + char Ver; /* バージョン (SOCKS5_VER) */ + char Cmd; /* コマンド (SOCKS5_CMD_xxx) */ + char Rsv; /* (予約) */ + char Type; /* アドレスのタイプ */ + /* 以後(可変長部分) */ + char _dummy[255+1+2]; /* アドレス、ポート */ } SOCKS5REQUEST; -#define SOCKS5REQUEST_SIZE 4 /* Å‰‚̌Œ蕔•ª‚̃TƒCƒY */ +#define SOCKS5REQUEST_SIZE 4 /* 最初の固定部分のサイズ */ -/* ReplyƒpƒPƒbƒg */ +/* Replyパケット */ typedef struct { - char Ver; /* ƒo[ƒWƒ‡ƒ“ */ - char Result; /* ƒŠƒUƒ‹ƒgƒR[ƒh (SOCKS4_RES_xxx) */ - char Rsv; /* i—\–ñj */ - char Type; /* ƒAƒhƒŒƒX‚̃^ƒCƒv */ - /* ˆÈŒãi‰Â•Ï’·•”•ªj */ - ulong AdrsInt; /* ƒAƒhƒŒƒX */ - ushort Port; /* ƒ|[ƒg */ + char Ver; /* バージョン */ + char Result; /* リザルトコード (SOCKS4_RES_xxx) */ + char Rsv; /* (予約) */ + char Type; /* アドレスのタイプ */ + /* 以後(可変長部分) */ + ulong AdrsInt; /* アドレス */ + ushort Port; /* ポート */ char _dummy[2]; /* dummy */ } SOCKS5REPLY; -#define SOCKS5REPLY_SIZE 4 /* Å‰‚̌Œ蕔•ª‚̃TƒCƒY */ +#define SOCKS5REPLY_SIZE 4 /* 最初の固定部分のサイズ */ -/* Username/Password”FØstatusƒpƒPƒbƒg */ +/* Username/Password認証statusパケット */ typedef struct { - char Ver; /* ƒo[ƒWƒ‡ƒ“ */ - uchar Status; /* ƒXƒe[ƒ^ƒX */ + char Ver; /* バージョン */ + uchar Status; /* ステータス */ } SOCKS5USERPASSSTATUS; #define SOCKS5USERPASSSTATUS_SIZE 2 -/*===== ƒ_ƒCƒAƒƒOƒ{ƒbƒNƒX•ÏXˆ——p =====*/ +/*===== ダイアログボックス変更処理用 =====*/ typedef struct { - int HorMoveList[10]; /* …•½‚É“®‚©‚·•”•i‚̃ŠƒXƒg */ - int VarMoveList[10]; /* ‚’¼‚É“®‚©‚·•”•i‚̃ŠƒXƒg */ - int ResizeList[10]; /* ƒTƒCƒY•ÏX‚·‚é•”•i‚̃ŠƒXƒg */ - SIZE MinSize; /* Å­ƒTƒCƒY */ - SIZE CurSize; /* Œ»Ý‚̃TƒCƒY */ + int HorMoveList[10]; /* 水平に動かす部品のリスト */ + int VarMoveList[10]; /* 垂直に動かす部品のリスト */ + int ResizeList[10]; /* サイズ変更する部品のリスト */ + SIZE MinSize; /* 最少サイズ */ + SIZE CurSize; /* 現在のサイズ */ } DIALOGSIZE; -/*===== ”’l•ÏŠ·—p =====*/ +/*===== 数値変換用 =====*/ typedef struct { int Num1; @@ -1168,7 +1205,7 @@ typedef struct { /*================================================= -* ƒvƒƒgƒ^ƒCƒv +* プロトタイプ *=================================================*/ /*===== main.c =====*/ @@ -1191,8 +1228,9 @@ int AskForceIni(void); int BackgrndMessageProc(void); void ResetAutoExitFlg(void); int AskAutoExit(void); -// ˆÃ†‰»’ʐM‘Ήž +// 暗号化通信対応 BOOL __stdcall SSLTimeoutCallback(); +BOOL __stdcall SSLConfirmCallback(BOOL bVerified, LPCSTR Certificate, LPCSTR CommonName); /*===== filelist.c =====*/ @@ -1260,13 +1298,12 @@ void SetHostKanjiCode(int Type); void DispHostKanjiCode(void); int AskHostKanjiCode(void); void HideHostKanjiButton(void); -// ƒ[ƒJƒ‹‚ÌŠ¿ŽšƒR[ƒh +// UTF-8対応 void SetLocalKanjiCodeImm(int Mode); void SetLocalKanjiCode(int Type); void DispLocalKanjiCode(void); int AskLocalKanjiCode(void); void HideLocalKanjiButton(void); -// ‚±‚±‚Ü‚Å void SetHostKanaCnvImm(int Mode); void SetHostKanaCnv(void); void DispHostKanaCnv(void); @@ -1353,6 +1390,8 @@ char *AskHostUserName(void); void SaveCurrentSetToHost(void); int ReConnectCmdSkt(void); // int ReConnectTrnSkt(void); +// 同時接続対応 +int ReConnectTrnSkt(SOCKET *Skt); SOCKET AskCmdCtrlSkt(void); SOCKET AskTrnCtrlSkt(void); void SktShareProh(void); @@ -1364,11 +1403,19 @@ SOCKET connectsock(char *host, int port, char *PreMsg, int *CancelCheckWork); SOCKET GetFTPListenSocket(SOCKET ctrl_skt, int *CancelCheckWork); int AskTryingConnect(void); int SocksGet2ndBindReply(SOCKET Socket, SOCKET *Data); -// ˆÃ†‰»’ʐM‘Ήž +// 暗号化通信対応 int AskCryptMode(void); int AskUseFTPES(void); int AskUseFTPIS(void); int AskUseSFTP(void); +// 同時接続対応 +int AskMaxThreadCount(void); +// FEAT対応 +int AskHostFeature(void); +// MLSD対応 +int AskUseMLSD(void); +// IPv6対応 +int AskUseIPv6(void); /*===== cache.c =====*/ @@ -1438,14 +1485,19 @@ int DoRMD(char *Path); int DoDELE(char *Path); int DoRENAME(char *Src, char *Dst); int DoCHMOD(char *Path, char *Mode); -int DoSIZE(char *Path, LONGLONG *Size); -int DoMDTM(char *Path, FILETIME *Time); +// 同時接続対応 +//int DoSIZE(char *Path, LONGLONG *Size); +//int DoMDTM(char *Path, FILETIME *Time); +int DoSIZE(SOCKET cSkt, char *Path, LONGLONG *Size); +int DoMDTM(SOCKET cSkt, char *Path, FILETIME *Time); int DoQUOTE(char *CmdStr); SOCKET DoClose(SOCKET Sock); int DoQUIT(SOCKET ctrl_skt); int DoDirListCmdSkt(char *AddOpt, char *Path, int Num, int *CancelCheckWork); int CommandProcCmd(char *Reply, char *fmt, ...); -int CommandProcTrn(char *Reply, char *fmt, ...); +// 同時接続対応 +//int CommandProcTrn(char *Reply, char *fmt, ...); +int CommandProcTrn(SOCKET cSkt, char *Reply, char *fmt, ...); int command(SOCKET cSkt, char *Reply, int *CancelCheckWork, char *fmt, ...); int SendData(SOCKET Skt, char *Data, int Size, int Mode, int *CancelCheckWork); int ReadReplyMessage(SOCKET cSkt, char *Buf, int Max, int *CancelCheckWork, char *Tmp); @@ -1484,12 +1536,12 @@ int FlushRestData(CODECONVINFO *cInfo); int ConvEUCtoSJIS(CODECONVINFO *cInfo); int ConvJIStoSJIS(CODECONVINFO *cInfo); int ConvSMBtoSJIS(CODECONVINFO *cInfo); -int ConvUTF8NtoSJIS(CODECONVINFO *cInfo); // UTF-8N‘Ήž +int ConvUTF8NtoSJIS(CODECONVINFO *cInfo); // UTF-8対応 int ConvSJIStoEUC(CODECONVINFO *cInfo); int ConvSJIStoJIS(CODECONVINFO *cInfo); int ConvSJIStoSMB_HEX(CODECONVINFO *cInfo); int ConvSJIStoSMB_CAP(CODECONVINFO *cInfo); -int ConvSJIStoUTF8N(CODECONVINFO *cInfo); // UTF-8N‘Ήž +int ConvSJIStoUTF8N(CODECONVINFO *cInfo); // UTF-8対応 void ConvAutoToSJIS(char *Text, int Pref); int CheckKanjiCode(char *Text, int Size, int Pref); @@ -1497,6 +1549,13 @@ int CheckKanjiCode(char *Text, int Size, int Pref); void SetOption(int Start); int SortSetting(void); +// hostman.cで使用 +int GetDecimalText(HWND hDlg, int Ctrl); +void SetDecimalText(HWND hDlg, int Ctrl, int Num); +void CheckRange2(int *Cur, int Max, int Min); +void AddTextToListBox(HWND hDlg, char *Str, int CtrlList, int BufSize); +void SetMultiTextToList(HWND hDlg, int CtrlList, char *Text); +void GetMultiTextFromList(HWND hDlg, int CtrlList, char *Buf, int BufSize); /*===== bookmark.c =====*/