You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by he...@apache.org on 2021/05/08 09:35:41 UTC
svn commit: r1889667 - in /spamassassin/trunk/lib/Mail/SpamAssassin:
AsyncLoop.pm Util.pm
Author: hege
Date: Sat May 8 09:35:41 2021
New Revision: 1889667
URL: http://svn.apache.org/viewvc?rev=1889667&view=rev
Log:
Move domain_to_search_list to Util
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/AsyncLoop.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/AsyncLoop.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/AsyncLoop.pm?rev=1889667&r1=1889666&r2=1889667&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/AsyncLoop.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/AsyncLoop.pm Sat May 8 09:35:41 2021
@@ -42,7 +42,7 @@ use Time::HiRes qw(time);
use Mail::SpamAssassin;
use Mail::SpamAssassin::Logger;
-use Mail::SpamAssassin::Util qw(idn_to_ascii);
+use Mail::SpamAssassin::Util qw(idn_to_ascii domain_to_search_list);
our @ISA = qw();
@@ -82,32 +82,6 @@ sub new {
$self;
}
-# Given a domain name, produces a listref of successively stripped down
-# parent domains, e.g. a domain '2.10.Example.COM' would produce a list:
-# '2.10.example.com', '10.example.com', 'example.com', 'com', ''
-#
-sub domain_to_search_list {
- my ($domain) = @_;
- $domain =~ s/^\.+//; $domain =~ s/\.+\z//; # strip leading and trailing dots
- my @search_keys;
- if ($domain =~ /\[/) { # don't split address literals
- @search_keys = ( $domain, '' ); # presumably an address literal
- } else {
- local $1;
- $domain = lc $domain;
- for (;;) {
- push(@search_keys, $domain);
- last if $domain eq '';
- # strip one level
- $domain = ($domain =~ /^ (?: [^.]* ) \. (.*) \z/xs) ? $1 : '';
- }
- if (@search_keys > 20) { # enforce some sanity limit
- @search_keys = @search_keys[$#search_keys-19 .. $#search_keys];
- }
- }
- return \@search_keys;
-}
-
# ---------------------------------------------------------------------------
=item $ent = $async->bgsend_and_start_lookup($name, $type, $class, $ent, $cb, %options)
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm?rev=1889667&r1=1889666&r2=1889667&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm Sat May 8 09:35:41 2021
@@ -61,7 +61,8 @@ our @EXPORT_OK = qw(&local_tz &base64_de
&secure_tmpdir &uri_list_canonicalize &get_my_locales
&parse_rfc822_date &idn_to_ascii &is_valid_utf_8
&get_user_groups &compile_regexp &qr_to_string
- &is_fqdn_valid &parse_header_addresses);
+ &is_fqdn_valid &parse_header_addresses
+ &domain_to_search_list);
our $AM_TAINTED;
@@ -2302,6 +2303,31 @@ sub fisher_yates_shuffle {
###########################################################################
+# Given a domain name, produces a listref of successively stripped down
+# parent domains, e.g. a domain '2.10.Example.COM' would produce a list:
+# '2.10.example.com', '10.example.com', 'example.com', 'com', ''
+#
+sub domain_to_search_list {
+ my ($domain) = @_;
+ $domain =~ s/^\.+//; $domain =~ s/\.+\z//; # strip leading and trailing dots
+ my @search_keys;
+ if ($domain =~ /\[/) { # don't split address literals
+ @search_keys = ( $domain, '' ); # presumably an address literal
+ } else {
+ local $1;
+ $domain = lc $domain;
+ for (;;) {
+ push(@search_keys, $domain);
+ last if $domain eq '';
+ # strip one level
+ $domain = ($domain =~ /^ (?: [^.]* ) \. (.*) \z/xs) ? $1 : '';
+ }
+ if (@search_keys > 20) { # enforce some sanity limit
+ @search_keys = @search_keys[$#search_keys-19 .. $#search_keys];
+ }
+ }
+ return \@search_keys;
+}
###########################################################################