index 88cc39f1b1ce1605278dc00fa9a64140aa6a9ce8..6d80ba94459925d65a30d7b29a58b512ffd8cf11 100644 (file)
"got_ping",
"detected_hardware",
"trigger_wake",
+ "reload_ldap_config",
);
@EXPORT = @events;
my $ldap_base;
my $ldap_admin_dn;
my $ldap_admin_password;
-my $gosa_unit_tag;
my %cfg_defaults = (
"server" => {
"ldap-base" => [\$ldap_base, ""],
"ldap-admin-dn" => [\$ldap_admin_dn, ""],
"ldap-admin-password" => [\$ldap_admin_password, ""],
- "gosa-unit-tag" => [\$gosa_unit_tag, ""],
},
);
&read_configfile($main::cfg_file, %cfg_defaults);
}
}
+
+sub reload_ldap_config {
+ my ($msg, $msg_hash, $session_id) = @_;
+ my $header = @{$msg_hash->{header}}[0];
+ my $target = @{$msg_hash->{$header}}[0];
+
+ my $out_msg = &SIPackages::new_ldap_config($target);
+ my @out_msg_l = ( $out_msg );
+ return @out_msg_l;
+}
+
+
sub got_ping {
my ($msg, $msg_hash, $session_id) = @_;
my $resolver=Net::DNS::Resolver->new;
my $ipaddress= $1 if $address =~ /^([0-9\.]*?):.*$/;
my $dnsresult= $resolver->search($ipaddress);
- my $dnsname= (defined($dnsresult))?$dnsresult->{answer}[0]->{ptrdname}:$ipaddress;
+ my $dnsname= (
+ defined($dnsresult) &&
+ defined($dnsresult->{answer} &&
+ defined($dnsresult->{answer}[0] &&
+ defined($dnsresult->{answer}[0]->{ptrdname}
+ )?$dnsresult->{answer}[0]->{ptrdname}:$ipaddress;
my $cn = (($dnsname =~ /^(\d){1,3}\.(\d){1,3}\.(\d){1,3}\.(\d){1,3}/) ? $dnsname : sprintf "%s", $dnsname =~ /([^\.]+)\.?/);
my $dn = "cn=$cn,ou=incoming,$ldap_base";
&main::daemon_log("INFO: Creating entry for $dn",5);
$entry->add("gotomode" => "locked");
$entry->add("gotoSysStatus" => "new-system");
$entry->add("ipHostNumber" => $ipaddress);
- if(defined($gosa_unit_tag) && length($gosa_unit_tag) > 0) {
- $entry->add("objectClass" => "gosaAdministrativeUnit");
- $entry->add("gosaUnitTag" => $gosa_unit_tag);
+ if(defined($main::gosa_unit_tag) && length($main::gosa_unit_tag) > 0) {
+ $entry->add("objectClass" => "gosaAdministrativeUnitTag");
+ $entry->add("gosaUnitTag" => $main::gosa_unit_tag);
}
my $res=$entry->update($ldap);
if(defined($res->{'errorMessage'}) &&