index 972d299d536cfd437988e8ff2c5047f6ee4e608c..fa7aecce8c666602ee5454ca925d37b1e76c74ae 100755 (executable)
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');
}
# 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;
# 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\.]*?):.*$/));
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 {
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);
}
$FAILED_CRYPTO++;
$REGISTERED = 0;
+ sleep(2);
$kernel->post('client_session', 'register_at_gosa_si_server');
}
}
# 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 =~ /<header>(\S+)<\/header>/;