From 91c84cda9b4c12be09424202f0ea30b7d4a91e0b Mon Sep 17 00:00:00 2001 From: shugo Date: Wed, 28 Oct 2009 04:09:20 +0000 Subject: * 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=. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 14 ++++++++++++++ lib/net/ftp.rb | 17 ++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 629765504a..a96dea362c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +Wed Oct 28 13:02:10 2009 Shugo Maeda + + * 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 * 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 # -- cgit v1.2.3