X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-si%2Fmodules%2FSIPackages.pm;h=cbd1026ad6201c2f275dd73198f9a1266ca83f58;hb=54c3f50d1005ca05082fa3efe2a37caa12cb50d5;hp=d04c2e527ecb9be9f00a062b6ee4d2d958380574;hpb=28513f8055075821c77d2f7b885fbce3da4587c2;p=gosa.git diff --git a/gosa-si/modules/SIPackages.pm b/gosa-si/modules/SIPackages.pm index d04c2e527..cbd1026ad 100644 --- a/gosa-si/modules/SIPackages.pm +++ b/gosa-si/modules/SIPackages.pm @@ -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"; } }