added PC17 "improvement"
authorminima <minima>
Thu, 17 Jun 2004 21:21:53 +0000 (21:21 +0000)
committerminima <minima>
Thu, 17 Jun 2004 21:21:53 +0000 (21:21 +0000)
Changes
perl/DXProt.pm

diff --git a/Changes b/Changes
index 9ec301e0897abed026e6a37cd5a3e7123720c266..3ead773b9ec5f7e3b7652f6abd29a64ae1280b61 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,5 @@
+17Jun04=======================================================================
+1. alter processing of PC17 to see if they get distributed more than now.
 14Jun04=======================================================================
 1. fix previous fix of sh/dx
 09Jan04=======================================================================
index 48fad54a02b48f5a35d23c0cfdf99f4a147be6f0..a7a82a7b77486b12e11c68d8e4f858ab97f42350 100644 (file)
@@ -833,30 +833,32 @@ sub handle_17
        my $uref = Route::User::get($ucall);
        unless ($uref) {
                dbg("PCPROT: Route::User $ucall not in config") if isdbg('chanerr');
-               return;
        }
        my $parent = Route::Node::get($ncall);
        unless ($parent) {
                dbg("PCPROT: Route::Node $ncall not in config") if isdbg('chanerr');
-               return;
        }                       
 
-       $dxchan = $parent->dxchan;
+       $dxchan = $parent->dxchan if $parent;
        if ($dxchan && $dxchan ne $self) {
                dbg("PCPROT: PC17 from $self->{call} trying to alter locally connected $ncall, ignored!") if isdbg('chanerr');
                return;
        }
 
-       # input filter if required
-       return unless $self->in_filter_route($parent);
-                       
-       $parent->del_user($uref);
+       # input filter if required and then remove user if present
+       if ($parent) {
+#              return unless $self->in_filter_route($parent);  
+               $parent->del_user($uref) if $uref;
+       } else {
+               $parent = Route->new($ncall);  # throw away
+       }
 
        if (eph_dup($line)) {
                dbg("PCPROT: dup PC17 detected") if isdbg('chanerr');
                return;
        }
 
+       $uref = Route->new($ucall) unless $uref; # throw away
        $self->route_pc17($origin, $line, $parent, $uref);
 }