aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-11-15 08:16:45 +0000
committershugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-11-15 08:16:45 +0000
commit0387c33031fb1ae33308d1e52bf97f856753596b (patch)
treee0354bd30b73dacb74e84e721a84de2e0a40e4df
parent17d9cbb0fa497f5c44504138382568ec8a4d3d10 (diff)
downloadruby-0387c33031fb1ae33308d1e52bf97f856753596b.tar.gz
ftp.rb: use Addrinfo interfaces
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--lib/net/ftp.rb5
-rw-r--r--test/net/ftp/test_ftp.rb3
2 files changed, 5 insertions, 3 deletions
diff --git a/lib/net/ftp.rb b/lib/net/ftp.rb
index c2c5e8ce7f..cb786e8360 100644
--- a/lib/net/ftp.rb
+++ b/lib/net/ftp.rb
@@ -431,7 +431,8 @@ module Net
else
sock = makeport
begin
- sendport(sock.addr[3], sock.addr[1])
+ addr = sock.local_address
+ sendport(addr.ip_address, addr.ip_port)
if @resume and rest_offset
resp = sendcmd("REST " + rest_offset.to_s)
if !resp.start_with?("3")
@@ -1246,7 +1247,7 @@ module Net
raise FTPReplyError, resp
end
if m = /\((?<d>[!-~])\k<d>\k<d>(?<port>\d+)\k<d>\)/.match(resp)
- return @sock.peeraddr[3], m["port"].to_i
+ return @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 ca71a918e0..8290b0168a 100644
--- a/test/net/ftp/test_ftp.rb
+++ b/test/net/ftp/test_ftp.rb
@@ -109,7 +109,8 @@ class FTPTest < Test::Unit::TestCase
def test_parse229
ftp = Net::FTP.new
sock = OpenStruct.new
- sock.peeraddr = [nil, nil, nil, "1080:0000:0000:0000:0008:0800:200c:417a"]
+ sock.remote_address = OpenStruct.new
+ sock.remote_address.ip_address = "1080:0000:0000:0000:0008:0800:200c:417a"
ftp.instance_variable_set(:@sock, sock)
host, port = ftp.send(:parse229, "229 Entering Passive Mode (|||3106|)")
assert_equal("1080:0000:0000:0000:0008:0800:200c:417a", host)