diff --git a/gosa-si/gosa-si-client b/gosa-si/gosa-si-client
index 145a82cf848a5381831ae720b8c0be313173ddb0..c3608750a3458e474bd86618ef628b7a7bdce57b 100755 (executable)
--- a/gosa-si/gosa-si-client
+++ b/gosa-si/gosa-si-client
{"port" => [\$client_port, "20083"],
"ip" => [\$client_ip, "0.0.0.0"],
"mac-address" => [\$client_mac_address, "00:00:00:00:00:00"],
- "server-domain" => [\$server_domain, ""],
+ "server-domain" => [\$server_domain, ""],
"ldap" => [\$ldap_enabled, 1],
"ldap-config" => [\$ldap_config, "/etc/ldap/ldap.conf"],
"pam-config" => [\$pam_config, "/etc/pam_ldap.conf"],
"nss-config" => [\$nss_config, "/etc/libnss-ldap.conf"],
- "fai-logpath" => [\$fai_logpath, "/var/log/fai/fai.log"],
- "force-hostname" => [\$client_force_hostname, "false"],
+ "fai-logpath" => [\$fai_logpath, "/var/log/fai/fai.log"],
+ "force-hostname" => [\$client_force_hostname, "false"],
},
"server" => {
"ip" => [\$server_ip, "127.0.0.1"],
my $result="0.0.0.0";
if($server_ip =~ /^(\d\d?\d?\.){3}\d\d?\d?$/) {
- if($server_ip eq "127.0.0.1") {
- $result="127.0.0.1";
- } else {
+ # client should always have a 'valid' ip-address, which is available from other hosts too,
+ # 127.0.0.1 says nothing to foreign host
+ #if($server_ip eq "127.0.0.1") {
+ # $result="127.0.0.1";
+ #} else {
my $PROC_NET_ROUTE= ('/proc/net/route');
open(PROC_NET_ROUTE, "<$PROC_NET_ROUTE")
last;
}
}
- }
+ #}
} else {
daemon_log("get_local_ip_for_remote_ip was called with a non-ip parameter: $server_ip", 1);
}
}
-# moved to GosaSupportDaemon: rettenbe, 19.05.2008
-#sub create_passwd {
-# my $new_passwd = "";
-# for(my $i=0; $i<31; $i++) {
-# $new_passwd .= ("a".."z","A".."Z",0..9)[int(rand(62))]
-# }
-#
-# return $new_passwd;
-#}
-
-
sub create_ciphering {
my ($passwd) = @_;
if((!defined($passwd)) || length($passwd)==0) {
}
-# moved to GosaSupportDaemon: rettenbe: 16.05.2008
-#sub get_server_addresses {
-# my $domain= shift;
-# my @result;
-#
-# my $error = 0;
-# my $res = Net::DNS::Resolver->new;
-# my $query = $res->send("_gosa-si._tcp.".$domain, "SRV");
-# my @hits;
-#
-# if ($query) {
-# foreach my $rr ($query->answer) {
-# push(@hits, $rr->target.":".$rr->port);
-# }
-# }
-# else {
-# #warn "query failed: ", $res->errorstring, "\n";
-# $error++;
-# }
-#
-# if( $error == 0 ) {
-# foreach my $hit (@hits) {
-# my ($hit_name, $hit_port) = split(/:/, $hit);
-# chomp($hit_name);
-# chomp($hit_port);
-#
-# my $address_query = $res->send($hit_name);
-# if( 1 == length($address_query->answer) ) {
-# foreach my $rr ($address_query->answer) {
-# push(@result, $rr->address.":".$hit_port);
-# }
-# }
-# }
-# }
-#
-# return @result;
-#}
-
-
#=== FUNCTION ================================================================
# NAME: send_msg_hash_to_target
# PARAMETERS: msg_hash - hash - xml_hash created with function create_xml_hash
my $ip= &get_local_ip_for_remote_ip(sprintf("%s", $server =~ /^([0-9\.]*?):.*$/));
my $dnsname= gethostbyaddr(inet_aton($ip), AF_INET);
if(!defined($dnsname)) {
- &write_to_file("goto-error-dns:$ip", $fai_logpath);
- exit(1);
+ if( defined($client_force_hostname) && $client_force_hostname eq "true") {
+ $dnsname = `hostname`;
+ } else {
+ &write_to_file("goto-error-dns:$ip", $fai_logpath);
+ exit(1);
+ }
}
# create registration msg
}
-#sub import_events {
-#
-# if (not -e $event_dir) {
-# daemon_log("ERROR: cannot find directory or directory is not readable: $event_dir", 1);
-# }
-# opendir (DIR, $event_dir) or die "ERROR while loading gosa-si-events from directory $event_dir : $!\n";
-#
-# while (defined (my $event = readdir (DIR))) {
-# if( $event eq "." || $event eq ".." ) { next; }
-# daemon_log("INFO: found event module: $event", 5);
-# eval{ require $event; };
-# if( $@ ) {
-# daemon_log("ERROR: import of event module '$event' failed", 1);
-# daemon_log("$@", 1);
-# next;
-# }
-#
-# $event =~ /(\S*?).pm$/;
-# my $event_module = $1;
-# my $events_l = eval( $1."::get_events()") ;
-# foreach my $event_name (@{$events_l}) {
-# $event_hash->{$event_name} = $event_module;
-# }
-#
-# }
-#
-# my @all_events = keys %$event_hash;
-# my $all_events_string = join(", ", @all_events);
-#
-# daemon_log("INFO: imported events: $all_events_string", 5);
-#}
-
sub trigger_new_key {
my ($kernel) = $_[KERNEL] ;
}
+sub sig_handler {
+ my ($kernel, $signal) = @_[KERNEL, ARG0] ;
+ daemon_log("0 INFO got signal '$signal'", 1);
+ $kernel->sig_handled();
+ return;
+}
+
+
sub _start {
my ($kernel, $heap) = @_[KERNEL, HEAP];
$kernel->alias_set('client_session');
$global_kernel = $kernel; # this is used to throw events at each point of the skript
-
+
+ $kernel->sig(USR1 => "sig_handler");
+
# force a registration at a gosa-si-server
$kernel->yield('register_at_gosa_si_server');
@@ -1180,13 +1114,12 @@ daemon_log("INFO: gosa-si-client mac address detected: $client_mac_address", 1);
# import events
my ($error, $result, $tmp_hash) = &import_events($event_dir);
$event_hash = $tmp_hash;
-if ($error == 0) {
- foreach my $log_line (@$result) {
- daemon_log("DEBUG: $log_line", 7);
- }
-} else {
- foreach my $log_line (@$result) {
- daemon_log("ERROR: $log_line", 1);
+
+foreach my $log_line (@$result) {
+ if ($log_line =~ / succeed: /) {
+ &main::daemon_log("0 DEBUG: $log_line", 7);
+ } else {
+ &main::daemon_log("0 ERROR: $log_line", 1);
}
}
@@ -1207,10 +1140,6 @@ daemon_log("INFO: start socket for incoming xml messages at port '$client_port'
# prepare variables
if( inet_aton($server_ip) ){ $server_ip = inet_ntoa(inet_aton($server_ip)); }
-############################################################
-# to change
-#if( $server_ip eq "127.0.1.1" ) { $server_ip = "127.0.0.1" }
-############################################################
if (defined $server_ip && defined $server_port) {
$server_address = $server_ip.":".$server_port;
}
inline_states => {
_start => \&_start,
_default => \&_default,
+ sig_handler => \&sig_handler,
register_at_gosa_si_server => \®ister_at_gosa_si_server,
# trigger periodical tasks