Commit Graph

553 Commits

Author SHA1 Message Date
Matt Simerson
7230de2ddc SMTP: don't create new Transaction at disconnect
the current result of passing a DENY* response is a new transaction. That seems wrong.
2014-09-16 17:56:58 -07:00
Jared Johnson
58dc68b190 Demote warning to LOGDEBUG
it's not really very interesting when a map file doesn't exist for an optional config parameter
2014-09-16 15:12:42 -05:00
Matt Simerson
a473c2732d updated Config::defaults() to behave as before
and added additional tests for it
2014-09-16 09:52:05 -07:00
Matt Simerson
b0c3d715cc moved config() from Qpsmtpd -> Q::Config.pm 2014-09-16 09:26:55 -07:00
Jonathan Hall
48bd0f3e0c Kill some tab characters; and adopt PBP-suggested formatting for :? operator. 2014-09-16 07:11:54 -05:00
Matt Simerson
b153c0ab99 more tests for Qpsmtpd::Config
* fix for cache clearing that didn't work
* imported a sample .cdb file for testing
2014-09-16 00:54:47 -07:00
Matt Simerson
ebdb25a4bd extracted config*() from Qpsmtpd.pm -> Config.pm
* includes full test converage for Qpsmtpd::Config
    * folded t/config.t into t/qpsmtpd-config.t
* includes additional tests for Qpsmtpd
    * folded t/tempstuff into t/qpsmtpd.t
