# Legend:
# --- = A new release
# + = Added a feature (in a backwards compatible way)
# ! = Changed something significant, or removed a feature
# * = Fixed a bug, or made a minor improvement
--- 2.007 (2009-10-31 21:00)
Mail::SPF:
* Macro expansion:
* Distinguish between split and join delimiters; they are not necessarily
the same.
* Support multiple split delimiters rather than at most one.
Miscellaneous:
* We ship and pass the 2009.10 release of the official RFC 4408 test suite.
* Give advice in INSTALL on how to install without root privileges.
Debian:
* Standards-Version: 3.8.3 (was: 3.8.0)
* Build-Depends-Indep: perl-modules (>= 5.10.0) | libmodule-build-perl (>= 0.26)
(was: libmodule-build-perl (>= 0.26))
--- 2.006 (2008-08-17 22:00)
Mail::SPF:
+ Added result object factory facility to Mail::SPF::Server in order to
support the sub-classing of Mail::SPF::Server and Mail::SPF::Result.
See README for details.
Any code throwing Mail::SPF::Result(::*) objects directly should stop doing
so and use Mail::SPF::Server::throw_result() instead.
+ Added a "query_rr_types" option to Mail::SPF::Server's constructor as a
way to disable the retrieval of either "SPF" or "TXT" type RRs.
I wouldn't make use of it if I was you!
! Changed the "max_void_dns_lookups" option's default value from undef (i.e.,
no limit) to a limit of 2. This should not cause any problems in practice,
however see the "max_void_dns_lookups" option's description for specifics
on what this entails.
* Match <toplabel> patterns greedily by reversing the order of the <toplabel>
regexp alternatives from RFC 4408. Thus TLDs with dashes (e.g.,
".xn--wgv71a") are now correctly matched.
* In macro strings, expand '%-' to '%20' rather than '-'.
Thanks to Frank Ellermann for providing a test case for the RFC 4408 test
suite that inadvertently exposed this bug.
> Mail::SPF::Result:
+ Added new received_spf_header_name() constant specifying the "Received-
SPF" header field name, which may (and usually should) be overridden by
custom result sub-classes; see the documentation.
* Generate "identity=mailfrom" rather than "identity=mfrom" in
"Received-SPF" header field.
* name() now returns a symbolic result name instead of the trailing part of
the result class name. This should have no impact on 3rd-party code.
* Added new isa_by_name() method as an equivalent to the built-in isa(),
taking a result name instead of a class name. Provides a superset of the
is_code() method's functionality.
* Substituted ";"s for "&" parameter separators in the openspf.org "Why?"
page URL in the default authority explanation string. This change is
purely cosmetic.
* Minor documentation fixes and improvements.
Miscellaneous:
* We ship and pass the 2008.08 release of the official RFC 4408 test suite.
* While officially declaring a build-requirement of Module::Build >= 0.2805
(which, if not satisfied, Module::Build itself will warn about, but not
abort), do not strictly require it. If the META.yml file generated during
package building is irrelevant, e.g., if we are being built by a package
management/build system such as Debian's, then 0.26 is sufficient.
* Recommend NetAddr::IP >= 4.007, as it has all $& and $` removed for better
performance;
see <http://issues.apache.org/SpamAssassin/show_bug.cgi?id=5312>.
--- 2.005 (2007-05-30 23:00)
Mail::SPF:
+ Added a "max_void_dns_lookups" option to Mail::SPF::Server's constructor,
allowing the number of potentially abusive lookups induced by DoS attacks
to be limited. See the documentation of the Mail::SPF::Server class.
+ Added a "precedence" class property to Mail::SPF::GlobalMod and sub-classes
that defines the order in which global modifiers are to be processed
(0: first, 1: last). See Mail::SPF::Mod.
Mail::SPF::Mod::Exp has precedence 0.2, Mail::SPF::Mod::Redirect has 0.8.
Also, Mail::SPF::Record::global_mods() now returns modifiers ordered by
precedence.
+ Added support for a non-standard %{_scope} pseudo macro that expands to the
request's identity scope. Note: Do NOT use any such non-standard macros in
explanation strings published in DNS!
! Mail::SPF::Util::valid_domain_for_ip_address() now requires a Mail::SPF::
Request object to be passed as a new second argument. This is actually
consistent with many of Mail::SPF's methods. Please excuse the late API
change (but who uses Mail::SPF::Util directly anyway?).
* Updated default authority explanation string to include identity scope in
the openspf.org "Why?" page URL in order to avoid misleading result
explanations.
* Truncate labels resulting from macro expansions to 63 bytes. This is not
strictly required by RFC 4408, 8.1/27, but is merely meant as a precaution.
* Minor documentation fixes and improvements.
Miscellaneous:
* We ship and pass the 2007.05 release of the official RFC 4408 test suite
(no changes were required).
! Build-require Module::Build >= 0.2805 (was: >= 0.26), hopefully fixing a
version.pm/CPAN.pm compatibility issue (closes: rt.cpan.org #26784).
(Debian packaging is not affected because it does not rely on META.yml.)
Debian:
* Conflicts: spfquery (<< 1.2.5.dfsg-1) (was unversioned)
--- 2.004 (2007-01-20 02:00)
Mail::SPF:
* Correctly fall back to default authority explanation if the authority
domain does specify an explanation string but it cannot be expanded (e.g.
due to syntax errors).
* In Mail::SPF::Result::received_spf_header(), gracefully fall back to a
hostname of "unknown" if a fully qualified hostname can not be determined.
Some (misconfigured) systems simply will not reveal one.
* Minor documentation improvements and fixes.
Miscellaneous:
* Note in the README file that we pass the 2006.11 release of the official
RFC 4408 test-suite.
Tests:
* Do not test Mail::SPF::Util::hostname(), as some (misconfigured) systems
simply will not reveal a fully qualified hostname (see CPANTS tests for
2.003).
* Minor code clean-up.
--- 2.003 (2007-01-10 00:00)
Mail::SPF:
* Fixed two Perl 5.6 incompatibilities:
* Added `use utf8` statements in several modules to keep Perl 5.6 from
whining about /[\p{}]/.
* Do not use the `use constant { a=>1, b=>2 }` multiple-constants idiom,
as it was introduced only in constant 1.03 (Perl 5.7.2).
* Fixed a very minor bug where a "TempError" result would incorrectly be
returned in the very rare case when the SPF-type look-up succeeded but
returned 0 records, and the following TXT-type look-up errored or timed
out. Now a "None" result is correctly returned in that case as demanded
by RFC 4408.
spfquery:
* Minor documentation fixes.
--- 2.002 (2006-12-14 00:00)
Mail::SPF:
* Updated default authority explanation string to the SPF website's new
"Why?" page URL parameters scheme:
<http://www.openspf.org/Why?id=%{S}&ip=%{I}&receiver=%{R}>
spfquery:
* Updated the '--help' text and man-page with regard to the black magic
options (which require the yet unreleased Mail::SPF::BlackMagic module).
--- 2.001 (gold release) (2006-12-09 20:00)
Gold Release!
Major overhaul:
! Major code refactoring, achieving full RFC 4408/4406 compliance, and
breaking API compatibility with 2.000.
! Switched from ExtUtils::MakeMaker to Module::Build.
+ Added complete rewrites of spfquery (2.500) and spfd (2.000).
+ Added complete documentation.
+ Added unit tests and the RFC 4408 test-suite.
+ Added Debian package control files.
+ And more... (closes: rt.cpan.org #20821, #20822, #21922, #21925)
--- 2.000 (initial release) (2005-06-23 00:00)
# $Id: CHANGES 54 2009-10-31 22:10:01Z Julian Mehnle $
# vim:syn=changelog tw=79 sts=2 sw=2