Mailing List Archive

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