X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-si%2Fgosa-si-server;h=893ccfb3656f2e10c4df5f1adea880c4bf6a6cad;hb=4eeb0d22bb703e4dbbe4bd34349e5e8d8fc816c5;hp=cb759af22cdd18b31ae4d14ab575408d268cc7b2;hpb=d85e06e6826defb93de1f1c494d4bedf090c1c78;p=gosa.git diff --git a/gosa-si/gosa-si-server b/gosa-si/gosa-si-server index cb759af22..893ccfb36 100755 --- a/gosa-si/gosa-si-server +++ b/gosa-si/gosa-si-server @@ -1295,32 +1295,32 @@ sub get_ldap_handle { my $heap; my $ldap_handle; - if (not defined $session_id ) { $session_id = 0 }; + if (not defined $session_id ) { $session_id = 0 }; if ($session_id == 0) { - daemon_log("$session_id DEBUG: get_ldap_handle invoked without a session_id, create a new ldap_handle", 7); - $ldap_handle = Net::LDAP->new( $ldap_uri ); + daemon_log("$session_id DEBUG: get_ldap_handle invoked without a session_id, create a new ldap_handle", 7); + $ldap_handle = Net::LDAP->new( $ldap_uri ); + $ldap_handle->bind($ldap_admin_dn, password => $ldap_admin_password); } else { - my $session_reference = $global_kernel->ID_id_to_session($session_id); - if( defined $session_reference ) { - $heap = $session_reference->get_heap(); - } - - if (not defined $heap) { - daemon_log("$session_id DEBUG: cannot get heap for session_id '$session_id'", 7); - return; - } - - if (not exists $heap->{ldap_handle}) { - # create new ldap handle - $ldap_handle = Net::LDAP->new( $ldap_uri ); - # add ldap handle to heap - $heap->{ldap_handle} = $ldap_handle; - } - } + my $session_reference = $global_kernel->ID_id_to_session($session_id); + if( defined $session_reference ) { + $heap = $session_reference->get_heap(); + } + if (not defined $heap) { + daemon_log("$session_id DEBUG: cannot get heap for session_id '$session_id'", 7); + return; + } + # TODO: This "if" is nonsense, because it doesn't prove that the + # used handle is still valid - or if we've to reconnect... + #if (not exists $heap->{ldap_handle}) { + $ldap_handle = Net::LDAP->new( $ldap_uri ); + $ldap_handle->bind($ldap_admin_dn, password => $ldap_admin_password); + $heap->{ldap_handle} = $ldap_handle; + #} + } return $ldap_handle; } @@ -1349,7 +1349,7 @@ sub change_fai_state { my $state= $mapActions{ $st }; - my $ldap_handle = get_ldap_handle($session_id); + my $ldap_handle = &get_ldap_handle($session_id); if( defined($ldap_handle) ) { # Build search filter for hosts @@ -2124,38 +2124,40 @@ if ($no_bus > 0) { $bus_activ = "false" } - - -# delete old DBsqlite lock files -#unlink('/tmp/gosa_si_lock*'); - # connect to gosa-si job queue +unlink($job_queue_file_name.".si.lock"); $job_db = GOSA::DBsqlite->new($job_queue_file_name); $job_db->create_table($job_queue_tn, \@job_queue_col_names); # connect to known_clients_db +unlink($known_clients_file_name.".si.lock"); $known_clients_db = GOSA::DBsqlite->new($known_clients_file_name); $known_clients_db->create_table($known_clients_tn, \@known_clients_col_names); # connect to known_server_db +unlink($known_server_file_name.".si.lock"); $known_server_db = GOSA::DBsqlite->new($known_server_file_name); $known_server_db->create_table($known_server_tn, \@known_server_col_names); # connect to login_usr_db +unlink($login_users_file_name.".si.lock"); $login_users_db = GOSA::DBsqlite->new($login_users_file_name); $login_users_db->create_table($login_users_tn, \@login_users_col_names); # connect to fai_server_db and fai_release_db +unlink($fai_server_file_name.".si.lock"); $fai_server_db = GOSA::DBsqlite->new($fai_server_file_name); $fai_server_db->create_table($fai_server_tn, \@fai_server_col_names); $fai_server_db->create_table($fai_release_tn, \@fai_release_col_names); # connect to packages_list_db +unlink($packages_list_file_name.".si.lock"); unlink($packages_list_file_name); $packages_list_db = GOSA::DBsqlite->new($packages_list_file_name); $packages_list_db->create_table($packages_list_tn, \@packages_list_col_names); # connect to messaging_db +unlink($messaging_file_name.".si.lock"); $messaging_db = GOSA::DBsqlite->new($messaging_file_name); $messaging_db->create_table($messaging_tn, \@messaging_col_names);