Commit Graph

209 Commits

Author SHA1 Message Date
Jared Johnson
f15a38dfe3 Merge pull request #94 from msimerson/rpm-version
add test to assure RPM VERSION is up-to-date (#80)
2014-09-11 13:00:25 -05:00
Matt Simerson
847db53e0d updated fault test in qpsmtpd-smtp.t 2014-09-11 10:53:09 -07:00
Matt Simerson
e7a4ca2b08 update MANIFEST and suppress helo test error 2014-09-11 10:46:29 -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
Matt Simerson
bcacb2778c add test to assure RPM VERSION is up-to-date (#80) 2014-09-11 10:37:56 -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
8f8463e91e Merge pull request #87 from flimzy/misc-tests
Silence misc.t STDOUT by testing for it.
2014-09-11 09:09:48 -07:00
Matt Simerson
04a984bbab helo: improved invalid_localhost detection 2014-09-10 15:12:52 -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
39c454c95e helo: added IPv6 support to invalid_localhost
and also suppress a test warning
2014-09-10 13:52:56 -07:00
Jonathan Hall
7b3018c660 Remove reference to 'No such file or directory', as there's no guarantee
this is what $!  will return when this code is called during testing.
2014-09-10 10:15:43 -05:00
Jonathan Hall
11f47cb2ab Silence misc.t STDOUT by testing for it. 2014-09-10 08:55:17 -05:00
Matt Simerson
c9a780576f added tests for lib/Qpsmtpd.pm (Issue #67) 2014-09-08 22:58:27 -07:00
Priyadi Iman Nurcahyo
bef79d3b7d Fix test for munge_subject_threshold 2014-05-15 14:45:33 +00:00
Matt Simerson
a19b7de787 updated DMARC plugin tests
disabled for now, b/c they tested methods which no longer exist in new plugin
2013-12-18 00:09:10 -05:00
Matt Simerson
c652d4c9e4 dmarc test: comments in the public list was
allowing certain org domain searches to fail (plus.google.com, b/c a google.com email address was in the public list). Now I anchor the searches to the start of the line. This test also catches edge cases like co.uk, which isn't listed, but a wildcard *.uk is.
2013-08-05 15:05:37 -07:00
Matt Simerson
9c96ae78e4 find . -name '*.t' -exec perltidy -b {} \; 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
fc3117fe60 fix dmarc plugin tests 2013-08-05 15:05:14 -07:00
Matt Simerson
db8ec50c3a new plugin: dmarc 2013-08-05 15:05:14 -07:00
Matt Simerson
b64bb2f9e4 a collection of DKIM enhancements
* disable Mail::DKIM::TextWrap (causes mangled messages for some clients)
* pod improvements
* don't log the entire DKIM signature when signing
* add dkim_pass_domains connection note with DKIM signer domains that pass
* enable dkim tests
2013-08-05 15:05:14 -07:00
Matt Simerson
8b548e392d test fixes for badmailfrom,headers plugins 2013-08-05 15:05:13 -07:00
Matt Simerson
50973aebf3 moved author tests from t/ to xt/ 2013-08-05 15:05:13 -07:00
Matt Simerson
a2bba68af6 several adjustments for tests 2013-08-05 15:05:10 -07:00
Matt Simerson
85cead39f8 SPF: removed test for removed is_in_relayclients() 2013-08-05 15:05:09 -07:00
Matt Simerson
b70f29c008 fixed test for commit 78cab52582 2013-08-05 15:05:09 -07:00
Matt Simerson
af55a8d6dd SPF: use $conn->relay_client instead of duplicated
is_in_relayclients method. Expects relay plugin to have set relay_client, a reasonable assumption.
2013-08-05 15:05:09 -07:00
Matt Simerson
1a7615ca7e dnsbl test: don't cry about test failures that
depend on working network & DNS.
2013-08-05 15:05:09 -07:00
Matt Simerson
8d52a3f548 dnsbl: fixed plugin test failure 2013-08-05 15:05:09 -07:00
Matt Simerson
21ce00cc90 fix relayclient test after commit b8baa4b91b
which added example IPv6 IPs to the config file
2013-08-05 15:05:09 -07:00
Matt Simerson
b1c2fa16b5 drop the check_ prefix from the last 3 plugins 2013-08-05 15:01:52 -07:00
Matt Simerson
47151f165b resolveable_fromhost: updated tests 2013-08-05 15:01:51 -07:00
Matt Simerson
208dfc3a21 rename require_resolvable_fromhost to resolvable_fromhost 2013-08-05 15:01:51 -07:00
Matt Simerson
e4d50a27d9 dnsbl test: remove hook_disconnect test 2013-08-05 15:01:50 -07:00
Matt Simerson
cf9b10a52f badmailfromto: fixed tests (rename cleanups) 2013-08-05 15:01:50 -07:00
Matt Simerson
f7c5f49946 rcpt_ok: shorten test messages 2013-08-05 15:01:50 -07:00
Matt Simerson
14767f9b18 updated SPF tests 2013-08-05 15:01:50 -07:00
Matt Simerson
b245d30e9e dnsbl: process DNS queries immediately
rather than deferring until RCPT. This greatly improves efficiency, since most connections will get marked naughty much sooner, having run fewer tests.
2013-08-05 15:01:49 -07:00
Matt Simerson
a259fec536 badrcptto: dropped check_ prefix from name 2013-08-05 15:01:49 -07:00
Matt Simerson
5ea1eb0f4c badrcptto: log tweaks, better regex detection 2013-08-05 15:01:49 -07:00
Matt Simerson
35b9b32895 relay: logging tweak 2013-08-05 15:01:49 -07:00
Matt Simerson
4a3452f486 p0f: POD & log message updates 2013-08-05 15:01:48 -07:00
Matt Simerson
964eab3b2b dspam: changed to only train on error
per suggestions by the dspam author
2013-08-05 15:01:48 -07:00
Matt Simerson
08256232a8 clamdscan: make sure headers exist before operating on them 2013-08-05 15:01:48 -07:00
Matt Simerson
47488650b3 badmailfrom rename fixups 2013-08-05 15:01:48 -07:00
Matt Simerson
7c798e45e6 badmailfrom rename: update test config/plugins 2013-08-05 15:01:48 -07:00
Matt Simerson
1fff417405 rename check_badmailfrom -> badmailfrom 2013-08-05 15:01:48 -07:00
Matt Simerson
e4133127d5 badmailfrom: remove rcpt hook (uses naughty instead) 2013-08-05 15:01:48 -07:00
Matt Simerson
046bc43e8e t/config: add missing test config files 2013-08-05 15:01:48 -07:00
Matt Simerson
5a424e8940 t/config/plugins: update test plugin list 2013-08-05 15:01:48 -07:00
Matt Simerson
e2c84987f3 helo: refine plugin tests 2013-08-05 15:01:48 -07:00
Matt Simerson
97fda310ee headers: plugin tests, deprecate check_basicheaders 2013-08-05 15:01:48 -07:00
Matt Simerson
d460dc86e3 spamassassin: add explicit default reject_type
consolidate the two data_post methods into one (more linear, simpler)
more informative log message
add new headers to top of headers (not bottom (consistent MTA behavior))
2013-08-05 15:01:48 -07:00
Matt Simerson
eba0a10132 badmailfrom: removed tests for rcpt_handler
and shorten test response messages in badmailfromto
2013-08-05 15:01:48 -07:00
Matt Simerson
7ff2d050f3 initial import - based on my qpsmtpd fork
which will merge into the main branch fairly easily
2013-08-05 15:01:47 -07:00
Matt Simerson
7d19bc6d5e restore validate_password test
not sure how/why that got removed, but it wasn't intentional
2013-08-05 12:38:39 -07:00
Matt Simerson
b7cb9eaf3d auth: adding tests (should have attached with a previous commit) 2013-08-05 12:38:38 -07:00
Matt Simerson
4e2ae484a2 Merge pull request #15 from msimerson/early
consolidated chunks of code duplicated 4x into log_and_deny and log_and_...
2013-08-05 12:33:42 -07:00
Matt Simerson
fd646b0d27 Merge pull request #29 from msimerson/helo
Helo
2013-08-05 12:30:59 -07:00
Matt Simerson
44db1fecf6 helo: loosen up matching DNS requirements
added X-HELO header to message
added timeout option
quieted down debug logging
2012-06-13 17:49:25 -04:00
Matt Simerson
74ae957936 helo: new plugin
helo - validate a HELO message delivered from a connecting host.

Includes the following tests:

	is_in_badhelo
	invalid_localhost
	is_plain_ip
	is_address_literal [N.N.N.N]
	is_forged_literal
	is_not_fqdn
	no_forward_dns
	no_reverse_dns
	no_matching_dns
2012-06-11 22:27:01 -04:00
Matt Simerson
9c1e62371b added new t/config directory, with developer tests
run when $ENV{QPSMTPD_DEVELOPER} is set

plugins file is same as in config.sample, but with more stuff enabled
2012-06-04 03:34:48 -04:00
Matt Simerson
85982d00f8 restore validate_password test
not sure how/why that got removed, but it wasn't intentional
2012-06-04 03:34:47 -04:00
Matt Simerson
9e70da4951 auth: adding tests (should have attached with a previous commit) 2012-06-04 03:34:47 -04:00
Matt Simerson
55b5f34365 auth_vpopmail_sql test, eval 'use DBI' before testing 2012-06-04 03:34:47 -04:00
Matt Simerson
732202ae37 another test tweak, for switching from 192.168 to 192.0 2012-06-04 03:34:47 -04:00
Matt Simerson
8795d4fd6e relay: use IETF IP testing addresses 2012-06-04 03:34:47 -04:00
Matt Simerson
974f1a95e8 new relay plugin, with tests!
replaces functionality of previous 3 relay plugins
2012-06-04 03:34:47 -04:00
Matt Simerson
57a0e4ba7b updated plugins to use QP::Plugins::is_immune 2012-06-04 03:26:16 -04:00
Matt Simerson
2a371a2c6e consolidated chunks of code duplicated 4x into log_and_deny and log_and_pass
in apr_*_handler subs, return DECLINED when connection is not available to read (like during tests)

added 23 tests

deprecate action argument
	'action log' did nothing, better logging controls available with loglevel
	'action deny'  ->  reject 1
	'action denysoft' =>  reject 1 reject_type temp

POD
use head2 for config options (instead of over, item, back)
added loglevel section
updated for replacement of action with reject options
2012-06-04 03:23:14 -04:00
Ask Bjørn Hansen
0e2384cceb Make all plugins use $self->connection rather than $self->qp->connection
Merge remote-tracking branch 'msimerson/connect'

Conflicts:
	plugins/async/require_resolvable_fromhost
	plugins/require_resolvable_fromhost
2012-06-03 23:53:43 -07:00
Matt Simerson
0a16621f02 connection consistency
-  $self->qp->connection->notes
+  $self->connection->notes

and all tests pass.
2012-06-02 00:46:33 -04:00
Matt Simerson
2f49cafcd6 resolvable_fromhost: refactored, added: POD, tests, reject, reject_type 2012-05-23 23:39:43 -04:00
Ask Bjørn Hansen
9e239fd83d Merge pull request #16 from msimerson/geoip
Geoip plugin improvements
2012-05-23 15:39:10 -07:00
Matt Simerson
e07488d4f6 hrmm, why didn't Test::Qpsmtpd::Plugin::log work? 2012-05-22 17:41:40 -04:00
Matt Simerson
2dcd34467e geoip: eval loading of Geo::IP, tests, enabled in config
eval Geo::IP and log an error if missing
added 2 tests
enabled in config/plugins
2012-05-22 17:40:02 -04:00
Matt Simerson
521aa4919f basicheaders, add reject option, loglevel
added reject option
document the existence of the loglevel option
factored date validity tests into their own sub
added tests
improved POD
2012-05-21 21:30:02 -04:00
Matt Simerson
9d0c2f8469 dnsbl, POD tweaks, DENY type tests
consolidated POD at top of file
added example options to reject_type POD head
added an example loglevel entry

consolidated DENY[SOFT|DISCONNECT] logic into get_reject_type
added tests for get_reject_type
2012-05-21 17:07:37 -04:00
Matt Simerson
51486d0b04 SPF plugin: refactored, tests, new config option
added POD description of spfquery note

changed spf_deny -> reject  (and offered 4 more options, see POD for reject)
	backwards compatible with old config settings
	replicates qmail-smtpd SPF patch behavior

improved logging (again)

uses a stringy eval 'use Mail::SPF' in the register sub. If missing, warn and log the error, and don't register any hooks. This is much nicer error than the current, "*** Remote host closed connection unexpectedly." broken mail server that results from enabling the SPF plugin without Mail::SPF installed.

background: I noticed I was deferring valid emails with the SPF plugin at 'spf_deny 1', and without changing the code, there wasn't a way to change how ~all records were handled. This provides that flexibility.
2012-05-21 04:19:45 -04:00
Matt Simerson
e8919beb0d increment test counter declaration 2012-05-20 23:40:39 -07:00
Matt Simerson
96144a6a16 improve portability of basicheader plugin tests
replaced `date` with POSIX qw(strftime);
2012-05-20 23:40:35 -07:00
Matt Simerson
49dc8bc117 basicheaders: added log messages, tests, named args
added log messages at each exit point
added tests
added reject_type option (defer -vs- deny)
added named argument parsing
2012-05-20 23:39:54 -07:00
Matt Simerson
f37fba7c2b badrcptto: merged plugins, refactored, tests
merged badrcptto_pattern into badrcptto
refactored into smaller methods
added unit tests for each method
2012-05-20 23:39:38 -07:00
Matt Simerson
e206763428 test hostname before failing the test.
Test machine might have qmail installed with another hostname configured.
2012-05-20 23:39:24 -07:00
Matt Simerson
be28372dca permit tests for async and ident plugins to work 2012-05-20 23:39:20 -07:00
Matt Simerson
19927a117e spamassassin: added spam status to log messages
added additional values to tests, to suppress test warnings
2012-05-20 23:39:03 -07:00
Matt Simerson
c3d1f6b16e p0f: tests, tests, tests, backward compat
minor changes to facilitate testing
improved error reporting of several failures
added p0f v2 compatibility to p0f v3 results: in addition to all the newer values, also report the old ones too.
2012-05-20 23:38:48 -07:00
Matt Simerson
25a099e20b dspam: added check for autolearn
don't try to use autolearn if it's not set
added tests that exercise and exorcise the bug
2012-05-20 23:38:42 -07:00
Matt Simerson
9b8c5a1be4 rcpt_ok: refactored and added tests 2012-05-20 23:37:37 -07:00
Matt Simerson
ae3fe2e4d5 cleanups for Auth::validate_password commit
one for testing to work again
and one to remove MD5 dependency in Plugin.pm
2012-05-20 23:37:16 -07:00
Matt Simerson
35e1ce9883 consolidate auth logic into Qpsmtpd::Auth
These 3 auth plugins all have a data store they fetch the reference
password or hash from. They then match the attemped password or hash
against the reference. This consolidates the latter portion (validating
the password/hash) into Auth.pm.

* less duplicated code in the plugins.
* Pass validation consistently handled for these 3 plugins.
* less work to create new auth plugins

Also caches the CRAM-MD5 ticket. It could also cache user/pass info if
this was desirable.
2012-05-20 23:37:06 -07:00
Matt Simerson
915b9830dc greylisting: reset transaction for immunity tests 2012-05-20 23:35:59 -07:00
Matt Simerson
6b9881c32e greylisting, refactored and many changes
fixed the vestiges of old plugin name 'denysoft_greylisting'

added ability to bypass greylisting based on geoip

deprecated 'mode [denysoft | testonly | off]
	off wasn't useful
	testonly & denysoft replaced by reject [ 0 | 1 ]

renamed DB from denysoft_greylist to greylist.dbm. Will use existing/legacy DB if present.

added DB pruning feature. Automatically prune the DB when qpsmtpd registers the plugin. Perhaps this should be a config option to enable?

added DB upgrade feature. Convert dotted quad IP addresses in DB to integers. Makes greylisting IPv6 compatible, since DB records are colon delimited.

exempt TLS connections from greylisting. The vast majority (perhaps all) of the SMTP clients that request encryption to my server are legit. We could add a config option for this, but this plugin already has a multitude of config options.

refactored much of the greylisting method into discreet subs

added 30 tests

added additional DEBUG level logging for p0f matches

POD changes:
	replaced over, item N, back, with head2 (better formatted output)
	better describe the current behavior of the plugin (some past behaviors no longer exist)
	added TRIPLET section with example
	added loglevel section
2012-05-20 23:35:46 -07:00
Matt Simerson
5e76d66c66 count_unrecognized_commands
simplified logic in a couple places
consolidated duplicated message
added 4 tests
2012-05-20 23:34:58 -07:00
Matt Simerson
99cf4e69d1 removed useless unused void constant 2012-05-08 22:55:16 -07:00
Matt Simerson
57d72b3cb4 auth_vpopmail_sql, refactor, log, tests
added strict and warnings pragma
refactored
added tests
added more logging
standard log prefixes
tests run pretests to assure tests can succeed
2012-05-07 09:53:03 -07:00
Matt Simerson
adbbfe6f67 auth_vpopmail: refactored, added tests, logging
added more logging
standard log prefixes
tests run a pretest to make sure tests have a chance to succeed
2012-05-07 09:52:46 -07:00
Matt Simerson
54f1a11b46 added logging and tests to auth_checkpassword 2012-05-07 09:47:15 -07:00
Matt Simerson
a1b073cfe2 refactored dnsbl, sprinkling logs and tests on it 2012-05-06 16:21:09 -07:00
Matt Simerson
77ff89d6ca only test POD for developers 2012-05-06 16:18:56 -07:00