Code

Updated referrals
[gosa.git] / gosa-si / gosa-si-server
index f0b59ce9c83c195429b2270e6d2940a0f8808862..1dd69157831df62552ae5277a4f56412f38b6b34 100755 (executable)
@@ -485,10 +485,6 @@ sub get_processing_child {
                                 $answer = $tmp;
                             }
                     }        
-
-                    #&print_known_daemons();
-                    #&print_known_clients();
-
                     daemon_log("processing of msg finished", 5);
  
                    if (defined $answer) {
@@ -499,7 +495,7 @@ sub get_processing_child {
                         daemon_log("\n$answer", 7);
                     } else {
                         print $PARENT_wr "done"."\n";
-                        daemon_log(" ", 7);
+                        print $PARENT_wr "ENDMESSAGE\n";
                     }
                     redo;
                 }
@@ -757,41 +753,41 @@ sub create_known_client {
     return;  
 }
 
-sub sysreadline(*;$) {
-    my ($hd, $timeout) = @_;
-
-    $hd = qualify_to_ref($hd, caller());
-    my $infinitely_patient = (@_ == 1 || $timeout < 0);
-    my $start_time = time();
-    my $selector = IO::Select->new();
-    $selector->add($hd);
-    my $line = "";
-
-SLEEP: 
-    until( at_eol($line)) {
-        if (not $infinitely_patient) {
-            return $line if time() > ($start_time + $timeout);
-        }
-        next SLEEP unless $selector->can_read(1.0);
-INPUT_READY:
-        while( $selector->can_read(0.0)) {
-            my $was_blocking = $hd->blocking(0);
-CHAR:       while (sysread($hd, my $nextbyte, 1)) {
-                $line .= $nextbyte;  
-                last CHAR if $nextbyte eq "\n";
-
-            }
-            $hd->blocking($was_blocking);
-            next SLEEP unless at_eol($line);
-            last INPUT_READY;
-        }
-    }
-    return $line;
-}
-
-sub at_eol($) {
-    $_[0] =~ /\n\z/ ;
-}
+#sub sysreadline(*;$) {
+#    my ($hd, $timeout) = @_;
+#
+#    $hd = qualify_to_ref($hd, caller());
+#    my $infinitely_patient = (@_ == 1 || $timeout < 0);
+#    my $start_time = time();
+#    my $selector = IO::Select->new();
+#    $selector->add($hd);
+#    my $line = "";
+#
+#SLEEP: 
+#    until( at_eol($line)) {
+#        if (not $infinitely_patient) {
+#            return $line if time() > ($start_time + $timeout);
+#        }
+#        next SLEEP unless $selector->can_read(1.0);
+#INPUT_READY:
+#        while( $selector->can_read(0.0)) {
+#            my $was_blocking = $hd->blocking(0);
+#CHAR:       while (sysread($hd, my $nextbyte, 1)) {
+#                $line .= $nextbyte;  
+#                last CHAR if $nextbyte eq "\n";
+#
+#            }
+#            $hd->blocking($was_blocking);
+#            next SLEEP unless at_eol($line);
+#            last INPUT_READY;
+#        }
+#    }
+#    return $line;
+#}
+#
+#sub at_eol($) {
+#    $_[0] =~ /\n\z/ ;
+#}
 
 #==== MAIN = main ==============================================================
 
@@ -841,6 +837,8 @@ if( 0 != $pid ) {
 daemon_log(" ", 1);
 daemon_log("$0 started!", 1);
 
+# delete old DBsqlite lock files
+system('rm -f /tmp/gosa_si_lock*');
 
 # connect to gosa-si job queue
 my @job_col_names = ("id", "timestamp", "status", "result", "headertag", "targettag", "xmlmessage", "macaddress");
@@ -982,27 +980,22 @@ while(1) {
             }
             chomp($in_msg);
             
-            daemon_log("process child read:", 7);
-            daemon_log("\n$in_msg", 7);
             if (not defined $in_msg) { 
                 next; 
             } elsif ($in_msg =~ "done") {
+                daemon_log("process child read: $in_msg", 7);
                 delete $busy_child{$pid};
                 $free_child{$pid} = $child_hash;
 
             } else {
+                daemon_log("process child read:", 7);
+                daemon_log("\n$in_msg", 8);
                 # send computed answer back to connected client
                 my $act_client = $busy_child{$pid}{client_ref};
                 print $act_client $in_msg."\n";
-
-                #my $act_pipe = $busy_child{$pid}{pipe_rd};
                 delete $busy_child{$pid};
                 $free_child{$pid} = $child_hash;
 
-                # give the client a chance to read 
-                #sleep(1);
-                #close ($act_client);   
-
             }
         }
     }
@@ -1024,7 +1017,7 @@ while(1) {
 
     while( my ($id, $hit) = each %{$res} ) {         
 
-        my $jobdb_id = $hit->{ROWID};
+        my $jobdb_id = $hit->{id};
         my $macaddress = $hit->{macaddress};
         my $job_msg_hash = &transform_msg2hash($hit->{xmlmessage});
         my $out_msg_hash = $job_msg_hash;
@@ -1037,7 +1030,7 @@ while(1) {
             &daemon_log("xml message: $hit->{xmlmessage}", 5);
             my $update_hash = { table=>$job_queue_table_name,
                 update=> [ { status=>['error'], result=>["no host found for mac address"] } ],
-                where=> [ { ROWID=>[$jobdb_id] } ],
+                where=> [ { id=>[$jobdb_id] } ],
             };
             my $res = $job_db->update_dbentry($update_hash);
 
@@ -1064,16 +1057,13 @@ while(1) {
 
         my $error = &send_msg_hash2address($out_msg_hash, "$gosa_ip:$gosa_port", $gosa_passwd);
 
-#######################
-# TODO exchange ROWID with jobid, insert column jobid in table jobs befor
-
         if ($error == 0) {
-            my $sql = "UPDATE '$job_queue_table_name' SET status='processing', targettag='$target' WHERE ROWID='$jobdb_id'";
+            my $sql = "UPDATE '$job_queue_table_name' SET status='processing', targettag='$target' WHERE id='$jobdb_id'";
             my $res = $job_db->exec_statement($sql);
         } else {
             my $update_hash = { table=>$job_queue_table_name, 
                                 update=> [ { status=>'error' } ],
-                                where=> [ { ROWID=>$jobdb_id } ],
+                                where=> [ { id=>$jobdb_id } ],
                               };
             my $res = $job_db->update_dbentry($update_hash);
         }