diff options
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | lib/net/ftp.rb | 17 |
2 files changed, 28 insertions, 3 deletions
@@ -1,3 +1,17 @@ +Wed Oct 28 13:02:10 2009 Shugo Maeda <shugo@ruby-lang.org> + + * lib/net/ftp.rb (Net::FTP#initialize): sets @binary to true. + + * lib/net/ftp.rb (Net::FTP#binary=): sends a TYPE command only when + logged in. [ruby-dev:39548] + + * lib/net/ftp.rb (Net::FTP#send_type_command): new private method + which sends an appropriate TYPE command according to the value of + @binary. + + * lib/net/ftp.rb (Net::FTP#login): calls send_type_command instead + of binary=. + Tue Oct 27 22:46:44 2009 NARUSE, Yui <naruse@ruby-lang.org> * lib/net/ftp.rb (Net::FTP#initialize): @sock = nil. diff --git a/lib/net/ftp.rb b/lib/net/ftp.rb index 239bd3cbc6..c35ee368af 100644 --- a/lib/net/ftp.rb +++ b/lib/net/ftp.rb @@ -128,11 +128,12 @@ module Net # def initialize(host = nil, user = nil, passwd = nil, acct = nil) super() - @binary = false + @binary = true @passive = false @debug_mode = false @resume = false @sock = nil + @logged_in = false if host connect(host) if user @@ -144,10 +145,19 @@ module Net def binary=(newmode) if newmode != @binary @binary = newmode - @binary ? voidcmd("TYPE I") : voidcmd("TYPE A") unless closed? + send_type_command if @logged_in end end + def send_type_command + if @binary + voidcmd("TYPE I") + else + voidcmd("TYPE A") + end + end + private :send_type_command + def with_binary(newmode) oldmode = binary self.binary = newmode @@ -393,7 +403,8 @@ module Net raise FTPReplyError, resp end @welcome = resp - self.binary = true + send_type_command + @logged_in = true end # |