X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-si%2Fmodules%2FSIPackages.pm;h=099ae2121b449bfd32c8bd2d0266577e74064ca6;hb=af9d2bdd58e8b70f29c64dbe3aa96c3f1692a18d;hp=d04c2e527ecb9be9f00a062b6ee4d2d958380574;hpb=28513f8055075821c77d2f7b885fbce3da4587c2;p=gosa.git diff --git a/gosa-si/modules/SIPackages.pm b/gosa-si/modules/SIPackages.pm index d04c2e527..099ae2121 100644 --- a/gosa-si/modules/SIPackages.pm +++ b/gosa-si/modules/SIPackages.pm @@ -248,7 +248,7 @@ sub get_interface_for_ip { } else { foreach (@ifs) { my $if=$_; - if(get_ip($if) eq $ip) { + if(&main::get_ip($if) eq $ip) { $result = $if; } } @@ -400,7 +400,6 @@ sub process_incoming_msg { $header =~ s/^CLMSG_//; &main::daemon_log("DEBUG: SIPackages: msg to process: $header", 7); - &main::daemon_log("$msg", 8); if( 0 == length @target_l){ &main::daemon_log("ERROR: no target specified for msg $header", 1); @@ -427,7 +426,7 @@ sub process_incoming_msg { # if delivery not possible raise error and return if( not @out_msg_l ) { - &main::daemon_log("WARNING: SIPackages got not answer from event handler '$header'", 3); + &main::daemon_log("WARNING: SIPackages got no answer from event handler '$header'", 3); } elsif( 0 == @out_msg_l) { &main::daemon_log("ERROR: SIPackages: no event handler or core function defined for '$header'", 1); } @@ -561,8 +560,6 @@ sub here_i_am { # return acknowledgement to client $out_hash = &create_xml_hash("registered", $server_address, $source); - my $register_out = &create_xml_string($out_hash); - push(@out_msg_l, $register_out); # notify registered client to bus if( $bus_activ eq "on") { @@ -577,13 +574,21 @@ sub here_i_am { &add_content2xml_hash($out_hash, "timestamp", $act_timestamp); my $new_client_out = &create_xml_string($out_hash); push(@out_msg_l, $new_client_out); - &main::daemon_log("INFO: send bus msg that client '$source' has registerd at server '$server_address'", 5); + &main::daemon_log("INFO: send bus msg that client '$source' has registered at server '$server_address'", 5); } # give the new client his ldap config + # Workaround: Send within the registration response, if the client will get an ldap config later my $new_ldap_config_out = &new_ldap_config($source); if( $new_ldap_config_out ) { - push(@out_msg_l, $new_ldap_config_out); + &add_content2xml_hash($out_hash, "ldap_available", "true"); + } + my $register_out = &create_xml_string($out_hash); + push(@out_msg_l, $register_out); + + # Really send the ldap config + if( $new_ldap_config_out ) { + push(@out_msg_l, $new_ldap_config_out); } my $hardware_config_out = &hardware_config($source, $gotoHardwareChecksum); @@ -682,7 +687,7 @@ sub new_ldap_config { $mesg = $main::ldap_handle->search( base => $ldap_base, scope => 'sub', attrs => ['dn', 'gotoLdapServer', 'gosaUnitTag', 'FAIclass'], - filter => "(&(objectClass=GOhard)(macaddress=$macaddress)(gotoMode=active))"); + filter => "(&(objectClass=GOhard)(macaddress=$macaddress)(gotoLdapServer=*))"); #$mesg->code && die $mesg->error; if($mesg->code) { &main::daemon_log($mesg->error, 1); @@ -695,7 +700,7 @@ sub new_ldap_config { &main::daemon_log("\tbase: $ldap_base", 1); &main::daemon_log("\tscope: sub", 1); &main::daemon_log("\tattrs: dn, gotoLdapServer", 1); - &main::daemon_log("\tfilter: (&(objectClass=GOhard)(macaddress=$macaddress))", 1); + &main::daemon_log("\tfilter: (&(objectClass=GOhard)(macaddress=$macaddress)(gotoLdapServer=*))", 1); return; } @@ -749,8 +754,10 @@ sub new_ldap_config { foreach $server (@servers){ # Conversation for backward compatibility if (not $server =~ /^\d+:[^:]+:ldap[^:]*:\/\// ) { - if ($server =~ /^([^:]+):(.*)$/ ) { + if ($server =~ /^([^:]+):([^:]+)$/ ) { $server= "1:dummy:ldap://$1/$2"; + } elsif ($server =~ /^(\d+):([^:]+):(.*)$/ ) { + $server= "$1:dummy:ldap://$2/$3"; } } @@ -886,6 +893,8 @@ sub server_matches { if($server_ip eq $target_ip) { $result= 1; + } elsif ($target_ip eq "0.0.0.0") { + $result= 1; } elsif ($server_ip eq "0.0.0.0") { if ($target_ip eq "127.0.0.1") { $result= 1;