aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-11-20 01:49:25 +0000
committershugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-11-20 01:49:25 +0000
commitc1af879dd7cbbf9702e545165ee1c14ab42edfec (patch)
treebb07d4ae768da24daaf89cc63a9de77bbb4ee31b
parente3b8eb50fa3ececcbd3f851944b64e749484f5f8 (diff)
downloadruby-c1af879dd7cbbf9702e545165ee1c14ab42edfec.tar.gz
remote_address should be called on @bare_sock.
Because @sock.remote_address fails if @sock is an SSLSocket. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--lib/net/ftp.rb2
-rw-r--r--test/net/ftp/test_ftp.rb2
2 files changed, 2 insertions, 2 deletions
diff --git a/lib/net/ftp.rb b/lib/net/ftp.rb
index b3ebaf68af..2e55222fbf 100644
--- a/lib/net/ftp.rb
+++ b/lib/net/ftp.rb
@@ -1362,7 +1362,7 @@ module Net
raise FTPReplyError, resp
end
if m = /\((?<d>[!-~])\k<d>\k<d>(?<port>\d+)\k<d>\)/.match(resp)
- return @sock.remote_address.ip_address, m["port"].to_i
+ return @bare_sock.remote_address.ip_address, m["port"].to_i
else
raise FTPProtoError, resp
end
diff --git a/test/net/ftp/test_ftp.rb b/test/net/ftp/test_ftp.rb
index 6acaf87216..708def13bb 100644
--- a/test/net/ftp/test_ftp.rb
+++ b/test/net/ftp/test_ftp.rb
@@ -114,7 +114,7 @@ class FTPTest < Test::Unit::TestCase
sock = OpenStruct.new
sock.remote_address = OpenStruct.new
sock.remote_address.ip_address = "1080:0000:0000:0000:0008:0800:200c:417a"
- ftp.instance_variable_set(:@sock, sock)
+ ftp.instance_variable_set(:@bare_sock, sock)
host, port = ftp.send(:parse229, "229 Entering Passive Mode (|||3106|)")
assert_equal("1080:0000:0000:0000:0008:0800:200c:417a", host)
assert_equal(3106, port)