X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=e2c1dae4221ebdc9cceca1ce97c14b09d11637f4;hb=eef5d189206ebcfaf8e83675803829c72671a320;hp=26d1b169854b585ee1cd94a136da525cb1ff47d7;hpb=29ec5bb85c591182dd868e7a3d87f510d7b47e9b;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 26d1b169..e2c1dae4 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -51,7 +51,7 @@ $baddxfn = "$main::data/baddx.pl"; @checklist = ( - [ qw(c c m p bc c) ], # pc10 + [ qw(c c m bp bc c) ], # pc10 [ qw(f m d t m c c h) ], # pc11 [ qw(c bc m bp bm p h) ], # pc12 [ qw(c h) ], # @@ -239,7 +239,7 @@ sub start # send initialisation string unless ($self->{outbound}) { - $self->send(pc38()) if DXNode->get_all(); +# $self->send(pc38()) if DXNode->get_all(); $self->send(pc18()); $self->{lastping} = $main::systime; } else { @@ -617,12 +617,16 @@ sub normal if ($call ne $main::mycall) { # don't allow malicious buggers to disconnect me! my $node = DXCluster->get_exact($call); if ($node) { + if ($call eq $self->{call}) { + dbg('chan', "LOOP: Trying to disconnect myself with PC21"); + return; + } if ($node->dxchan != $self) { dbg('chan', "LOOP: $call come in on wrong channel"); return; } my $dxchan; - if (($dxchan = DXChannel->get($call)) && $dxchan != $self) { + if ($dxchan = DXChannel->get($call)) { dbg('chan', "LOOP: $call connected locally"); return; }