Skip to content

Commit

Permalink
Merge pull request #2694 from Geod24/mlang/workaround2693
Browse files Browse the repository at this point in the history
networking: Workaround 2693 by ignoring resolv.conf entries starting with dot
  • Loading branch information
AriaXLi authored Oct 8, 2024
2 parents 92a6484 + 0181bb7 commit 5ab43ea
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 4 deletions.
4 changes: 2 additions & 2 deletions lib/facter/resolvers/hostname.rb
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ def hostname_and_no_domain?(hostname, domain)

def read_domain
file_content = Facter::Util::FileHelper.safe_read('/etc/resolv.conf')
if file_content =~ /^domain\s+(\S+)/
if file_content =~ /^domain\s+([^.]\S+)/
Regexp.last_match(1)
elsif file_content =~ /^search\s+(\S+)/
elsif file_content =~ /^search\s+([^.]\S+)/
Regexp.last_match(1)
end
end
Expand Down
4 changes: 2 additions & 2 deletions lib/facter/resolvers/linux/hostname.rb
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,9 @@ def hostname_and_no_domain?(hostname, domain)

def read_domain
file_content = Facter::Util::FileHelper.safe_read('/etc/resolv.conf')
if file_content =~ /^domain\s+(\S+)/
if file_content =~ /^domain\s+([^.]\S+)/
Regexp.last_match(1)
elsif file_content =~ /^search\s+(\S+)/
elsif file_content =~ /^search\s+([^.]\S+)/
Regexp.last_match(1)
end
end
Expand Down
24 changes: 24 additions & 0 deletions spec/facter/resolvers/linux/hostname_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,30 @@

it_behaves_like 'detects values'
end

context 'when /etc/resolv.conf has "search ."' do
let(:resolv_conf) { "search .\n" }
let(:domain) { nil }
let(:fqdn) { hostname }

it_behaves_like 'detects values'
end

context 'when /etc/resolv.conf has "search ." with multiple entires' do
let(:resolv_conf) { 'search . foo.bar' }
let(:domain) { nil }
let(:fqdn) { hostname }

it_behaves_like 'detects values'
end

context 'when /etc/resolv.conf has "search" with multiple entires' do
let(:resolv_conf) { 'search foo.bar example.com' }
let(:domain) { 'foo.bar' }
let(:fqdn) { "#{hostname}.#{domain}" }

it_behaves_like 'detects values'
end
end

context 'when FFI is not installed' do
Expand Down

0 comments on commit 5ab43ea

Please sign in to comment.