From 0387c33031fb1ae33308d1e52bf97f856753596b Mon Sep 17 00:00:00 2001 From: shugo Date: Tue, 15 Nov 2016 08:16:45 +0000 Subject: ftp.rb: use Addrinfo interfaces git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/net/ftp.rb | 5 +++-- test/net/ftp/test_ftp.rb | 3 ++- 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 = /\((?[!-~])\k\k(?\d+)\k\)/.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) -- cgit v1.2.3