# ($B:FAw(B) Cygwin $B$G(B Resolv.getaddress $B$,\<:GT$9$k(B

**URL:** <https://www.ruby-forum.com/t/b-faw-b-cygwin-b-g-b-resolv-getaddress-b-gt-9-k-b/132449>\
**Category:** Development\
**Created:** [March 20, 2008, 8:29am UTC](https://www.ruby-forum.com/t/b-faw-b-cygwin-b-g-b-resolv-getaddress-b-gt-9-k-b/132449 "2008-03-20T08:29:58Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kouhei\_Y](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/bcef8e/32.png) [@Kouhei\_Y](https://www.ruby-forum.com/u/Kouhei_Y)\
**Post date:** [March 20, 2008, 8:29am UTC](https://www.ruby-forum.com/t/b-faw-b-cygwin-b-g-b-resolv-getaddress-b-gt-9-k-b/132449/1 "2008-03-20T08:29:58Z")

</div>

e$B$3$s$K$A$O!#LxED$G$9!#e(B

e$B0JA0!“e(B  
[ruby-dev:29945] Cygwin e$B$Ge(B Resolv.getaddress e$B$,\<:GT$9$ke(B  
e$B$H$$$&$N$rJs9p$7$^$7$?$,!”$=$N8e!“FC$K%j%”%/%7%g%s$,$J$+$C$?$N$G!"e(B  
e$B$b$&0lEY%a!\<%k$r=P$7$F$\_$^$9!#e(B  
(1.8.6 e$B$G$be(B ruby\_1\_8 branch  
e$B$N@hF,$G$b!"LdBj$O0JA0$HF1MM$G$9e(B)

e$B2\<$N$h$&$JJQ99$G!"\<j85$G$OLdBj$O2r7h$7$F$$$^$9!#e(B

# Index: lib/resolv.rb

— lib/resolv.rb (e$B%j%S%8%g%se(B 15811)  
+++ lib/resolv.rb (e$B:n6H%3%T!\<e(B)  
@@ -162,7 +162,7 @@  
class Hosts  
if /mswin32|cygwin|mingw|bccwin/ =~ RUBY\_PLATFORM  
require ‘win32/resolv’

- 

```
 DefaultFileName = Win32::Resolv.get_hosts_path

```

- 

```
 DefaultFileName = /cygwin/ =~ RUBY_PLATFORM ? '/etc/hosts' : 

```

Win32::Resolv.get\_hosts\_path  
else  
DefaultFileName = ‘/etc/hosts’  
end

---

<div class="post-metadata">

**Author:** ![Kouhei\_Y](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/bcef8e/32.png) [@Kouhei\_Y](https://www.ruby-forum.com/u/Kouhei_Y)\
**Post date:** [March 20, 2008, 1:20pm UTC](https://www.ruby-forum.com/t/b-faw-b-cygwin-b-g-b-resolv-getaddress-b-gt-9-k-b/132449/2 "2008-03-20T13:20:27Z")

</div>

e$B$3$s$P$s$O!"?"ED$H?=$7$^$9!#e(B

> # e$B$3$s$K$A$O!#LxED$G$9!#e(B ;
> 
> — lib/resolv.rb (e$B%j%S%8%g%se(B 15811)  
> +++ lib/resolv.rb (e$B:n6H%3%T!\<e(B)  
> @@ -162,7 +162,7 @@  
> class Hosts  
> if /mswin32|cygwin|mingw|bccwin/ =~ RUBY\_PLATFORM  
> require ‘win32/resolv’
> 
> - 
> 
> ```
> DefaultFileName = Win32::Resolv.get_hosts_path
> 
> ```
> 
> - 
> 
> ```
> DefaultFileName = /cygwin/ =~ RUBY_PLATFORM ? '/etc/hosts' : Win32::Resolv.get_hosts_path
> 
> ```

cygwin  
e$B4D6-$O;H$C$F$J$$$N$G$4;XE&$NLdBj$KAx6x$7$?$3$H$,L5$$$N$G$9$,!“e(B  
win32/resolv.rb e$B$Ne(B Win32::Resolv.get\_hosts\_path  
e$B$r0J2\<$N$h$&$KD\>$9e(B  
e$B\<j$b$”$j$=$&$G$9!#e(B

```
def self.get_hosts_path
  if /cygwin/ =~ RUBY_PLATFORM
    path = '/etc/hosts'
  else
    path = get_hosts_dir
    path = File.join(path.gsub(/\\/, File::SEPARATOR), 'hosts')
  end
  File.exist?(path) ? path : nil
end

```

# diff e$BI=5-$8$c$J$/$F$9$$$^$;$s!#e(B

e$B$I$s$J$b$s$G$7$g$&$+!)e(B

---

<div class="post-metadata">

**Author:** ![Kouhei\_Y](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/bcef8e/32.png) [@Kouhei\_Y](https://www.ruby-forum.com/u/Kouhei_Y)\
**Post date:** [March 20, 2008, 1:53pm UTC](https://www.ruby-forum.com/t/b-faw-b-cygwin-b-g-b-resolv-getaddress-b-gt-9-k-b/132449/3 "2008-03-20T13:53:04Z")

</div>

e$BLxED$G$9!#e(B

> cygwin e$B4D6-$O;H$C$F$J$$$N$G$4;XE&$NLdBj$KAx6x$7$?$3$H$,L5$$$N$G$9$,!“e(B  
> win32/resolv.rb e$B$Ne(B Win32::Resolv.get\_hosts\_path e$B$r0J2\<$N$h$&$KD\>$9e(B  
> e$B\<j$b$”$j$=$&$G$9!#e(B

e$B$"$!$J$k$[$I!#e(B

e$B3N$+$K$\*$C$7$c$kDL$j!"e(BWin32::Resolv.get\_hosts\_path  
e$B$,2u$l$F$$$k$N$,LdBj$J$N$G!"e(B  
e$B$=$A$i$NJ}$rD\>$9$Y$-$G$7$g$&$M!#e(B

---

<div class="post-metadata">

**Author:** ![Kouhei\_Y](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/bcef8e/32.png) [@Kouhei\_Y](https://www.ruby-forum.com/u/Kouhei_Y)\
**Post date:** [March 20, 2008, 2:35pm UTC](https://www.ruby-forum.com/t/b-faw-b-cygwin-b-g-b-resolv-getaddress-b-gt-9-k-b/132449/4 "2008-03-20T14:35:45Z")

</div>

e$B?"ED$G$9!#e(B

e$B!!e(BWindows e$B4D6-$Ge(B ruby\_1\_8 e$B$re(B svn co e$B$7$?$i!“e(BPC  
e$B$,$\*$+$7$/$J$C$F$7$^$$$^e(B  
e$B$7$?e(B ^^;)e$B!#$”$-$i$a$F2q\<R$N4D6-e(B(CentOS)e$B$Ke(B svn co  
e$B$7$F$\_$^$7$?!#e(B

> e$BLxED$G$9!#e(B  
> ;  
> e$B3N$+$K$\*$C$7$c$kDL$j!"e(BWin32::Resolv.get\_hosts\_path e$B$,2u$l$F$$$k$N$,LdBj$J$N$G!"e(B  
> e$B$=$A$i$NJ}$rD\>$9$Y$-$G$7$g$&$M!#e(B

e$B$H$$$&$3$H$G$3$s$J46$8$G$7$g$&$+!)e(B ruby\_1\_8 e$B$G$N:9J,$G$9!#e(B

# $ /opt/CollabNet\_Subversion/bin/svn diff Index: resolv.rb

— resolv.rb (revision 15813)  
+++ resolv.rb (working copy)  
@@ -10,8 +10,12 @@  
API = Registry::API

```
 def self.get_hosts_path

```

- 

```
 path = get_hosts_dir

```

- 

```
 path = File.join(path.gsub(/\\/, File::SEPARATOR), 'hosts')

```

- 

```
 if /cygwin/ =~ RUBY_PLATFORM

```

- 

```
   path = '/etc/hosts'

```

- 

```
 else

```

- 

```
   path = get_hosts_dir

```

- 

```
   path = File.join(path.gsub(/\\/, File::SEPARATOR), 'hosts')

```

- 

```
 end
 File.exist?(path) ? path : nil

```

end

e$B$b$C$H$-$l$$$K=q$1$k$H;W$$$^$9$,!"$H$j$"$($:$?$?$-Bf$H$$$&$3$H$G!#e(B

---

<div class="post-metadata">

**Author:** ![Kouhei\_Y](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/bcef8e/32.png) [@Kouhei\_Y](https://www.ruby-forum.com/u/Kouhei_Y)\
**Post date:** [March 20, 2008, 3:46pm UTC](https://www.ruby-forum.com/t/b-faw-b-cygwin-b-g-b-resolv-getaddress-b-gt-9-k-b/132449/5 "2008-03-20T15:46:12Z")

</div>

e$B$J$+$@$G$9!#e(B

At Thu, 20 Mar 2008 22:34:36 +0900,  
e$B?"EDe(B e$BM5G7e(B wrote in [ruby-dev:34098]:

> > e$BLxED$G$9!#e(B  
> > ;  
> > e$B3N$+$K$\*$C$7$c$kDL$j!"e(BWin32::Resolv.get\_hosts\_path e$B$,2u$l$F$$$k$N$,LdBj$J$N$G!"e(B  
> > e$B$=$A$i$NJ}$rD\>$9$Y$-$G$7$g$&$M!#e(B
> 
> e$B$H$$$&$3$H$G$3$s$J46$8$G$7$g$&$+!)e(B ruby\_1\_8 e$B$G$N:9J,$G$9!#e(B

e$B$I$A$i$+$H$$$&$H!"e(Bcygwine$B$Ge(Bwin32/resolv.rbe$B$r;H$C$F$$$k$3$H$,5?Lde(B  
e$B$G$9!#e(B

# 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

---

<div class="post-metadata">

**Author:** ![Kouhei\_Y](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/bcef8e/32.png) [@Kouhei\_Y](https://www.ruby-forum.com/u/Kouhei_Y)\
**Post date:** [March 21, 2008, 1:27am UTC](https://www.ruby-forum.com/t/b-faw-b-cygwin-b-g-b-resolv-getaddress-b-gt-9-k-b/132449/6 "2008-03-21T01:27:48Z")

</div>

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:34099] Re: (e$B:FAwe(B) Cygwin e$B$Ge(B  
Resolv.getaddress e$B$,\<:GT$9$ke(B”  
on Mar.20,2008 23:45:09, [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:  
| e$B$I$A$i$+$H$$$&$H!"e(Bcygwine$B$Ge(Bwin32/resolv.rbe$B$r;H$C$F$$$k$3$H$,5?Lde(B  
| e$B$G$9!#e(B

e$B;d$bF146$G$9!#e(B

e$B$G!"$J$+$@$5$s$N%Q%C%A$G$9$,!"e(Bwin32/registry.rbe$B$NE[$O!"e(Bupcase  
e$B$@$1$G$$$$$b$s$J$s$G$7$g$&$+e(B?

# 

cygwine$B$,e(BWindowse$B$N4D6-JQ?t$r;}$C$F$$$/;~$KBgJ8;z2=$7$F$k$N$+e(B

# e$B$Je(B?

e$B$=$l$G$$$$$J$i!"e(Bwin32/registry.rb(e$B$He(Bwin32/resolv.rb)e$B$OF~$l$Fe(B  
e$B$/$@$5$$!#e(B  
win32e$B$G$J$$e(Bresolv.rbe$B$K$D$$$F$O!"e(Bcygwine$B;H$C$F$k?M$NH=CG$K$\*$^e(B  
e$B$+$;$7$^$9!#e(B

e$B$=$l$G$O!#e(B

---

<div class="post-metadata">

**Author:** ![Kouhei\_Y](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/bcef8e/32.png) [@Kouhei\_Y](https://www.ruby-forum.com/u/Kouhei_Y)\
**Post date:** [March 26, 2008, 5:39am UTC](https://www.ruby-forum.com/t/b-faw-b-cygwin-b-g-b-resolv-getaddress-b-gt-9-k-b/132449/7 "2008-03-26T05:39:24Z")

</div>

e$BLxED$G$9!#e(B

08/03/20 e$B$Ke(B Nobuyoshi N.[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
e$B$5$s$O=q$-$^$7$?e(B:

> e$B$I$A$i$+$H$$$&$H!"e(Bcygwine$B$Ge(Bwin32/resolv.rbe$B$r;H$C$F$$$k$3$H$,5?Lde(B  
> e$B$G$9!#e(B

e$B$3$l$@$H!":#EY$O\<!$N$h$&$J%(%i!\<$K$J$C$F$7$^$$$^$9!#e(B

irb(main):002:0\> Resolv.getaddress(“[www.ruby-lang.org](http://www.ruby-lang.org)”)  
NameError: uninitialized constant Resolv::DNS::Config::Win32  
from /usr/local/lib/ruby/1.8/resolv.rb:788:in  
`default_config_hash' from /usr/local/lib/ruby/1.8/resolv.rb:805:in `lazy\_initialize’  
from /usr/local/lib/ruby/1.8/resolv.rb:798:in `synchronize' from /usr/local/lib/ruby/1.8/resolv.rb:798:in `lazy\_initialize’  
from /usr/local/lib/ruby/1.8/resolv.rb:332:in `lazy_initialize' from /usr/local/lib/ruby/1.8/resolv.rb:330:in `synchronize’  
from /usr/local/lib/ruby/1.8/resolv.rb:330:in `lazy_initialize' from /usr/local/lib/ruby/1.8/resolv.rb:489:in `each\_resource’  
from /usr/local/lib/ruby/1.8/resolv.rb:391:in `each_address' from /usr/local/lib/ruby/1.8/resolv.rb:110:in `each\_address’  
from /usr/local/lib/ruby/1.8/resolv.rb:109:in `each' from /usr/local/lib/ruby/1.8/resolv.rb:109:in `each\_address’  
from /usr/local/lib/ruby/1.8/resolv.rb:87:in `getaddress' from /usr/local/lib/ruby/1.8/resolv.rb:38:in `getaddress’  
from (irb):2  
from /usr/local/lib/ruby/1.8/resolv.rb:1703

e$B$3$l$Oe(B Config.default\_config\_hash e$B$Ge(B Win32::Resolv  
e$B$r;2\>H$7$F$$$k$+$i$J$N$G$9$,!"e(B  
e$B$3$3$Ne(B cygwin e$B%A%'%C%/$r$O$:$9$H:#EY$O\<!$N$h$&$K$J$j$^$9!#e(B

% ruby -rresolv -e ‘p Resolv.getaddress(“[www.ruby-lang.org](http://www.ruby-lang.org)”)’  
/usr/local/lib/ruby/1.8/resolv.rb:819:in `lazy_initialize': undefined method `include?’ for nil:NilClass (NoMethodError)  
from /usr/local/lib/ruby/1.8/resolv.rb:798:in `synchronize' from /usr/local/lib/ruby/1.8/resolv.rb:798:in `lazy\_initialize’  
from /usr/local/lib/ruby/1.8/resolv.rb:332:in `lazy_initialize' from /usr/local/lib/ruby/1.8/resolv.rb:330:in `synchronize’  
from /usr/local/lib/ruby/1.8/resolv.rb:330:in `lazy_initialize' from /usr/local/lib/ruby/1.8/resolv.rb:489:in `each\_resource’  
from /usr/local/lib/ruby/1.8/resolv.rb:391:in `each_address' from /usr/local/lib/ruby/1.8/resolv.rb:110:in `each\_address’  
from /usr/local/lib/ruby/1.8/resolv.rb:109:in `each' from /usr/local/lib/ruby/1.8/resolv.rb:109:in `each\_address’  
from /usr/local/lib/ruby/1.8/resolv.rb:87:in `getaddress' from /usr/local/lib/ruby/1.8/resolv.rb:38:in `getaddress’  
from -e:1

e$B$3$l$O!"e(BCygwin e$B$G$Oe(B(e$B%G%U%)%k%H$G$Oe(B) /etc/resolv.conf  
e$B$,B8:\_$7$J$$$?$a$K5/$3$k$h$&$G$9!#e(B

Cygwin e$B$G$O!"FC$K\<+J,$G:n@.$7$F$$$J$1$l$Pe(B

- /etc/hosts e$B$OB8:\_$9$ke(B (C:\WINDOWS\system32\drivers\etc\hosts  
e$B$X$N%7%s%%j%C%/%j%s%/$K$J$C$F$$$ke(B)
- /etc/resolv.conf e$B$OB8:\_$7$J$$e(B (e$B%M%C%H%o!\<%/@\_Dj$Oe(B Windows  
e$B$N$b$N$,;H$o$l$F$$$k$h$&$G$9e(B)  
e$B$H$$$&$3$H$N$h$&$G$9!#e(B

e$B$3$l$O!"\<+J,$Ge(B /etc/resolv.conf  
e$B$r:n@.$9$k$N$,6Z$J$N$G$7$g$&$+!#e(B

---

<div class="post-metadata">

**Author:** ![Kouhei\_Y](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/bcef8e/32.png) [@Kouhei\_Y](https://www.ruby-forum.com/u/Kouhei_Y)\
**Post date:** [April 1, 2008, 11:32am UTC](https://www.ruby-forum.com/t/b-faw-b-cygwin-b-g-b-resolv-getaddress-b-gt-9-k-b/132449/8 "2008-04-01T11:32:48Z")

</div>

e$BLxED$G$9!#e(B

08/03/26 e$B$Ke(B Nobuyoshi N.[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
e$B$5$s$O=q$-$^$7$?e(B:

> Win32::Resolve$B$r;H$&$H$3$m$Ge(B require ‘win32/resolv’ e$B$9$k$N$,$$$$e(B  
> e$B$s$8$c$J$$$G$7$g$&$+!#e(B

e$B$3$l$rE,MQ$7$?7k2L!“JL$N%(%i!\<$K$J$C$?$N$G$9$,e(B  
e$B:#EY$N%(%i!\<$Oe(B Cygwin  
e$B0J30$G$b5/$3$k$h$&$J$N$G!”%a!\<%k$r2~$a$FJs9p$7$^$9!#e(B

e$B$"$j$,$H$&$4$6$$$^$7$?!#e(B

---

<div class="post-metadata">

**Author:** ![Kouhei\_Y](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/bcef8e/32.png) [@Kouhei\_Y](https://www.ruby-forum.com/u/Kouhei_Y)\
**Post date:** [March 26, 2008, 10:18am UTC](https://www.ruby-forum.com/t/b-faw-b-cygwin-b-g-b-resolv-getaddress-b-gt-9-k-b/132449/9 "2008-03-26T10:18:01Z")

</div>

e$B$J$+$@$G$9!#e(B

At Wed, 26 Mar 2008 13:38:34 +0900,  
Kouhei Y. wrote in [ruby-dev:34138]:

> Cygwin e$B$G$O!"FC$K\<+J,$G:n@.$7$F$$$J$1$l$Pe(B
> 
> - /etc/hosts e$B$OB8:\_$9$ke(B (C:\WINDOWS\system32\drivers\etc\hosts e$B$X$N%7%s%%j%C%/%j%s%/$K$J$C$F$$$ke(B)
> - /etc/resolv.conf e$B$OB8:\_$7$J$$e(B (e$B%M%C%H%o!\<%/@\_Dj$Oe(B Windows e$B$N$b$N$,;H$o$l$F$$$k$h$&$G$9e(B)  
> e$B$H$$$&$3$H$N$h$&$G$9!#e(B

Win32::Resolve$B$r;H$&$H$3$m$Ge(B require ‘win32/resolv’  
e$B$9$k$N$,$$$$e(B  
e$B$s$8$c$J$$$G$7$g$&$+!#e(B

# Index: lib/resolv.rb

— lib/resolv.rb (revision 15830)  
+++ lib/resolv.rb (working copy)  
@@ -778,4 +778,5 @@ class Resolv  
else  
if /mswin32|cygwin|mingw|bccwin/ =~ RUBY\_PLATFORM

- 

```
       require 'win32/resolv'
       search, nameserver = Win32::Resolv.get_resolv_info
       config_hash = {}

```

# Index: ext/dl/win32/lib/win32/registry.rb

— ext/dl/win32/lib/win32/registry.rb (revision 15830)  
+++ ext/dl/win32/lib/win32/registry.rb (working copy)  
@@ -338,7 +338,8 @@ module Win32  
def initialize(code)  
@code = code

- 

```
   msg = "\0" * 1024

```

- 

```
   msg = "\0".force_encoding(Encoding::ASCII_8BIT) * 1024
   len = FormatMessageA.call(0x1200, 0, code, 0, msg, 1024, 0)

```

- 

```
   super msg[0, len].tr("\r", '').chomp

```

- 

```
   msg = msg[0, 

```

len].force\_encoding(Encoding.find(Encoding.locale\_charmap))

- 

```
   super msg.tr("\r", '').chomp
 end
 attr_reader :code
```
