X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=03253bf0b2a50827ad7ef88f9a19cc8cf8472119;hb=5b3f4e20affe90bff9909272a933834247a2ed9d;hp=ffb9cf5bae3eaa396635b05dcc7843bc22e6790b;hpb=4470e513c0285d0fceb43299bcbe67d7e12c45d5;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index ffb9cf5b..03253bf0 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -504,8 +504,12 @@ sub normal # broadcast_ak1a(pc19($dxchan, $node), $dxchan, $self) unless $dxchan->{isolate}; } - if ($field[2] eq $main::mycall || $field[2] eq $main::myalias || $field[1] eq $main::myalias || $field[1] eq $main::mycall) { - dbg('chan', "LOOP: trying to connect myself!"); + if ($field[1] eq $main::mycall || $field[2] eq $main::mycall) { + dbg('chan', "LOOP: trying to alter config on this node from outside!"); + return; + } + if ($field[2] eq $main::myalias && DXChannel->get($field[1])) { + dbg('chan', "LOOP: trying to connect sysop from outside!"); return; } unless ($node) { @@ -568,8 +572,12 @@ sub normal dbg('chan', "$field[2] no PC19 yet, autovivified as node"); # broadcast_ak1a(pc19($dxchan, $node), $dxchan, $self) unless $dxchan->{isolate}; } - if ($field[2] eq $main::mycall || $field[2] eq $main::myalias || $field[1] eq $main::myalias || $field[1] eq $main::mycall) { - dbg('chan', "LOOP: trying to disconnect me!"); + if ($field[1] eq $main::mycall || $field[2] eq $main::mycall) { + dbg('chan', "LOOP: trying to alter config on this node from outside!"); + return; + } + if ($field[1] eq $main::myalias && DXChannel->get($field[1])) { + dbg('chan', "LOOP: trying to disconnect sysop from outside!"); return; } unless ($node) {