projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1. cluster seems to have a memory leak, put DESTROY functions in where
[spider.git]
/
perl
/
cluster.pl
diff --git
a/perl/cluster.pl
b/perl/cluster.pl
index b1b330b2c983f1377ed82faf0dba5397b38d9886..5b43496e879e488e9a78e7dd5e37b3ed1fabd9e6 100755
(executable)
--- a/
perl/cluster.pl
+++ b/
perl/cluster.pl
@@
-61,13
+61,13
@@
use Filter;
use Local;
use Fcntl ':flock';
use Local;
use Fcntl ':flock';
-use Carp;
+use Carp
qw(cluck)
;
package main;
@inqueue = (); # the main input queue, an array of hashes
$systime = 0; # the time now (in seconds)
package main;
@inqueue = (); # the main input queue, an array of hashes
$systime = 0; # the time now (in seconds)
-$version = "1.
28
"; # the version no of the software
+$version = "1.
30
"; # the version no of the software
$starttime = 0; # the starting time of the cluster
$lockfn = "cluster.lock"; # lock file name
$starttime = 0; # the starting time of the cluster
$lockfn = "cluster.lock"; # lock file name
@@
-107,13
+107,14
@@
sub rec
my ($sort, $call, $line) = $msg =~ /^(\w)(\S+)\|(.*)$/;
# is there one already connected to me ?
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)
}
# 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)) {
;
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");
DXUser::finish();
dbg('chan', "DXSpider version $version ended");
Log('cluster', "DXSpider V$version stopped");
+ dbgclose();
+ Logclose();
unlink $lockfn;
unlink $lockfn;
+# $SIG{__WARN__} = $SIG{__DIE__} = sub {my $a = shift; cluck($a); };
exit(0);
}
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;
# 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?)
}
# do the really sexy console interface bit! (Who is going to do the TK interface then?)
@@
-266,6
+270,7
@@
sub uptime
$starttime = $systime = time;
# open the debug file, set various FHs to be unbuffered
$starttime = $systime = time;
# open the debug file, set various FHs to be unbuffered
+dbginit();
foreach (@debug) {
dbgadd($_);
}
foreach (@debug) {
dbgadd($_);
}