Commit Graph

283 Commits

Author SHA1 Message Date
Jared Johnson
e2556a4ee9 Moar testing for Qpsmtpd::run_continuation() 2015-01-30 01:50:54 -06:00
Matt Simerson
d9ac50f383 make sure $transaction->notes is blessed before
calling it as such. It doesn't resolve #199 but it does help there.

I'm not sure initializing Qpsmtpd::transaction as {} is a brilliant idea, but I haven't a better solution for that yet.
2015-01-29 11:25:14 -08:00
Jared Johnson
3b0d60545d Tests for Qpsmtpd::Plugin::register_hook() 2015-01-28 17:23:21 -06:00
Jared Johnson
113becf8be Get rid of Qpsmtpd::DB::File
DBM is probably the only file format we'll ever support anyhow
2015-01-27 15:55:53 -06:00
Jared Johnson
3bf1a7f48c Better handling of testing temp files
Rather than creating and ignoring a bunch of random files, create files in
t/tmp, ignored in .gitignore and cleaned up with 'make clean'
2015-01-27 14:41:15 -06:00
Matt Simerson
178c5f6884 Merge pull request #196 from msimerson/dmarc
dmarc: add error handling and tests
2015-01-27 10:30:28 -08:00
Jared Johnson
b6311caae0 Pass multiple keys to del() to speed up prune_db() 2015-01-27 11:50:55 -06:00
Jared Johnson
1320a01f46 Speed up prune_db() with new Qpsmtpd::DB::mget()
This reduces round trips to Redis, speeding up DB pruning,
especially over a network
2015-01-27 10:59:47 -06:00
Jared Johnson
0dcafcffb6 Add testing for prune_db() in plugins/greylisting 2015-01-27 10:45:10 -06:00
Jared Johnson
462a2ae367 Rename 'redis_server' arg to 'redis' 2015-01-23 15:15:04 -06:00
Jared Johnson
4f9af75e48 Make Redis optional
Previously the greylist plugin tried to use redis and fell back to DBM. This means that if a system already had an established DBM database, but happened to have Redis running, the existing DBM db would be abandoned for a new Redis DB. This would inevitably lead to more delays for legitimate mail, and possibly lost mail.

This adds a 'redis_server' argument which enables Redis and sets the location of the redis server; if it is not explicitly set, DBM is used instead.

If the redis server is unavailable, rather than failing to start QP, we instead fail to register the plugin.
2015-01-23 14:24:23 -06:00
Jared Johnson
63de50c808 Remove unused sub from greylist tests
Not sure how long ago this fell out of use and neither is the author
2015-01-22 23:44:52 -06:00
Jared Johnson
e76b6a9048 Fix consistency problems with DBM store
Destroy the AnyDBM-tied hash after untying

Google's wisdom seems to indicate that leaving the AnyDBM-tied hash around after
untying it was causing data to not flush to the DBM file... or something. At any
rate the regression test added here confirms inconsistency when using multiple
instances which is fixed by destroying the AnyDBM-tied hash after untying.
2015-01-21 16:43:23 -06:00
Jared Johnson
e3187ace0d Add tests for Qpsmtpd::DB::File::DBM 2015-01-21 16:32:11 -06:00
Matt Simerson
8185d33fa5 dmarc: add error handling and tests 2015-01-21 10:16:03 -08:00
Matt Simerson
391dfc9309 Merge pull request #189 from msimerson/auth-results
completed DKIM signing detection to A-R header
2015-01-21 10:00:55 -08:00
Jared Johnson
f8e220e3b5 Handle missing GeoIP data gracefully
Previously, the GeoIP plugin would crash on certain missing GeoIP data.
Now it will continue to operate on whatever data it can get at.

Note that it already warns when any data it's looking for is missing.
2015-01-14 15:28:14 -06:00
Matt Simerson
62a063b366 completed DKIM signing detection to A-R header
cleaning function, making it 'safe'

