Code

Added re array
[gosa.git] / gosa-si / modules / ArpHandler.pm
index d81ef57d5a6db68d02f95300da152236053c6ec7..e920e623045883c54244cb46fe5b5bb634d9d7f2 100644 (file)
@@ -14,7 +14,7 @@ use Net::LDAP::Entry;
 use Net::DNS;
 use Switch;
 use Data::Dumper;
-use utf8;
+use Socket;
 
 # Don't start if some of the modules are missing
 my $start_service=1;
@@ -36,7 +36,6 @@ END{}
 my ($timeout, $mailto, $mailfrom, $user, $group);
 my ($arp_enabled, $arp_interface, $ldap_uri, $ldap_base, $ldap_admin_dn, $ldap_admin_password);
 my $hosts_database={};
-my $resolver=Net::DNS::Resolver->new;
 my $ldap;
 
 my %cfg_defaults =
@@ -179,8 +178,7 @@ sub got_packet {
        my $capture_device = sprintf "%s", $kernel->alias_list($sender) =~ /^arp_watch_(.*)$/;
 
        if(!exists($hosts_database->{$packet->{source_haddr}})) {
-               my $dnsresult= $resolver->search($packet->{source_ipaddr});
-               my $dnsname= (defined($dnsresult))?$dnsresult->{answer}[0]->{ptrdname}:$packet->{source_ipaddr};
+               my $dnsname= gethostbyaddr(inet_aton($packet->{source_ipaddr}), AF_INET) || $packet->{source_ipaddr};
                my $ldap_result=&get_host_from_ldap($packet->{source_haddr});
                if(exists($ldap_result->{dn})) {
                        $hosts_database->{$packet->{source_haddr}}=$ldap_result;