You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by do...@apache.org on 2005/05/12 05:04:34 UTC

svn commit: r169748 - in /spamassassin/trunk: lib/Mail/SpamAssassin/Conf.pm rules/20_uri_tests.cf t/uri_html.t

Author: dos
Date: Wed May 11 20:04:33 2005
New Revision: 169748

URL: http://svn.apache.org/viewcvs?rev=169748&view=rev
Log:
add support for regexp modifiers for redirector_patterns

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
    spamassassin/trunk/rules/20_uri_tests.cf
    spamassassin/trunk/t/uri_html.t

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm?rev=169748&r1=169747&r2=169748&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm Wed May 11 20:04:33 2005
@@ -1579,7 +1579,7 @@
     }
   });
 
-=item redirector_pattern	/pattern/
+=item redirector_pattern	/pattern/modifiers
 
 A regex pattern that matches both the redirector site portion, and
 the target site portion of a URI.
@@ -1589,7 +1589,7 @@
 
 Example: http://chkpt.zdnet.com/chkpt/whatever/spammer.domain/yo/dude
 
-  redirector_pattern	/^https?:\/\/(?:opt\.)?chkpt\.zdnet\.com\/chkpt\/\w+\/(.*)$/
+  redirector_pattern	/^https?:\/\/(?:opt\.)?chkpt\.zdnet\.com\/chkpt\/\w+\/(.*)$/i
 
 =cut
 
@@ -1599,14 +1599,14 @@
     code => sub {
       my ($self, $key, $value, $line) = @_;
 
-      if ( $self->{parser}->is_regexp_valid("redirector_pattern", $value)) {
-	# strip off delimiters and modifiers  TODO: include modifiers in qr
-	$value =~ s/^m?(.)(.*)(?:\1|>|}|\)|\]).*?$/$2/;
+      if ($self->{parser}->is_regexp_valid("redirector_pattern", $value)) {
+	# convert to qr// while including modifiers
+	$value =~ /^m?(\W)(.*)(?:\1|>|}|\)|\])(.*?)$/;
+	my $pattern = $2;
+	$pattern = "(?".$3.")".$pattern if $3;
+	$pattern = qr/$pattern/;
 
-	# since the regexp will never change we might as well qr it
-	$value = qr/$value/i;
-
-	push @{$self->{main}->{conf}->{redirector_patterns}}, $value;
+	push @{$self->{main}->{conf}->{redirector_patterns}}, $pattern;
 	dbg("config: adding redirector regex: " . $value);
       }
     }

Modified: spamassassin/trunk/rules/20_uri_tests.cf
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/rules/20_uri_tests.cf?rev=169748&r1=169747&r2=169748&view=diff
==============================================================================
--- spamassassin/trunk/rules/20_uri_tests.cf (original)
+++ spamassassin/trunk/rules/20_uri_tests.cf Wed May 11 20:04:33 2005
@@ -25,9 +25,9 @@
 require_version @@VERSION@@
 
 # Redirector URI patterns
-redirector_pattern	/^http:\/\/chkpt\.zdnet\.com\/chkpt\/\w+\/(.*)$/
-redirector_pattern	/^http:\/\/www(?:\d+)?\.nate\.com\/r\/\w+\/(.*)$/
-redirector_pattern	/^http:\/\/.+\.gov\/(?:.*\/)?externalLink\.jhtml\?.*url=(.*?)(?:&.*)?$/
+redirector_pattern	/^http:\/\/chkpt\.zdnet\.com\/chkpt\/\w+\/(.*)$/i
+redirector_pattern	/^http:\/\/www(?:\d+)?\.nate\.com\/r\/\w+\/(.*)$/i
+redirector_pattern	/^http:\/\/.+\.gov\/(?:.*\/)?externalLink\.jhtml\?.*url=(.*?)(?:&.*)?$/i
 
 uri NUMERIC_HTTP_ADDR		/^https?\:\/\/\d{7}/is
 describe NUMERIC_HTTP_ADDR	Uses a numeric IP address in URL

Modified: spamassassin/trunk/t/uri_html.t
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/t/uri_html.t?rev=169748&r1=169747&r2=169748&view=diff
==============================================================================
--- spamassassin/trunk/t/uri_html.t (original)
+++ spamassassin/trunk/t/uri_html.t Wed May 11 20:04:33 2005
@@ -218,7 +218,7 @@
 #keyword:sportscar		!sportscar
 
 # test redirector pattern
-http://www.nate.com/r/DM03/n%65verp4%79re%74%61%69%6c%2eco%6d/%62%61m/?m%61%6e=%6Di%634%39	http://neverp4yretail.com/bam/[?]man=mic49
+http://www.NATE.com/r/DM03/n%65verp4%79re%74%61%69%6c%2eco%6d/%62%61m/?m%61%6e=%6Di%634%39	http://neverp4yretail.com/bam/[?]man=mic49
 
 # test ignoring text portion of multipart with an html part
 http://www.nowhereinthetestdata.com		!http://www.dontputhisinthetestdata.com