From: Nobuyoshi Nakada Date: 2008-03-20T23:45:09+09:00 Subject: [ruby-dev:34099] Re: (再送) Cygwin で Resolv.getaddress が失敗する なかだです。 At Thu, 20 Mar 2008 22:34:36 +0900, 植田 裕之 wrote in [ruby-dev:34098]: > > 柳田です。 > ; > > 確かにおっしゃる通り、Win32::Resolv.get_hosts_path が壊れているのが問題なので、 > > そちらの方を直すべきでしょうね。 > > ということでこんな感じでしょうか? ruby_1_8 での差分です。 どちらかというと、cygwinでwin32/resolv.rbを使っていることが疑問 です。 Index: lib/resolv.rb =================================================================== --- lib/resolv.rb (revision 15813) +++ lib/resolv.rb (working copy) @@ -161,5 +161,5 @@ class Resolv class Hosts - if /mswin32|cygwin|mingw|bccwin/ =~ RUBY_PLATFORM + if /mswin32|mingw|bccwin/ =~ RUBY_PLATFORM require 'win32/resolv' DefaultFileName = Win32::Resolv.get_hosts_path Index: ext/dl/win32/lib/win32/registry.rb =================================================================== --- ext/dl/win32/lib/win32/registry.rb (revision 15813) +++ ext/dl/win32/lib/win32/registry.rb (working copy) @@ -494,5 +494,5 @@ module Win32 # def self.expand_environ(str) - str.gsub(/%([^%]+)%/) { ENV[$1] || $& } + str.gsub(/%([^%]+)%/) { ENV[$1] || ENV[$1.upcase] || $& } end Index: ext/dl/win32/lib/win32/resolv.rb =================================================================== --- ext/dl/win32/lib/win32/resolv.rb (revision 15813) +++ ext/dl/win32/lib/win32/resolv.rb (working copy) @@ -12,5 +12,5 @@ module Win32 def self.get_hosts_path path = get_hosts_dir - path = File.join(path.gsub(/\\/, File::SEPARATOR), 'hosts') + path = File.expand_path('hosts', path) File.exist?(path) ? path : nil end -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