ProFTPD iconv パッチをProFTPD 1.3.1に対応させてみています。
と、いうのも、ProFTPD 1.3.1にもオリジナルのパッチをあてても動作は一応するのですが、
OPTS UTF8 ONを送るクライアントの場合、問題が生じます。
というか、ProFTPDが異常終了してます…terminating (signal 11) で。
>OPTS UTF8 ON
>200 OPTS UTF8 on Command OK.
この時点から、クライアントが送るファイル名はUTF-8になりますが、
iconvパッチはこれを無視したまま、CharsetRemoteの設定に従い、強制変換します。
(CharsetRemoteがCP932ならば、UTF-8をCP932として変換してしまいます)
まぁ、ProFTPDのUTF-8オプションを切ってしまっても良いのですが、
できれば共存したいですしね…。
と、いうわけで。
ProFTPD 1.3.1 iconv 文字コード変換パッチ v2.00(ぷろとたいぷ)
特徴
・ローカルとリモート間の文字コード変換を行います。
・OPTS UTF8オプションを認識します。有効の場合、リモートをUTF-8としてコード変換します。
コンパイル方法
・オリジナルのProFTPD 1.3.1にパッチをあててください。
・configure 時に –with-modules=mod_codeconv を指定してください。
・–enable-nls は同時に指定できません。
設定
・従来通り、下記のディレクティブを設定します。
CharsetLocal UTF-8
CharsetRemote CP932
動作確認
・ローカル側は Fedora 8 i386, Fedora 8 armv5tel で確認。ともにUTF-8環境。
・リモート側は Windows Vista Explorer FTP(UTF-8), FFFTP(Shift-JIS) で確認。
NLSは使用できません。OPTS UTF8の処理が重複するからです。
この処理は当 mod_codeconv が行うようになります。
まだまだ開発途中ですので、(というかこの土日で作ったw)プロトタイプとして公開します。
デバッグも簡単に走らせたぐらいですので、ご利用の際は十分にご注意くださいませ。
なお、当方で認識している既知の問題点は、
・Windows Vista Explorer FTPクライアントからファイルの削除ができない
・Windows Vista Explorer FTPクライアントで大量のファイルを転送すると、文字化けを起こす
FFFTPからは特に問題はなさそうな感じです。
最後に、元の開発者であるT.Tsujikawaさんにお礼申し上げます。