From d0bc1d6db90b5f0765b668d1b08062fb99240ca4 Mon Sep 17 00:00:00 2001 From: djk Date: Thu, 3 Jun 1999 20:13:58 +0000 Subject: [PATCH] fixed probs with checking for loops on locally connected nodes --- perl/DXProt.pm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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; } -- 2.34.1