X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-si%2Fmodules%2FArpHandler.pm;h=3bc46cfd05861f2cd89c61a5bc51aba0bb9cf017;hb=1bf6d6303fb62f5b51b9ebff12524f7631a02bc7;hp=e920e623045883c54244cb46fe5b5bb634d9d7f2;hpb=8a776b426c2069293a5bf4d700811b68744b2108;p=gosa.git diff --git a/gosa-si/modules/ArpHandler.pm b/gosa-si/modules/ArpHandler.pm index e920e6230..3bc46cfd0 100644 --- a/gosa-si/modules/ArpHandler.pm +++ b/gosa-si/modules/ArpHandler.pm @@ -94,13 +94,13 @@ sub get_module_info { &main::daemon_log("Loading OUI cache file suceeded!", 6); } } + my $ldap_handle = &main::get_ldap_handle(); if(defined($ldap_uri) && length($ldap_uri)>0) { - &main::refresh_ldap_handle(); - if (!$main::ldap_handle) { + if (!$ldap_handle) { &main::daemon_log("Could not connect to LDAP Server at $ldap_uri!\n$@", 1); } } else { - $main::ldap_handle= undef; + $ldap_handle= undef; } # When interface is not configured (or 'all'), start arpwatch on all possible interfaces @@ -177,7 +177,8 @@ sub got_packet { my $capture_device = sprintf "%s", $kernel->alias_list($sender) =~ /^arp_watch_(.*)$/; - if(!exists($hosts_database->{$packet->{source_haddr}})) { + my $ldap_handle = &main::get_ldap_handle(); + if(!exists($hosts_database->{$packet->{source_haddr}})) { 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})) { @@ -209,7 +210,7 @@ sub got_packet { ": ".$hosts_database->{$packet->{source_haddr}}->{ipHostNumber}. "/".$hosts_database->{$packet->{source_haddr}}->{macAddress},4); &add_ldap_entry( - $main::ldap_handle, + $ldap_handle, $ldap_base, $hosts_database->{$packet->{source_haddr}}->{macAddress}, 'new-system', @@ -226,7 +227,7 @@ sub got_packet { "->".$packet->{source_ipaddr}, 4); $hosts_database->{$packet->{source_haddr}}->{ipHostNumber}= $packet->{source_ipaddr}; &change_ldap_entry( - $main::ldap_handle, + $ldap_handle, $ldap_base, $hosts_database->{$packet->{source_haddr}}->{macAddress}, 'ip-changed', @@ -242,9 +243,10 @@ sub get_host_from_ldap { my $mac=shift; my $result={}; - if(defined($main::ldap_handle)) { + my $ldap_handle = &get_ldap_handle(); + if(defined($ldap_handle)) { my $ldap_result= &search_ldap_entry( - $main::ldap_handle, + $ldap_handle, $ldap_base, "(|(macAddress=$mac)(dhcpHWAddress=ethernet $mac))" ); @@ -440,7 +442,7 @@ sub change_ldap_entry { if (defined($ip)) { $replace->{'ipHostNumber'} = $ip; } - my $result = $main::ldap_handle->modify( $dn, replace => $replace ); + my $result = $ldap_tree->modify( $dn, replace => $replace ); # for $result->code constants please look at Net::LDAP::Constant if($result->code == 32) { # entry doesnt exists