summaryrefslogtreecommitdiff
path: root/ext/win32/lib/win32/resolv.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ext/win32/lib/win32/resolv.rb')
-rw-r--r--ext/win32/lib/win32/resolv.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/ext/win32/lib/win32/resolv.rb b/ext/win32/lib/win32/resolv.rb
index 183d5d38da..d71ed98f78 100644
--- a/ext/win32/lib/win32/resolv.rb
+++ b/ext/win32/lib/win32/resolv.rb
@@ -46,6 +46,21 @@ if info.unpack('V5')[4] == 2 # VER_PLATFORM_WIN32_NT
# Windows NT
#====================================================================
module_eval <<-'__EOS__', __FILE__, __LINE__+1
+ module SZ
+ refine Registry do
+ # ad hoc workaround for broken registry
+ def read_s(key)
+ type, str = read(key)
+ unless type == Registry::REG_SZ
+ warn "Broken registry, #{name}\\#{key} was #{Registry.type2name(type)}, ignored"
+ return String.new
+ end
+ str
+ end
+ end
+ end
+ using SZ
+
TCPIP_NT = 'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'
class << self