You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by mm...@apache.org on 2013/04/10 19:41:57 UTC
svn commit: r1466584 - in /spamassassin/trunk/lib/Mail/SpamAssassin:
Message/Metadata/Received.pm NetSet.pm
Author: mmartinec
Date: Wed Apr 10 17:41:57 2013
New Revision: 1466584
URL: http://svn.apache.org/r1466584
Log:
adjust parsing of zone_id in scoped IPv6 address according to RFC 6874
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata/Received.pm
spamassassin/trunk/lib/Mail/SpamAssassin/NetSet.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata/Received.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata/Received.pm?rev=1466584&r1=1466583&r2=1466584&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata/Received.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata/Received.pm Wed Apr 10 17:41:57 2013
@@ -1290,7 +1290,9 @@ enough:
$ip =~ s/^ipv6://i; # remove "IPv6:" prefix
$ip =~ s/^\[//; $ip =~ s/\]\z//;
- $ip =~ s/%[A-Z0-9:._-]*\z//si; # scoped address? remove interface specs
+
+ # IPv6 Scoped Address (RFC 4007, RFC 6874, RFC 3986 "unreserved" charset)
+ $ip =~ s/%[A-Z0-9._~-]*\z//si; # scoped address? remove <zone_id>
# remove "::ffff:" prefix from IPv4-mapped-in-IPv6 addresses,
# so we can treat them simply as IPv4 addresses
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/NetSet.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/NetSet.pm?rev=1466584&r1=1466583&r2=1466584&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/NetSet.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/NetSet.pm Wed Apr 10 17:41:57 2013
@@ -98,7 +98,8 @@ sub add_cidr {
$cidr = $1 if $cidr =~ /^ \[ ( [^\]]* ) \] \z/xs;
my $scope;
- if ($cidr =~ s/ % ( [A-Z0-9:._-]* ) \z //xsi) { # link-local scope?
+ # IPv6 Scoped Address (RFC 4007, RFC 6874, RFC 3986 "unreserved" charset)
+ if ($cidr =~ s/ % ( [A-Z0-9._~-]* ) \z //xsi) { # scope <zone_id> ?
$scope = $1; # interface specification
# discard interface specification, currently just ignored
info("netset: ignoring interface scope '%%%s' in IP address %s",