lib/net/dns/resolver.rb in net-dns-0.5.2 vs lib/net/dns/resolver.rb in net-dns-0.5.3
- old
+ new
@@ -2,10 +2,11 @@
# $Id: Resolver.rb,v 1.11 2006/07/30 16:55:35 bluemonk Exp $
#
+require 'rbconfig'
require 'socket'
require 'timeout'
require 'ipaddr'
require 'logger'
require 'net/dns/packet'
@@ -1060,11 +1061,11 @@
private
# Parse a configuration file specified as the argument.
#
def parse_config_file
- if RUBY_PLATFORM =~ /win/
+ if self.class.platform_windows?
require 'win32/resolv'
arr = Win32::Resolv.get_resolv_info
self.domain = arr[0]
self.nameservers = arr[1]
else
@@ -1221,10 +1222,24 @@
raise ResolverArgumentError, "Invalid domain name #{name}"
else
true
end
end
-
+
+
+ class << self
+
+ # Returns true if running on a Windows platform.
+ #
+ # Note. This method doesn't rely on the RUBY_PLATFORM constant
+ # because the comparison will fail when running on JRuby.
+ # On JRuby RUBY_PLATFORM == 'java'.
+ def platform_windows?
+ !!(Config::CONFIG["host_os"] =~ /msdos|mswin|djgpp|mingw/i)
+ end
+
+ end
+
end # class Resolver
end # module DNS
end # module Net
class ResolverArgumentError < ArgumentError # :nodoc: