Commit Graph

190 Commits

Author SHA1 Message Date
Daniel B
03c9d045f4 Check $addr is defined before using it (#266)
Prevent the following error if we receive an invalid RCPT TO (eg <"relaytest%nmap.scanme.org">)

Can't call method "qp" on an undefined value at /usr/share/perl5/vendor_perl/Qpsmtpd.pm line 451.
/usr/bin/qpsmtpd-forkserver[17472]: command 'rcpt' failed unexpectedly
2016-05-15 10:19:02 -07:00
Matt Simerson
d3546f9501 update Changes, bump version 2016-02-16 14:50:16 -08:00
Jared Johnson
dcdda3a5e7 Don't interpret invalid return codes as OK 2015-02-03 17:01:52 -06:00
Jared Johnson
b3f8ce6b07 Tests for error logging in run_continuation() 2015-02-03 16:44:06 -06:00
Matt Simerson
4a11e2cb71 Revert "Turn warnings into $qpsmtpd->log() calls" 2015-01-03 21:45:59 -08:00
Jared Johnson
4d59ce8406 Fix unstable use of $1 in Qpsmtpd::warn_level() 2014-12-17 16:11:12 -06:00
Jared Johnson
1d01a85542 Change qw() to qw[] in warn_level() 2014-12-15 20:22:28 -06:00
Jared Johnson
d3ec361ab8 Turn warnings into $qpsmtpd->log() calls
This can be convenient, especially when one wants to emit a warning that will
show up when running the test suite but still be properly logged in production
2014-12-15 20:07:45 -06:00
Jonathan Hall
897a1fd8aa Remove a ton of 'return ()', and a few other minor readability tweaks. 2014-09-17 20:28:51 -05:00
Matt Simerson
ba1a6a1885 remove YIELD cruft introduced by rebase 2014-09-17 13:09:47 -07:00
Matt Simerson
519bb12503 simplify config->from_file by not requiring full
file path. Instead, figure it out the same way as the 4 of the 5 caller do (by calling config_dir). Allow the 2nd arg to be the file name.
2014-09-17 13:03:46 -07:00
Matt Simerson
1e5d249224 added tests for run_hooks & run_hooks_no_respond 2014-09-17 13:03:46 -07:00
Matt Simerson
9a38850f13 added test for run_continuation 2014-09-17 13:03:46 -07:00
Matt Simerson
0499317912 Qpsmtpd: style changes in hook_responder 2014-09-17 13:02:44 -07:00
Matt Simerson
9cd8b165a0 qpsmtpd.t: added tests for hook_responder 2014-09-17 13:01:29 -07:00
Matt Simerson
1e82ae1bc7 async removed
1. the known users of async don't upgrade
2. async becomes a win when concurrent connections exceed a few hundred simultaneous
3. anyone that needs async should be looking at Haraka instead
4. the perl async dependencies aren't maintained
2014-09-17 11:38:40 -07:00
flimzy
9fdb6b17d6 Merge pull request #107 from msimerson/version
add --tags to 'git describe'
2014-09-17 06:36:39 -05:00
flimzy
3ef0188f72 Merge pull request #111 from msimerson/pod
POD fixups
2014-09-17 06:28:36 -05:00
Matt Simerson
1ebe5ea6ec put git version detection code into a sub 2014-09-17 00:08:33 -07:00
Matt Simerson
4a48c4584d add --tags to 'git describe'
'git describe' calculates the version since the last **annotated** diff. Adding --tags shows the most recent tags (v0.94, for example) regardless if they're annotated or not.
2014-09-16 23:58:49 -07:00
Matt Simerson
5155e5c32f POD fixups 2014-09-16 23:27:19 -07:00
Matt Simerson
d5481df3dd Q::hooks(), accept a hook name argument
and return a useful result
2014-09-16 21:22:36 -07: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
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
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
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
c9a780576f added tests for lib/Qpsmtpd.pm (Issue #67) 2014-09-08 22:58:27 -07:00
Matt Simerson
fd4cc6f8ab Qpsmtpd: version bump to 0.94 2013-12-18 00:11:16 -05: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
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
5b06929e95 find . -name '*.pm' -exec perltidy -b {} \; 2013-08-05 15:05:15 -07:00
Matt Simerson
266f5d2efc v0.91 bump for release 2013-08-05 15:05:10 -07:00
Matt Simerson
a5803d10f5 updated more split '' syntax to split // 2013-08-05 15:05:10 -07:00
Matt Simerson
7a045474f9 Qpsmtpd.pm: bump version 2013-08-05 15:01:51 -07:00
Matt Simerson
c1df6c2e1f Qpsmtpd.pm: less default logging at LOGINFO 2013-08-05 15:01:47 -07:00