From: Yui NARUSE Date: 2009-10-28T00:48:44+09:00 Subject: [ruby-dev:39559] [Bug #2291] Net::FTPでソケットをオープンする前にbinary=を呼び出すと落ちる チケット #2291 が更新されました。 (by Yui NARUSE) あぁ、仰るとおりです。 >(1) connect前にftp.binary = trueとしたことを覚えておいて、ftp.connect時にTYPEコマンドを > 発行するようにする。 こちらだったら以下のような感じですかね。 diff --git a/lib/net/ftp.rb b/lib/net/ftp.rb index 239bd3c..351e624 100644 --- a/lib/net/ftp.rb +++ b/lib/net/ftp.rb @@ -128,7 +128,7 @@ module Net # def initialize(host = nil, user = nil, passwd = nil, acct = nil) super() - @binary = false + @binary = nil @passive = false @debug_mode = false @resume = false @@ -194,6 +194,7 @@ module Net @sock = open_socket(host, port) voidresp end + @binary ? voidcmd("TYPE I") : voidcmd("TYPE A") unless @binary.nil? end # ---------------------------------------- http://redmine.ruby-lang.org/issues/show/2291 ---------------------------------------- http://redmine.ruby-lang.org