1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
package Ocsinventory::Agent::Backend::OS::Linux::Domains;
use strict;
sub check {
my $params = shift;
my $common = $params->{common};
return unless $common->can_run ("hostname");
my @domain = `hostname -d`;
return 1 if @domain || $common->can_read ("/etc/resolv.conf");
0;
}
sub run {
my $params = shift;
my $common = $params->{common};
my $domain;
my %domain;
my @dns_list;
my $dns;
chomp($domain = `hostname -d`);
open RESOLV, "/etc/resolv.conf" or warn;
while (<RESOLV>){
if (/^nameserver\s+(\S+)/i) {
push(@dns_list,$1);
} elsif (!$domain) {
$domain{$2} = 1 if (/^(domain|search)\s+(.+)/);
}
}
close RESOLV;
if (!$domain) {
$domain = join "/", keys %domain;
}
$dns=join("/",@dns_list);
# If no domain name, we send "WORKGROUP"
$domain = 'WORKGROUP' unless $domain;
$common->setHardware({
WORKGROUP => $domain,
DNS => $dns
});
}
1;
|