diff --git a/gosa-si/gosa-si-client b/gosa-si/gosa-si-client
index e8d37fe34225ed12c2b6803742eedfd1cad81fb3..992dda4c3cbadf1065374365ae6bae7b9d7520ad 100755 (executable)
--- a/gosa-si/gosa-si-client
+++ b/gosa-si/gosa-si-client
#!/usr/bin/perl
#===============================================================================
#
-# FILE: gosa-server
+# FILE: gosa-si-client
#
# USAGE: gosa-si-client
#
our $terminal_server_hash;
# default variables
-our $REGISTERED = 0;
+my $REGISTERED = 0;
# path to fifo for non-gosa-si-client messages to gosa-si-server
my $fai_com_fifo = "/var/run/gosa-si-client.socket";
"nss-config" => [\$nss_config, "/etc/libnss-ldap.conf"],
"fai-logpath" => [\$fai_logpath, "/var/log/fai/fai.log"],
"force-hostname" => [\$client_force_hostname, "false"],
- "system-com" => [\$system_com, "disabled"],
+ "system-com" => [\$system_com, "disabled"],
},
"server" => {
"ip" => [\$server_ip, "127.0.0.1"],
$monthday = $monthday < 10 ? $monthday = "0".$monthday : $monthday;
$year+=1900;
- my $log_msg = "$month $monthday $hours:$minutes:$seconds $prg $msg\n";
+ # Microseconds since epoch
+ my $microSeconds = sprintf("%.2f", &Time::HiRes::clock_gettime());
+ $microSeconds =~ s/^\d*(.\d\d)$/$1/;
+
+
+ my $log_msg = "$month $monthday $hours:$minutes:$seconds$microSeconds $prg $msg\n";
print LOG_HANDLE $log_msg;
if( $foreground ) {
print STDERR $log_msg;
return $error;
}
+sub _setREGISTERED {
+ my $newStatus = shift;
+ &daemon_log("DEBUG: set REGISTERED flag from '$REGISTERED' to '$newStatus'", 7);
+ $REGISTERED = $newStatus;
+ return;
+}
sub send_msg_to_target {
my ($msg, $address, $encrypt_key, $msg_header) = @_ ;
if( !$socket ) {
daemon_log("WARNING: cannot send ".$msg_header."msg to '$address', host not reachable", 3);
if ($REGISTERED == 1) {
- $REGISTERED = 0; # if server is not available, cause reregistering
+ &_setREGISTERED(0); # if server is not available, cause reregistering
daemon_log("INFO: cause reregistering at gosa-si-server", 5);
$global_kernel->yield('register_at_gosa_si_server');
if($server_address =~ /$remote_ip/) {
# Got a msg from gosa-si-server which can not be decrypted, the secrete is not up-to-date
# cause a reregistering with a new secrete handshake
- daemon_log("ERROR: Message from gosa-si-server could not be understood, cause reregistering at server", 1);
- daemon_log("INFO: Set status of si-client to unregistered and throw new registering event", 5);
- $REGISTERED = 0;
- $kernel->post('client_session', 'register_at_gosa_si_server');
+ daemon_log("ERROR: Message from gosa-si-server could not be understood, cause reregistering at server", 1);
+ if ($REGISTERED) {
+ daemon_log("INFO: Client has currently status registered so throw new registering event", 5);
+ &_setREGISTERED(0);
+ $kernel->post('client_session', 'register_at_gosa_si_server');
+ } else {
+ daemon_log("INFO: Client is currently within a registration process so wait for the next registration itteration", 5);
+ }
}
$error++;
}