* added test coverage to authentication_results and clean_authentication_results
2015-01-04 14:27:59 -08:00
Matt Simerson
4226dfaa3e fcrdns: document the is_valid_localhost skip
with a logdebug line
2015-01-04 02:48:01 -05:00
Matt Simerson
296219c603 fcrdns: add tests and improved localhost detection 2015-01-04 02:03:09 -05:00
Matt Simerson
4a11e2cb71 Revert "Turn warnings into $qpsmtpd->log() calls" 2015-01-03 21:45:59 -08:00
Jared Johnson
87c6799a1e More complete tests for data_respond() 2014-12-30 17:48:47 -06:00
Jared Johnson
a308e53aa7 Merge pull request #156 from msimerson/smtp
moved SMTP changes into new PR
2014-12-30 16:47:23 -06:00
Jared Johnson
89b942b634 Update expected error text 2014-12-30 14:53:54 -06:00
Jared Johnson
474a086d90 Tests for Qpsmtpd::DB::Redis 2014-12-30 14:53:54 -06:00
Jared Johnson
11646b9a27 Add Qpsmtpd::DB testing and more greylist testing 2014-12-30 14:53:53 -06:00
Jared Johnson
eb0ff1fe98 Get rid of grey_timeout and 'white' clients
These are noops:  clients that retry before grey_timeout is exceeded and
clients that retry after grey_timeout is exceeded all pass greylisting until
expired by white_timeout.
2014-12-28 21:27:03 -06:00
Jared Johnson
c01cdffb08 Add testing for greylist() 2014-12-28 21:26:49 -06:00
Matt Simerson
d6fabb2b40 added some tests for data_respond 2014-12-26 22:15:05 -08:00
Matt Simerson
e9497d7e51 moved SMTP changes into new PR 2014-12-26 22:15:05 -08:00
Matt Simerson
1f43e30de1 Merge pull request #169 from jaredj/hook-testing
Generalize hook testing
2014-12-24 16:12:24 -08:00
Jared Johnson
a7fee58aad More explicit explanations 2014-12-24 18:06:22 -06:00
Jared Johnson
bf8dc171a3 Don't disable greylist in absence of p0f argument 2014-12-22 16:09:41 -06:00
Jared Johnson
a5f786c986 Take advantage of fake_hook() in existing tests 2014-12-18 14:16:23 -06:00
Jared Johnson
0204fb0f18 Add some comments on uses for fake_{hook,config} 2014-12-18 14:01:32 -06:00
Jared Johnson
7f357af1c2 Move hook testing stuff to Test::Qpsmtpd
This makes it more available to plugins outside of t/plugin_tests/
2014-12-18 13:32:58 -06:00
Jared Johnson
46d26848a9 Generalized method for test hooks 2014-12-18 13:32:57 -06:00
Jared Johnson
7d33c42d35 Less obtrusive addition of test hooks 2014-12-18 13:32:57 -06:00
Jared Johnson
ea937f89dc Warn about lack of ASN data when GeoIP2 is loaded 2014-12-18 13:30:26 -06:00
Jared Johnson
4d59ce8406 Fix unstable use of $1 in Qpsmtpd::warn_level() 2014-12-17 16:11:12 -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
Jared Johnson
3d17325ede More readable output for some auth.t tests 2014-12-15 14:19:23 -06:00
Jared Johnson
a9e7d00177 Tests exclude_connection() and exclude_recipient() 2014-12-11 16:55:59 -06:00
Jared Johnson
4ad56e4117 Add tests for check_genre() 2014-12-11 16:50:06 -06:00
Jared Johnson
ec470ed08e Tests for ident/p0f rcpt_handler() 2014-12-11 16:29:07 -06:00
Jared Johnson
0a7c6f0f08 Tests for ident/p0f register_genre_blocking() 2014-12-11 16:06:54 -06:00
Jared Johnson
0d5ec185a8 Make fake_config() available to all plugin tests 2014-12-11 15:33:34 -06:00
Jared Johnson
4f4e19ba0a Better fake_config() in t/plugin_tests/content_log 2014-12-11 15:31:23 -06:00
Jared Johnson
4547677135 Tests for ident/p0f register_headers() 2014-12-11 15:11:51 -06:00
Jared Johnson
b8e5e0a1b9 Make content log file configurable 2014-12-03 15:50:45 -06:00