* PBP adjustments here and there
* other tweaks to handle test warnings
2014-09-15 23:41:31 -07:00
Matt Simerson
79d2b99211 Qpsmtpd: remove PLUGIN_DIR label, replace implicit
if statements with chained 'and' with if block (2x)
2014-09-15 19:00:07 -07:00
Matt Simerson
f8e2fdb966 more tests for Qpsmtpd.pm 2014-09-15 18:54:10 -07:00
Matt Simerson
710894cd49 moved Qpsmtpd::Utils -> Base.pm 2014-09-15 18:53:30 -07:00
Matt Simerson
7ca511d8a3 move extra $rc test into block
where it could have been set
2014-09-15 16:01:57 -07:00
Matt Simerson
851e1b54ee META updates, tidy, PBP tweaks
* update manifest
* perltidy
* replace postfix if/unless with brackets
* reduce useless indention by exiting sooner
2014-09-15 15:57:12 -07:00
Jared Johnson
c6da8610dc Fix crasher
Add missing 'use' and use get/set method for cleaner storage of QP object
2014-09-15 17:06:48 -05:00
Jared Johnson
e9c56dc268 Avoid passing Qpsmtpd object refs around
Use an instantiator in Qpsmtpd.pm for creating Qpsmtpd::Address objects instead
2014-09-15 17:06:48 -05:00
Jonathan Hall
6ed109914c POD updates, corrections, and clarifications. 2014-09-15 17:06:48 -05:00
Jared Johnson
2caa191334 Avoid warnings on undef hook_config returns values 2014-09-15 17:06:48 -05:00
Jared Johnson
18bfc45d0b Fall back correctly between config methods
hook_user_config no falls back to global hook_config followed by
file-based config followed by %defaults
2014-09-15 17:01:39 -05:00
Jared Johnson
5b8138971a Don't use config cache for hook_config plugins
Conflig plugins can do their own caching:  there's no telling what might change
their return values over the life of the config cache.
2014-09-15 17:01:39 -05:00
Jared Johnson
b22d037c39 Add hook_user_config
This adds a hook_user_config for plugins designed to return per-user
configuration directives.  Qpsmtpd::Address::config() triggers a
hook_user_config plugin.
2014-09-15 16:53:09 -05:00
Matt Simerson
7396dbbf5f more tests for Qpsmtpd.pm 2014-09-15 11:53:28 -07:00
Matt Simerson
ca96ddf4eb added Utils->is_valid_ip, IPv6 ready
resolves Issue #82
2014-09-11 13:34:32 -07:00
Matt Simerson
fabbdae960 tests for Qpsmtpd/SMTP
* order the ‘use’  pragmas
* compact the new() method
* move fault() tests into t/qpsmtpd-smtp.t
2014-09-11 10:46:29 -07:00
Jonathan Hall
8b1ff67604 Update fault()'s output to inidcate the possibly meaninglessness of the reported system error. 2014-09-11 11:58:31 -05:00
Matt Simerson
60877da4ed added Utils::is_localhost and t/qpsmtpd-utils.t
resolves Issue #89
2014-09-10 13:52:56 -07:00
Matt Simerson
197be1515c remove empty DESTROY() 2014-09-10 11:04:34 -07:00
Matt Simerson
625905a193 remove DashProfiler
was commented out. In the future, profiler code should be kept in it's own branch, and then merged against smtpd/master when being used.
2014-09-10 11:04:34 -07:00
Matt Simerson
e8d5229801 Merge pull request #73 from smtpd/qpsmtpd.t
added tests for lib/Qpsmtpd.pm (Issue #67)
2014-09-10 10:53:54 -07:00
Jonathan Hall
6622c01e8e Fix pf2qp.pl magic. 2014-09-09 14:38:22 -05:00
Matt Simerson
c9a780576f added tests for lib/Qpsmtpd.pm (Issue #67) 2014-09-08 22:58:27 -07:00
Matt Simerson
c02c9c2358 Merge pull request #50 from priyadi/received_line_fix
Add our headers (Received & Authentication-Results) earlier, just after DATA
2014-06-03 21:42:48 -07:00
Priyadi Iman Nurcahyo
c4452a5856 Add our headers (Received & Authentication-Results) earlier, just after DATA 2014-06-04 03:59:52 +00:00
Dongsik Park
27a0557982 config parameter passing bug fix. 2014-05-21 10:18:19 +09:00
Matt Simerson
fd4cc6f8ab Qpsmtpd: version bump to 0.94 2013-12-18 00:11:16 -05:00
Matt Simerson
2416d1e940 Plugin.pm: made is_naughty is now a getter too 2013-12-17 23:43:26 -05:00
Matt Simerson
a26d46ed87 move Auth-Results header to Original-Auth-Results
this was in a sub, commented out as a TODO to delete them. Instead of deleting, move the Authentication-Results header on incoming messages to the Original-A-R.
2013-12-17 14:16:34 -08:00
Matt Simerson
b085388cda TcpServer: optimize DNS lookups for PTR
a. don't use search path (/etc/resolv.conf)
b. explicitely specify PTR in query request
2013-12-01 03:45:12 -05:00
Matt Simerson
4a61ef1ad9 define positioning of Authentication-Results header 2013-08-05 15:05:38 -07:00
Matt Simerson
4d489ea6ef tested and working Authentication-Results
changed the method of saving results. Instead of appending to/from a header, plugins save results to a connection note.

Qpsmtpd::SMTP.pm has a new method that inserts the Authentication-Results header
The smtp-auth information has been removed from the Received header

Authentication-Results providing plugins have been updated to store results in connection note
2013-08-05 15:05:38 -07:00
Matt Simerson
4ae16219bd added Authentication-Results header, with provider
dkim, dmarc, fcrdns (iprev), spf, and smtp-auth
2013-08-05 15:05:38 -07:00
Matt Simerson
b126c3c7f8 store envelope from and to in connection notes 2013-08-05 15:05:38 -07:00
Matt Simerson
247c5a2bea is_naughty is a setter now too 2013-08-05 15:05:38 -07:00
Matt Simerson
3a0900f0ae SMTP.pm: reduce auth details from Received header.
based on patch from Devin Carraway

  http://www.nntp.perl.org/group/perl.qpsmtpd/2012/08/msg9954.html
2013-08-05 15:05:38 -07:00
Matt Simerson
82effb409a Qpsmtpd: untaint config data passed to plugins
if QP passes in tainted data, such as a hostname that subsequently gets used to open a connection using IO::Socket, the plugin die because the information is tainted. Fix it once here, instead of in each plugin.
2013-08-05 15:05:37 -07:00
Matt Simerson
4c6f5aedfd Qpsmtpd.pm: split config args on /\s+/, was / / 2013-08-05 15:05:37 -07:00
Matt Simerson
bbc6e895cc distinguish rejecting versus tolerated failures 2013-08-05 15:05:36 -07:00
Matt Simerson
dbcc3d40b4 split is_immune into itself + is_naughty
is_immune tests designates to plugins they should always skip processing.

That's typical for naughty connections, but this change provides the ability to handly naughty connections differently than (whitelisted/relayclients/known good) senders.
2013-08-05 15:05:36 -07:00
Matt Simerson
c3b8df645c Plugin: override dns_timeout by passing in a value 2013-08-05 15:05:15 -07:00
Matt Simerson
5b06929e95 find . -name '*.pm' -exec perltidy -b {} \; 2013-08-05 15:05:15 -07:00
Matt Simerson
2f3127359d moved triplicated init_resolver into Plugin.pm 2013-08-05 15:05:13 -07:00
Matt Simerson
5b74b9c1d3 Q:Plugin.pm: abstracted out store_deferred_reject 2013-08-05 15:05:13 -07:00