improve pc17 handling
authorminima <minima>
Sat, 12 Mar 2005 11:46:51 +0000 (11:46 +0000)
committerminima <minima>
Sat, 12 Mar 2005 11:46:51 +0000 (11:46 +0000)
perl/DXProt.pm

index 8e8dfea73c49b817d56328031cbbdfbc5938efa7..6520d1e4384801f06b55a64676b2409edc70f3c4 100644 (file)
@@ -733,10 +733,10 @@ sub handle_16
        }
 
        # is he under the control of the new protocol?
-       if ($parent && $parent->np) {
-               dbg("PCPROT: $ncall aranea node, ignored") if isdbg('chanerr');
-               return;
-       }
+#      if ($parent && $parent->np) {
+#              dbg("PCPROT: $ncall aranea node, ignored") if isdbg('chanerr');
+#              return;
+#      }
                
        my $i;
        my @rout;
@@ -822,39 +822,38 @@ 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 if $parent;
+       $dxchan = $parent->dxchan;
        if ($dxchan && $dxchan ne $self) {
                dbg("PCPROT: PC17 from $self->{call} trying to alter locally connected $ncall, ignored!") if isdbg('chanerr');
                return;
        }
 
        # is he under the control of the new protocol?
-       if ($parent && $parent->np) {
-               dbg("PCPROT: $ncall aranea node, ignored") if isdbg('chanerr');
-               return;
-       }
+#      if ($parent && $parent->np) {
+#              dbg("PCPROT: $ncall aranea node, ignored") if isdbg('chanerr');
+#              return;
+#      }
 
        # input filter if required and then remove user if present
-       if ($parent) {
+       if ($parent && !$parent->np) {
 #              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) if (DXChannel::get($parent->call) || ($parent->isa('Route::Node') && $parent->np));
+       $self->route_pc17($origin, $line, $parent, $uref) if (DXChannel::get($parent->call) || $parent->np);
 }
                
 # link request