From 3ed951e9fca6c101034a791cfd815f97eb22252d Mon Sep 17 00:00:00 2001 From: Dirk Koopman Date: Fri, 16 Nov 2007 18:01:29 +0000 Subject: [PATCH] fix propagation of circular referencing D records --- perl/DXProtHandle.pm | 12 ++++++++++-- perl/Version.pm | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/perl/DXProtHandle.pm b/perl/DXProtHandle.pm index 7839e11c..b6f4473d 100644 --- a/perl/DXProtHandle.pm +++ b/perl/DXProtHandle.pm @@ -43,11 +43,12 @@ use vars qw($pc11_max_age $pc23_max_age $last_pc50 $eph_restime $eph_info_restim $investigation_int $pc19_version $myprot_version %nodehops $baddx $badspotter $badnode $censorpc $allowzero $decode_dk0wcy $send_opernam @checklist - $eph_pc15_restime $pc9x_past_age + $eph_pc15_restime $pc9x_past_age $pc9x_dupe_age $pc10_dupe_age $pc92_slug_changes $last_pc92_slug $pc92Ain $pc92Cin $pc92Din $pc92Kin $pc9x_time_tolerance ); +$pc9x_dupe_age = 60; # catch loops of circular (usually) D records $pc10_dupe_age = 45; # just something to catch duplicate PC10->PC93 conversions $pc92_slug_changes = 60; # slug any changes going outward for this long $last_pc92_slug = 0; # the last time we sent out any delayed add or del PC92s @@ -1608,6 +1609,11 @@ sub handle_92 my $t = $_[2]; my $sort = $_[3]; + # this catches loops of A/Ds +# if (eph_dup($line, $pc9x_dupe_age)) { +# return; +# } + if ($pcall eq $main::mycall) { dbg("PCPROT: looped back, ignored") if isdbg('chanerr'); return; @@ -1631,7 +1637,9 @@ sub handle_92 return; } - my $parent = check_pc9x_t($pcall, $t, 92, 1) || return; + # don't create routing entries for D records that don't already exist + # this is what causes all those PC92 loops! + my $parent = check_pc9x_t($pcall, $t, 92, $sort ne 'D') || return; my $oparent = $parent; $parent->do_pc9x(1); diff --git a/perl/Version.pm b/perl/Version.pm index 9cb07279..3e165a52 100644 --- a/perl/Version.pm +++ b/perl/Version.pm @@ -11,6 +11,6 @@ use vars qw($version $subversion $build); $version = '1.54'; $subversion = '0'; -$build = '181'; +$build = '182'; 1; -- 2.34.1