Backport #8054
closedopen-uri と resolv-replace を同時にロードすると壊れる
Description
以下のように、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 `'