projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
limit the no of spots stored for a search
[spider.git]
/
perl
/
cluster.pl
diff --git
a/perl/cluster.pl
b/perl/cluster.pl
index 9735aa30b10b5a42649625ad42ef03ae40eb9f60..02e86a770ee7a6e3414d6b9f2280cc183d961289 100755
(executable)
--- a/
perl/cluster.pl
+++ b/
perl/cluster.pl
@@
-251,16
+251,18
@@
sub new_channel
$basecall =~ s/-\d+$//; # remember this for later multiple user processing
my $lock;
if ($user) {
$basecall =~ s/-\d+$//; # remember this for later multiple user processing
my $lock;
if ($user) {
- #
we are a real user
+ #
make sure we act on any locked status that the actual incoming call has.
$lock = $user->lockout;
$lock = $user->lockout;
- } elsif ($allowmultiple) {
- # could we be a potential "pseudo" connection
+ } elsif ($allowmultiple
&& $call ne $basecall
) {
+ # if we are allowing multiple connections and there is a basecall minus incoming ssid, use the basecall's lock status
$user = DXUser::get_current($basecall);
$lock = $user->lockout if $user;
}
$user = DXUser::get_current($basecall);
$lock = $user->lockout if $user;
}
+
+ # now deal with the lock
if ($lock) {
my $host = $conn->peerhost;
if ($lock) {
my $host = $conn->peerhost;
- LogDbg('
DXCommand
', "$call on $host is locked out, disconnected");
+ LogDbg('', "$call on $host is locked out, disconnected");
$conn->disconnect;
return;
}
$conn->disconnect;
return;
}
@@
-281,7
+283,7
@@
sub new_channel
my $allow = 0;
if (@lastconns >= $DXUser::maxconnlist) {
$allow = $lastconns[-1]->[0] - $lastconns[0]->[0] < $min_reconnection_rate;
my $allow = 0;
if (@lastconns >= $DXUser::maxconnlist) {
$allow = $lastconns[-1]->[0] - $lastconns[0]->[0] < $min_reconnection_rate;
- }
+ }
# search for a spare ssid
L1: for (my $count = $call =~ /-\d+$/?0:1; $allow && $count < $allowmultiple; ) { # remember we have one call already
my $lastid = 1;
# search for a spare ssid
L1: for (my $count = $call =~ /-\d+$/?0:1; $allow && $count < $allowmultiple; ) { # remember we have one call already
my $lastid = 1;
@@
-303,7
+305,7
@@
sub new_channel
if ($bumpexisting) {
my $ip = $dxchan->hostname;
$dxchan->send_now('D', DXM::msg($lang, 'conbump', $call, $ip));
if ($bumpexisting) {
my $ip = $dxchan->hostname;
$dxchan->send_now('D', DXM::msg($lang, 'conbump', $call, $ip));
- Log('', "$call bumped off by $ip, disconnected");
+ Log
Dbg
('', "$call bumped off by $ip, disconnected");
$dxchan->disconnect;
} else {
already_conn($conn, $call, DXM::msg($lang, 'conother', $call, $main::mycall));
$dxchan->disconnect;
} else {
already_conn($conn, $call, DXM::msg($lang, 'conother', $call, $main::mycall));
@@
-327,7
+329,7
@@
sub new_channel
$v = defined $c ? $c : $m;
if ($v && @n >= $v+$allowmultiple) {
my $nodes = join ',', @n;
$v = defined $c ? $c : $m;
if ($v && @n >= $v+$allowmultiple) {
my $nodes = join ',', @n;
- LogDbg('
DXCommand
', "$call has too many connections ($v) at $nodes - disconnected");
+ LogDbg('', "$call has too many connections ($v) at $nodes - disconnected");
already_conn($conn, $call, DXM::msg($lang, 'contomany', $call, $v, $nodes));
return;
}
already_conn($conn, $call, DXM::msg($lang, 'contomany', $call, $v, $nodes));
return;
}
@@
-354,7
+356,7
@@
sub new_channel
# set callbacks
# set callbacks
- $conn->set_error(sub {my $err = shift; LogDbg('
DXCommand
', "Comms error '$err' received for call $dxchan->{call}"); $dxchan->disconnect(1);});
+ $conn->set_error(sub {my $err = shift; LogDbg('', "Comms error '$err' received for call $dxchan->{call}"); $dxchan->disconnect(1);});
$conn->set_on_eof(sub {$dxchan->disconnect});
$conn->set_rproc(sub {my ($conn,$msg) = @_; $dxchan->rec($msg);});
if ($sort eq 'W') {
$conn->set_on_eof(sub {$dxchan->disconnect});
$conn->set_rproc(sub {my ($conn,$msg) = @_; $dxchan->rec($msg);});
if ($sort eq 'W') {
@@
-481,7
+483,7
@@
sub setup_start
}
STDOUT->autoflush(1);
}
STDOUT->autoflush(1);
-
+
# try to load the database
if (DXSql::init($dsn)) {
$dbh = DXSql->new($dsn);
# try to load the database
if (DXSql::init($dsn)) {
$dbh = DXSql->new($dsn);
@@
-511,8
+513,8
@@
sub setup_start
if ($desc) {
my ($v, $s, $b, $g) = $desc =~ /^([\d.]+)(?:\.(\d+))?-(\d+)-g([0-9a-f]+)/;
$s ||= '';
if ($desc) {
my ($v, $s, $b, $g) = $desc =~ /^([\d.]+)(?:\.(\d+))?-(\d+)-g([0-9a-f]+)/;
$s ||= '';
- dbg("Git: $desc");
- dbg("Git: V=$v S=$s B=$b g=$g");
+ dbg("Git: $desc")
if isdbg('git')
;
+ dbg("Git: V=$v S=$s B=$b g=$g")
if isdbg('git')
;
$version = $v;
$build = $b || 0;
$gitversion = "$g\[r]";
$version = $v;
$build = $b || 0;
$gitversion = "$g\[r]";