diff --git a/ChangeLog b/ChangeLog index b61c663b77..026d65a66b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Apr 1 01:55:52 2008 Nobuyoshi Nakada + + * lib/resolv.rb (Resolv::Config.default_config_hash): requires + win32/resolv to use Win32::Resolv. [ruby-dev:34138] + Tue Apr 1 01:40:58 2008 Tadayoshi Funaba * complex.c: adopted the ruby's style. diff --git a/ext/dl/win32/lib/win32/registry.rb b/ext/dl/win32/lib/win32/registry.rb index 9a2f3827b7..ccdd721818 100644 --- a/ext/dl/win32/lib/win32/registry.rb +++ b/ext/dl/win32/lib/win32/registry.rb @@ -337,9 +337,10 @@ module Win32 FormatMessageA = Win32API.new('kernel32.dll', 'FormatMessageA', 'LPLLPLP', 'L') 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 end diff --git a/ext/dl/win32/lib/win32/resolv.rb b/ext/dl/win32/lib/win32/resolv.rb index 92336fac28..4e69f58085 100644 --- a/ext/dl/win32/lib/win32/resolv.rb +++ b/ext/dl/win32/lib/win32/resolv.rb @@ -82,10 +82,14 @@ if info.unpack('V5')[4] == 2 # VER_PLATFORM_WIN32_NT reg.open(iface) do |regif| begin [ 'NameServer', 'DhcpNameServer' ].each do |key| - ns = regif.read_s(key) - unless ns.empty? - nameserver.concat(ns.split(/[,\s]\s*/)) - break + begin + ns = regif.read_s(key) + rescue + else + unless ns.empty? + nameserver.concat(ns.split(/[,\s]\s*/)) + break + end end end rescue Registry::Error diff --git a/lib/resolv.rb b/lib/resolv.rb index a0c29ffb8a..33afad3365 100644 --- a/lib/resolv.rb +++ b/lib/resolv.rb @@ -777,6 +777,7 @@ class Resolv config_hash = Config.parse_resolv_conf(filename) else if /mswin32|cygwin|mingw|bccwin/ =~ RUBY_PLATFORM + require 'win32/resolv' search, nameserver = Win32::Resolv.get_resolv_info config_hash = {} config_hash[:nameserver] = nameserver if nameserver diff --git a/version.h b/version.h index 6c1e1d0dfd..f60ecd0324 100644 --- a/version.h +++ b/version.h @@ -1,15 +1,15 @@ #define RUBY_VERSION "1.9.0" -#define RUBY_RELEASE_DATE "2008-03-31" +#define RUBY_RELEASE_DATE "2008-04-01" #define RUBY_VERSION_CODE 190 -#define RUBY_RELEASE_CODE 20080331 +#define RUBY_RELEASE_CODE 20080401 #define RUBY_PATCHLEVEL 0 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_YEAR 2008 -#define RUBY_RELEASE_MONTH 3 -#define RUBY_RELEASE_DAY 31 +#define RUBY_RELEASE_MONTH 4 +#define RUBY_RELEASE_DAY 1 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[];