From c1af879dd7cbbf9702e545165ee1c14ab42edfec Mon Sep 17 00:00:00 2001 From: shugo Date: Sun, 20 Nov 2016 01:49:25 +0000 Subject: 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 --- lib/net/ftp.rb | 2 +- test/net/ftp/test_ftp.rb | 2 +- 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 = /\((?[!-~])\k\k(?\d+)\k\)/.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) -- cgit v1.2.3