X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=trunk%2Fgosa-si%2Fgosa-si-client;h=fa7aecce8c666602ee5454ca925d37b1e76c74ae;hb=895d8d89acaf1c8afe6ee957fbb79f1ecece0699;hp=972d299d536cfd437988e8ff2c5047f6ee4e608c;hpb=57be90486d654245e9a45062513c24ab5538337f;p=gosa.git diff --git a/trunk/gosa-si/gosa-si-client b/trunk/gosa-si/gosa-si-client index 972d299d5..fa7aecce8 100755 --- a/trunk/gosa-si/gosa-si-client +++ b/trunk/gosa-si/gosa-si-client @@ -489,6 +489,7 @@ sub send_msg_to_target { if ($REGISTERED == 1) { $REGISTERED = 0; # if server is not available, cause reregistering daemon_log("INFO: cause reregistering at gosa-si-server", 5); + sleep(2); $global_kernel->post('client_session', 'register_at_gosa_si_server'); } @@ -588,6 +589,7 @@ sub register_at_gosa_si_server { # append shifted gosa-si-server at the end of @servers, so looking for servers never stop if # a registration never occured my $server = shift(@servers); + &main::daemon_log("INFO: Trying to register with server $server", 3); push(@servers, $server); ($server_ip = $server) =~ s/:.*$//; $server_address = $server; @@ -640,8 +642,6 @@ sub register_at_gosa_si_server { # if delivery of registration msg succeed if(defined($res) and $res eq "0") { - # reset try_to_register - $REGISTRATION_TRIES = 0; # Set fixed client address and mac address $client_ip= &get_local_ip_for_remote_ip(sprintf("%s", $server =~ /^([0-9\.]*?):.*$/)); @@ -651,15 +651,18 @@ sub register_at_gosa_si_server { last; # delivery of registration msg failed - } elsif($REGISTRATION_TRIES >= scalar(@servers)) { + } elsif($REGISTRATION_TRIES > scalar(@servers)) { last; } } # end of while # one circle through all servers finished and no registration succeed - if ( $REGISTRATION_TRIES >= (scalar(@servers)) ) { + if ( $REGISTRATION_TRIES > (scalar(@servers)) ) { + $REGISTRATION_TRIES = 0; &write_to_file("gosa-si-no-server-available", $fai_logpath); - $kernel->delay_set('register_at_gosa_si_server', $delay_set_time); + daemon_log("WARNING: Could not register with any of the servers, waiting $delay_set_time seconds",3); + sleep($delay_set_time); + $kernel->post('client_session', 'register_at_gosa_si_server'); # delivery of registraion msg succeed, waiting for server response } else { @@ -1053,11 +1056,11 @@ sub server_input { my $msg_hash; - daemon_log("INFO: Incoming msg from '$remote_ip'", 5); + daemon_log("INFO: Incoming msg from '$remote_ip', server_ip: $server_ip", 5); daemon_log("DEBUG: Incoming msg:\n$input\n", 9); - if (not "$remote_ip" eq "$server_ip") { - daemon_log("INFO: Incoming msg not from server, ignoring", 5); + if (not "$remote_ip" eq "$server_ip" and "$server_ip" ne "127.0.0.1") { + daemon_log("INFO: Incoming msg not from server ($server_ip), ignoring", 5); $error++; } else { ($msg, $msg_hash) = &check_key_and_xml_validity($input, $server_key); @@ -1082,6 +1085,7 @@ sub server_input { } $FAILED_CRYPTO++; $REGISTERED = 0; + sleep(2); $kernel->post('client_session', 'register_at_gosa_si_server'); } } @@ -1125,6 +1129,10 @@ sub server_input { # set registered flag to true to stop sending further registered msgs $REGISTERED = 1; $REGISTRATION_IN_PROGRESS = 0; + if( $server_ip eq "127.0.0.1") { + $server_ip = $remote_ip; + daemon_log("INFO: Registered at localhost, setting server_ip to $server_ip",3); + } } else { $answer =~ /
(\S+)<\/header>/;