From: Shugo Maeda Date: 2009-10-28T00:19:44+09:00 Subject: [ruby-dev:39558] Re: [Bug #2291](Assigned) Net::FTPでソケットをオープンする前にbinary=を呼び出すと落ちる 前田です。 2009年10月27日23:55 Shugo Maeda : > この修正で問題ないとしたら、ちょっとAPIが変だと思うので、もうちょっと考えさせてください。 やっぱりこの修正だと、ftp.connect前にftp.binary = trueとすると、その後にloginやgetbinaryfile などでbinary modeにセットしようとしてもTYPEコマンドが発行されなくなってしまうようです。 # Net::FTP#binary=は、新しいモードが現在と同じだとTYPEコマンドを発行しないため。 (1) connect前にftp.binary = trueとしたことを覚えておいて、ftp.connect時にTYPEコマンドを 発行するようにする。 (2) connect前にftp.binary=実行した場合は、潔く(?)例外を挙げる。 といった対応が考えられますが、特にconnect前にNet::FTP#binary=を使いたい理由があるでしょうか。 なければ(2)の方がシンプルなので、(2)にしたいのですが。 -- Shugo Maeda