Issue #8054 has been updated by mrkn (Kenta Murata).


篁ヤ???????????篆罩c?ф???????????????????????с??:

diff --git a/lib/resolv-replace.rb b/lib/resolv-replace.rb
index ff34f90..374c81a 100644
--- a/lib/resolv-replace.rb
+++ b/lib/resolv-replace.rb
@@ -18,9 +18,9 @@ class TCPSocket < IPSocket
   # :stopdoc:
   alias original_resolv_initialize initialize
   # :startdoc:
-  def initialize(host, serv, *rest)
-    rest[0] = IPSocket.getaddress(rest[0]) unless rest.empty?
-    original_resolv_initialize(IPSocket.getaddress(host), serv, *rest)
+  def initialize(host, serv, local_host=nil, local_serv=nil)
+    local_host = IPSocket.getaddress(local_host) if local_host
+    original_resolv_initialize(IPSocket.getaddress(host), serv, local_host, local_serv)
   end
 end

----------------------------------------
Bug #8054: open-uri ??? resolv-replace ?????????????若??????????????????
https://bugs.ruby-lang.org/issues/8054#change-37478

Author: mrkn (Kenta Murata)
Status: Open
Priority: Normal
Assignee: akr (Akira Tanaka)
Category: lib
Target version: 
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.0]


篁ヤ?????????????open-uri ??? resolv-replace ?????????????若?????????????????障?????

$ ruby -ropen-uri -rresolv-replace -ve 'open("http://www.ruby-lang.org/")'
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.0]
/Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/resolv.rb:1176:in `create': cannot interpret as DNS name: nil (ArgumentError)
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/resolv.rb:1022:in `generate_candidates'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/resolv.rb:1047:in `resolv'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/resolv.rb:513:in `each_resource'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/resolv.rb:406:in `each_address'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/resolv.rb:115:in `block in each_address'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/resolv.rb:114:in `each'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/resolv.rb:114:in `each_address'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/resolv.rb:92:in `getaddress'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/resolv.rb:43:in `getaddress'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/resolv-replace.rb:10:in `getaddress'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/resolv-replace.rb:22:in `initialize'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/net/http.rb:877:in `open'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/net/http.rb:877:in `block in connect'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/timeout.rb:51:in `timeout'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/net/http.rb:876:in `connect'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/net/http.rb:861:in `do_start'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/net/http.rb:850:in `start'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open-uri.rb:313:in `open_http'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open-uri.rb:708:in `buffer_open'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open-uri.rb:210:in `block in open_loop'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open-uri.rb:208:in `catch'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open-uri.rb:208:in `open_loop'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open-uri.rb:149:in `open_uri'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open-uri.rb:688:in `open'
	from /Users/kenta-murata/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open-uri.rb:34:in `open'
	from -e:1:in `<main>'



-- 
http://bugs.ruby-lang.org/