X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=d9abfad6f3a4d6f17c1ae236a61ed9557aa2687b;hb=d0bc1d6db90b5f0765b668d1b08062fb99240ca4;hp=9519c004dee7f6f924ebcb6345fed3fb66ef368d;hpb=3eb9538d135d9ff21d8ce7c0e0c6b3e6d7fb59a9;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 9519c004..d9abfad6 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -319,7 +319,8 @@ sub normal dbg('chan', "LOOP: $field[1] came in on wrong channel"); return; } - if (DXChannel->get($field[1])) { + my $dxchan; + if (($dxchan = DXChannel->get($field[1])) && $dxchan != $self) { dbg('chan', "LOOP: $field[1] connected locally"); return; } @@ -359,7 +360,8 @@ sub normal dbg('chan', "LOOP: $field[2] came in on wrong channel"); return; } - if (DXChannel->get($field[2])) { + my $dxchan; + if (($dxchan = DXChannel->get($field[2])) && $dxchan != $self) { dbg('chan', "LOOP: $field[2] connected locally"); return; } @@ -387,7 +389,8 @@ sub normal # now check the call over my $node = DXCluster->get_exact($call); if ($node) { - if (DXChannel->get($call)) { + my $dxchan; + if (($dxchan = DXChannel->get($call)) && $dxchan != $self) { dbg('chan', "LOOP: $call connected locally"); } if ($node->dxchan != $self) { @@ -454,7 +457,8 @@ sub normal dbg('chan', "LOOP: $call come in on wrong channel"); return; } - if (DXChannel->get($call)) { + my $dxchan; + if (($dxchan = DXChannel->get($call)) && $dxchan != $self) { dbg('chan', "LOOP: $call connected locally"); return; }