X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=perl%2FDXProt.pm;h=d9e59c4937bc9211cc8425a804760879dfba6aa6;hb=84e68f5fca6f33df5e2c7c801038043d339aaac2;hp=9519c004dee7f6f924ebcb6345fed3fb66ef368d;hpb=3eb9538d135d9ff21d8ce7c0e0c6b3e6d7fb59a9;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 9519c004..d9e59c49 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; }