*** empty log message ***
[spider.git] / perl / DXProt.pm
index f218d5f33e223ab0a7de0ca25422493c9c240aab..6d9afb4e488cd3454081c812cff384b9838dfec3 100644 (file)
@@ -234,11 +234,17 @@ sub normal
                        my $dxchan;
        
                        # send it if it isn't the except list and isn't isolated and still has a hop count
+                       # taking into account filtering and so on
                        foreach $dxchan (@dxchan) {
                                next if $dxchan == $self;
-                               my $filter = Filter::it($dxchan->{spotfilter}, @spot) if $dxchan->{spotfilter};
-                               my $routeit = adjust_hops($dxchan, $line);  # adjust its hop count by node name
-                               next unless $routeit;
+                               my $routeit;
+                               my ($filter, $hops) = Filter::it($dxchan->{spotfilter}, @spot) if $dxchan->{spotfilter};
+                               if ($hops) {
+                                       $line =~ s/\^H\d+\^\~$/\^H$hops\^\~/;
+                               } else {
+                                       $routeit = adjust_hops($dxchan, $line);  # adjust its hop count by node name
+                                       next unless $routeit;
+                               }
                                if ($filter) {
                                        $dxchan->send($routeit) if $routeit;
                                } else {
@@ -397,6 +403,7 @@ sub normal
                        
                        # queue mail
                        DXMsg::queue_msg(0);
+
                        return;
                }
                
@@ -808,7 +815,7 @@ sub broadcast_list
                
                if ($sort eq 'dx') {
                    next unless $dxchan->{dx};
-                       $filter = Filter::it($dxchan->{spotfilter}, @{$fref}) if ref $fref;
+                       ($filter) = Filter::it($dxchan->{spotfilter}, @{$fref}) if ref $fref;
                        next unless $filter;
                }
                next if $sort eq 'ann' && !$dxchan->{ann};