index 55e3be017a1bbe648e42800731c77d2aa56ebf2f..5f7e731727eb7c3a20dbde9c0210b9a0b285dd38 100644 (file)
my ($cfg_file, %cfg_defaults) = @_;
my $cfg;
- if( defined( $cfg_file) && ( length($cfg_file) > 0 )) {
+ if( defined( $cfg_file) && ( (-s $cfg_file) > 0 )) {
if( -r $cfg_file ) {
$cfg = Config::IniFiles->new( -file => $cfg_file );
} else {
my $header = @{$msg_hash->{header}}[0];
my $target = @{$msg_hash->{$header}}[0];
- my $out_msg = &SIPackages::new_ldap_config($target);
+ my $out_msg = &SIPackages::new_ldap_config($target, $session_id);
my @out_msg_l = ( $out_msg );
return @out_msg_l;
}
# check hit
my $hit_counter = keys %{$res};
if( not $hit_counter == 1 ) {
- &main::daemon_log("ERROR: more or no hit found in known_clients_db by query by '$address'", 1);
+ &main::daemon_log("$session_id ERROR: more or no hit found in known_clients_db by query by '$address'", 1);
return;
}
my $hostkey = $res->{1}->{hostkey};
if (not defined $macaddress) {
- &main::daemon_log("ERROR: no mac address found for client $address", 1);
+ &main::daemon_log("$session_id ERROR: no mac address found for client $address", 1);
return;
}
# Build LDAP connection
- &main::refresh_ldap_handle();
- if( not defined $main::ldap_handle ) {
- &main::daemon_log("ERROR: cannot connect to ldap: $ldap_uri", 1);
+ my $ldap_handle = &main::get_ldap_handle($session_id);
+ if( not defined $ldap_handle ) {
+ &main::daemon_log("$session_id ERROR: cannot connect to ldap: $ldap_uri", 1);
return;
}
# Perform search
- $mesg = $main::ldap_handle->search(
+ $mesg = $ldap_handle->search(
base => $ldap_base,
scope => 'sub',
filter => "(&(objectClass=GOhard)(|(macAddress=$macaddress)(dhcpHWaddress=ethernet $macaddress)))"
$entry->add("objectClass" => "gosaAdministrativeUnitTag");
$entry->add("gosaUnitTag" => $main::gosa_unit_tag);
}
- my $res=$entry->update($main::ldap_handle);
+ my $res=$entry->update($ldap_handle);
if(defined($res->{'errorMessage'}) &&
length($res->{'errorMessage'}) >0) {
&main::daemon_log("ERROR: can not add entries to LDAP: ".$res->{'errorMessage'}, 1);
return;
} else {
# Fill $mesg again
- $mesg = $main::ldap_handle->search(
+ $mesg = $ldap_handle->search(
base => $ldap_base,
scope => 'sub',
filter => "(&(objectClass=GOhard)(|(macAddress=$macaddress)(dhcpHWaddress=ethernet $macaddress)))"
if(defined($entry->get_value($attribute))) {
$entry->delete($attribute);
}
- foreach my $array_entry (@{$msg_hash->{detected_hardware}[0]->{$attribute}}) {
+ foreach my $array_entry (keys %{{map { $_ => 1 } sort(@{$msg_hash->{detected_hardware}[0]->{$attribute}}) }}) {
$entry->add($attribute => $array_entry);
}
}
}
- my $res=$entry->update($main::ldap_handle);
+ my $res=$entry->update($ldap_handle);
if(defined($res->{'errorMessage'}) &&
length($res->{'errorMessage'}) >0) {
&main::daemon_log("ERROR: can not add entries to LDAP: ".$res->{'errorMessage'}, 1);