tried to sort out last in
[spider.git] / perl / cluster.pl
index b1b330b2c983f1377ed82faf0dba5397b38d9886..a070353752075c18c1453f0704d5c4511b07b490 100755 (executable)
@@ -61,7 +61,7 @@ use Filter;
 use Local;
 use Fcntl ':flock'; 
 
-use Carp;
+use Carp qw(cluck);
 
 package main;
 
@@ -107,13 +107,14 @@ sub rec
                my ($sort, $call, $line) = $msg =~ /^(\w)(\S+)\|(.*)$/;
 
                 # is there one already connected to me ? 
-               if ($dxchan = DXChannel->get($call)) {
-                       disconnect($dxchan);
-                       sleep(1);
+               my $user = DXUser->get($call);
+               if (DXChannel->get($call)) {
+                       my $mess = DXM::msg($lang, $user->sort eq 'A' ? 'concluster' : 'conother', $call);
+                       already_conn($conn, $call, $mess);
+                       return;
                }
                
                # is there one already connected elsewhere in the cluster (and not a cluster)
-               my $user = DXUser->get($call);
                if ($user) {
                        if (($user->sort eq 'A' || $call eq $myalias) && !DXCluster->get_exact($call)) {
                                ;
@@ -192,7 +193,10 @@ sub cease
        DXUser::finish();
        dbg('chan', "DXSpider version $version ended");
        Log('cluster', "DXSpider V$version stopped");
+       dbgclose();
+       Logclose();
        unlink $lockfn;
+#      $SIG{__WARN__} = $SIG{__DIE__} =  sub {my $a = shift; cluck($a); };
        exit(0);
 }
 
@@ -220,8 +224,8 @@ sub process_inqueue
        # translate any crappy characters into hex characters 
        if ($line =~ /[\x00-\x06\x08\x0a-\x1f\x7f-\xff]/o) {
                $line =~ s/([\x00-\x1f\x7f-\xff])/uc sprintf("%%%02x",ord($1))/eg;
-               dbg('chan', "<- $sort $call **CRAP**: $line");
-               return;
+#              dbg('chan', "<- $sort $call **CRAP**: $line");
+#              return;
        }
        
        # do the really sexy console interface bit! (Who is going to do the TK interface then?)