1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284
|
3.20250505 2025-05-05 Australia/Sydney
** Thanks to Giovanni <g.bechis@snb.it> for these changes:
- avoid a 'Attempt to reload Mail/SPF/Mech.pm aborted.' error
- remove empty record structure in order to stringify it correctly
** Thanks to Keith <kealanta@fastmailteam.com> for these changes, based on Debian patches:
- Redirecting all references to openspf.org to open-spf.org
- fix pod test errors
3.20240923 2024-09-23 Australia/Melbourne
- Fix issue where certain DNS results would cause an exception to be thrown
3.20240827 2024-08-27 Australia/Melbourne
** Thanks to Giovanni <g.bechis@snb.it> for the changes in this release.
- Do not try to parse an IPv4 address unnecessarily
- Import RFC7208 Tests
- referencing the same TXT record through multiple CNAME aliases is not permitted
by RFC7208
- Make it clear that BlackMagic module is not available
- Fix checks for IPv4-mapped IPv6 connections
- Cache DNS results
- Misc dzil/build/ci improvements
- SPF explanation text is restricted to 7-bit ascii
3.20240617 2024-06-17 Australia/Melbourne
- Update INSTALL file for Dist::Zilla changes
Thanks to Giovanni <g.bechis@snb.it>
- Fix memory leak in Mail::SPF::Server when cacheing a Mail::SPF::MacroString
Thanks to Giovanni <g.bechis@snb.it> and Felipe Gasper
- When mfrom is empty, create a synthetic mfrom (postmaster@helo) and check
that identity using the mfrom scope as specified in RFC7208
Thanks to Giovanni <g.bechis@snb.it>
- Fix missing declare in Mail::SPF::Server
Thanks to Giovanni <g.bechis@snb.it>
- require Mail::SPF::Mech when needed
Thanks to Giovanni <g.bechis@snb.it>
- correctly handle empty labels
Thanks to Giovanni <g.bechis@snb.it>
- use "try" instead of "eval"
Thanks to Giovanni <g.bechis@snb.it>
- error out if the lookup fails
Thanks to Giovanni <g.bechis@snb.it>
3.20240206 2024-02-06 UTC
- Remove signature file from distribution
3.20240205 2024-02-05 UTC
- Fix pod in Mail::SPF::Util (RT#93241)
Thanks to rwfranks@acm.org and GBECHIS@cpan.org
- Fixes char_str_list is not a valid sub in new Net::DNS (RT#149825)
Reworked from patch supplied with thanks by GBECHIS@cpan.org
- BREAKING CHANGE: spfd is now installed in /bin instead of /sbin
As a result Mail::SPF now respects an install prefix and may be
more easily installed in a non root and/or local lib environment.
--- 2.009 (2013-07-21 03:30)
Mail::SPF:
* Default to querying only TXT type RRs (query_rr_types = Mail::SPF::Server->
query_rr_type_txt). Experience has shown that querying SPF type RRs is
impractical.
--- 2.008 (2012-01-30 08:15)
Mail::SPF:
* Sanitize result local_explanation (as well as result object string
representation) by replacing all non-printable or non-ascii characters
with their hex-escaped representation (e.g., "\x00").
(Addresses: bugs.launchpad.net #806926)
Miscellaneous:
* Change openspf.org URLs to openspf.net because openspf.org is unreachable
indefinitely.
* Change <http://www.ietf.org/rfc/….txt> URLs
to <http://tools.ietf.org/html/…>.
* META.yml: configure_requires: Module::Build 0.2805
* META.yml: requires: Net::DNS 0.62 (was: 0.52) (Closes: rt.cpan.org #28545)
* META.yml: Revert to flat version numbers for perl and Net::DNS::Resolver::
Programmable build requirements to avoid Module::Build::Compat/Makefile.PL
incompatibilities. (Closes: rt.cpan.org #53231)
* Attempt to prevent a cascading failure in t/00.03-class-result.t that seems
to happen under rare, unknown circumstances. (Closes: rt.cpan.org #39099)
Debian:
* Declare Debian source package format as 3.0.
* Standards-Version: 3.9.2 (was: 3.8.3)
* Bump debhelper compatibility level to 7 (was: 5) and simplify debian/rules
using debhelper 7 features.
* debian/control: Simplify depdendencies under the assumption that package
will be installed on Debian Lenny (oldstable at the time of writing) or
later (or the Ubuntu equivalent).
* debian/watch: Use dist-based URL.
--- 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 61 2013-07-22 03:45:15Z julian $
# vim:syn= tw=79 sts=2 sw=2
|