Skip to content

Commit 2ea71c4

Browse files
authored
Merge pull request #19523 from adfoster-r7/fix-windows-dns-crash-on-bootup
Fix windows DNS crash on bootup
2 parents b2e4ec9 + 49a7caf commit 2ea71c4

File tree

1 file changed

+21
-23
lines changed

1 file changed

+21
-23
lines changed

lib/net/dns/resolver.rb

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1081,36 +1081,34 @@ def parse_config_file
10811081
if RUBY_PLATFORM =~ /mswin32|cygwin|mingw|bccwin/
10821082
require 'win32/resolv'
10831083
arr = Win32::Resolv.get_resolv_info
1084-
self.searchlist = arr[0]
1084+
self.searchlist = arr[0] if arr[0]
10851085
self.nameservers = arr[1]
10861086
else
1087-
begin
1088-
IO.foreach(@config[:config_file]) do |line|
1089-
line.gsub!(/\s*[;#].*/,"")
1090-
next unless line =~ /\S/
1091-
case line
1092-
when /^\s*domain\s+(\S+)/
1093-
self.domain = $1
1094-
when /^\s*search\s+(.*)/
1095-
self.searchlist = $1.split(" ")
1096-
when /^\s*nameserver\s+(.*)/
1097-
$1.split(/\s+/).each do |nameserver|
1098-
# per https://man7.org/linux/man-pages/man5/resolv.conf.5.html nameserver values must be IP addresses
1099-
begin
1100-
ip_addr = IPAddr.new(nameserver)
1101-
rescue IPAddr::InvalidAddressError
1102-
@logger.warn "Ignoring invalid name server '#{nameserver}' from configuration file"
1103-
next
1104-
else
1105-
self.nameservers += [ip_addr]
1106-
end
1087+
IO.foreach(@config[:config_file]) do |line|
1088+
line.gsub!(/\s*[;#].*/, "")
1089+
next unless line =~ /\S/
1090+
case line
1091+
when /^\s*domain\s+(\S+)/
1092+
self.domain = $1
1093+
when /^\s*search\s+(.*)/
1094+
self.searchlist = $1.split(" ")
1095+
when /^\s*nameserver\s+(.*)/
1096+
$1.split(/\s+/).each do |nameserver|
1097+
# per https://man7.org/linux/man-pages/man5/resolv.conf.5.html nameserver values must be IP addresses
1098+
begin
1099+
ip_addr = IPAddr.new(nameserver)
1100+
rescue IPAddr::InvalidAddressError
1101+
@logger.warn "Ignoring invalid name server '#{nameserver}' from configuration file"
1102+
next
1103+
else
1104+
self.nameservers += [ip_addr]
11071105
end
11081106
end
11091107
end
1110-
rescue => e
1111-
@logger.error(e)
11121108
end
11131109
end
1110+
rescue => e
1111+
@logger.error(e)
11141112
end
11151113

11161114
# Parse environment variables

0 commit comments

Comments
 (0)