Take off rspf checks on announces and spots and allow the dupe filters
authorminima <minima>
Sun, 2 Dec 2001 20:28:20 +0000 (20:28 +0000)
committerminima <minima>
Sun, 2 Dec 2001 20:28:20 +0000 (20:28 +0000)
to take the strain.
Move the dupe checking AFTER the input filtering for announces and spots.

Changes
perl/DXProt.pm

diff --git a/Changes b/Changes
index f15cb3c1ed99d125f3bcb6e57860d154c94a87d0..23f9bbc56196e6d7d1f9eb4b95d692e893d4739c 100644 (file)
--- a/Changes
+++ b/Changes
@@ -3,6 +3,9 @@
 unread.
 2. stop remote passive nodes (those with version numbers of 0000) from
 poluting the nodes table. Maybe this will make things slightly more stable.
+3. Take off rspf checks on announces and spots and allow the dupe filters
+to take the strain.
+4. Move the dupe checking AFTER the input filtering for announces and spots.
 26Nov01=======================================================================
 1. Make changes to the installation manual to show making the client before
 actually trying to use it!  Thanks to oz1lqh.  Also add a line for SuSE
index 7a39bb3ac81a1e2d2ed0eb161fdd7c4c861f79c1..bd34278f6485310d5c928f410978c43813ae6f17 100644 (file)
@@ -396,7 +396,7 @@ sub normal
                        }
                        
                        # rsfp check
-                       return if $rspfcheck and !$self->rspfcheck(1, $field[7], $field[6]);
+#                      return if $rspfcheck and !$self->rspfcheck(1, $field[7], $field[6]);
 
                        # if this is a 'nodx' node then ignore it
                        if ($badnode->in($field[7])) {
@@ -431,10 +431,6 @@ sub normal
                                dbg("PCPROT: useless 'BUSTED' spot") if isdbg('chanerr');
                                return;
                        }
-                       if (Spot::dup($field[1], $field[2], $d, $field[5])) {
-                               dbg("PCPROT: Duplicate Spot ignored\n") if isdbg('chanerr');
-                               return;
-                       }
                        if ($censorpc) {
                                my @bad;
                                if (@bad = BadWords::check($field[5])) {
@@ -453,6 +449,11 @@ sub normal
                                }
                        }
                        
+                       if (Spot::dup($field[1], $field[2], $d, $field[5])) {
+                               dbg("PCPROT: Duplicate Spot ignored\n") if isdbg('chanerr');
+                               return;
+                       }
+
                        # add it 
                        Spot::add(@spot);
 
@@ -528,14 +529,10 @@ sub normal
                
                if ($pcno == 12) {              # announces
 
-                       return if $rspfcheck and !$self->rspfcheck(1, $field[5], $field[1]);
+#                      return if $rspfcheck and !$self->rspfcheck(1, $field[5], $field[1]);
 
                        # announce duplicate checking
                        $field[3] =~ s/^\s+//;  # remove leading blanks
-                       if (AnnTalk::dup($field[1], $field[2], $field[3])) {
-                               dbg("PCPROT: Duplicate Announce ignored") if isdbg('chanerr');
-                               return;
-                       }
 
                        if ($censorpc) {
                                my @bad;
@@ -1451,6 +1448,11 @@ sub send_announce
                }
        }
 
+       if (AnnTalk::dup($_[0], $_[1], $_[2])) {
+               dbg("PCPROT: Duplicate Announce ignored") if isdbg('chanerr');
+               return;
+       }
+
        Log('ann', $target, $_[0], $text);
 
        # send it if it isn't the except list and isn't isolated and still has a hop count