Code

Removed passwordHook
[gosa.git] / gosa-si / gosa-si-client
index 6675b6ae3cbabaecb18f56cc85b44062817cc5ac..003d30f72e8df25d504a25bae93fb516b4348e46 100755 (executable)
@@ -75,7 +75,6 @@ use Time::HiRes qw( gettimeofday );
 use IO::Socket::INET;
 use NetAddr::IP;
 use Crypt::Rijndael;
-use GOsaSI::GosaSupportDaemon;
 use Digest::MD5  qw(md5_hex md5 md5_base64);
 use MIME::Base64;
 use XML::Simple;
@@ -83,6 +82,7 @@ use File::Basename;
 use File::Spec;
 use File::Pid;
 use Net::ARP;
+use GOsaSI::GosaSupportDaemon;
 
 use POE qw(Component::Server::TCP Wheel::FollowTail Wheel::Run);
 use Fcntl;
@@ -99,7 +99,7 @@ my $client_status;
 my $event_dir = "/usr/lib/gosa-si/client/events";
 use lib "/usr/lib/gosa-si/client/events";
 
-my (%cfg_defaults, $foreground, $verbose, $pid_file, $procid, $pid, $log_file, $fai_logpath);
+my (%cfg_defaults, $foreground, $pid_file, $procid, $pid, $log_file, $fai_logpath);
 my ($server_ip, $server_port, $server_timeout, $server_domain, $server_key_lifetime);
 my ($client_port, $ldap_enabled, $ldap_config, $pam_config, $nss_config);
 my ($root_uid, $adm_gid);
@@ -305,14 +305,16 @@ sub sig_int_handler {
 
        daemon_log("shutting down gosa-si-client", 1);
 
-# to be changed crude !!
-#      system("kill `ps -C gosa-si-server -o pid=`");
+       # shtudown the client by telling the poe kernel
        $global_kernel->yield('shutdown');
 
+       #removing the opts file
        unlink ('/var/run/gosa-si/gosa-si-client.opts');
 
+       #removing the fifo for communication 
        unlink ($fai_com_fifo);
-       
+
+       #removing the pid
        $pid->remove or warn "Could not remove $pid_file\n";
 
   exit(0);
@@ -674,7 +676,7 @@ sub register_at_gosa_si_server {
                        }
 
                        # Check if our ip is resolvable - if not: don't try to register
-                       my $ip= &get_local_ip_for_remote_ip(sprintf("%s", $server =~ /^([0-9\.]*?):.*$/));
+                       my $ip= defined($client_ip)?$client_ip:&get_local_ip_for_remote_ip(sprintf("%s", $server =~ /^([0-9\.]*?):.*$/));
                        my $dnsname= gethostbyaddr(inet_aton($ip), AF_INET);
                        if(!defined($dnsname)) {
                                if( defined($client_force_hostname) && $client_force_hostname eq "true") {
@@ -687,7 +689,7 @@ sub register_at_gosa_si_server {
                        }
 
                        # create registration msg
-                       my $local_ip = &get_local_ip_for_remote_ip(sprintf("%s", $server =~ /^([0-9\.]*?):.*$/));
+                       my $local_ip = (defined($client_ip))?$client_ip:&get_local_ip_for_remote_ip(sprintf("%s", $server =~ /^([0-9\.]*?):.*$/));
                        my $local_mac = &get_local_mac_for_remote_ip(sprintf("%s", $server =~ /^([0-9\.]*?):.*$/));
                        my $register_hash = &create_xml_hash("here_i_am", $local_ip.":".$client_port, $server);
                        &add_content2xml_hash($register_hash, "new_passwd", $server_key);
@@ -716,7 +718,7 @@ sub register_at_gosa_si_server {
                                $try_to_register = 0;
 
                                # Set fixed client address and mac address
-                               $client_ip= &get_local_ip_for_remote_ip(sprintf("%s", $server =~ /^([0-9\.]*?):.*$/));
+                               $client_ip= (defined($client_ip))?$client_ip:&get_local_ip_for_remote_ip(sprintf("%s", $server =~ /^([0-9\.]*?):.*$/));
                                $client_address= "$client_ip:$client_port";
                                $client_mac_address = $local_mac;
                                $client_dnsname = $dnsname;
@@ -1223,7 +1225,6 @@ sub post_processing_and_sending
 
 sub find_servers {
     # add gosa-si-server address from config file at first position of server list
-               #my $server_check_cfg = Config::IniFiles->new( -file => $cfg_file );
     my $server_check_cfg = Config::IniFiles->new( -file => $config );
 
     # Parse servers string
@@ -1308,6 +1309,7 @@ sub find_servers {
     }
 }
 
+
 sub start_daemon {
 
        if( ! $foreground ) {
@@ -1316,8 +1318,8 @@ sub start_daemon {
                open STDIN, '+>/dev/null'   or die "Can't read /dev/null: $!";
                open STDOUT, '+>&STDIN' or die "Can't write to /dev/null: $!";
                open STDERR, '+>&STDIN' or die "Can't write to /dev/null: $!";
-               defined(my $child_pid = fork)   or die "Can't fork: $!";
-               exit if $child_pid;
+               defined($pid = fork)   or die "Can't fork: $!";
+               exit if $pid;
                setsid                    or die "Can't start a new session: $!";
        }
        return;
@@ -1383,12 +1385,12 @@ if( defined $dump_config ) {
 #  read and set config parameters
 &read_configfile($config, %cfg_defaults);
 
-# create pid file
-&create_pid($pid, $pid_file);
-
 # daemonize the program
 &start_daemon($foreground);
 
+# create pid file
+&create_pid($pid, $pid_file);
+
 # Determine root uid and adm gid, used for creating log files
 &get_perms_admin($root_uid, $adm_gid);