Commit Graph

2401 Commits

Author SHA1 Message Date
Jared Johnson
dcdda3a5e7 Don't interpret invalid return codes as OK 2015-02-03 17:01:52 -06:00
Matt Simerson
b24f766cc5 Merge pull request #221 from jaredj/run-continuation-logging-tests
Tests for error logging in run_continuation()
2015-02-03 14:48:48 -08:00
Jared Johnson
f6b952ce8e Comment out broken test exposed by some test fixes 2015-02-03 16:44:06 -06:00
Jared Johnson
b3f8ce6b07 Tests for error logging in run_continuation() 2015-02-03 16:44:06 -06:00
Jared Johnson
7af1f770a5 Fix hook testing order
This exposes a bug with handling invalid return codes
2015-02-03 16:15:16 -06:00
Tom Li
a44c70232c tls_cert: fix a misused quotes
Signed-off-by: Tom Li <biergaizi2009@gmail.com>
2015-02-03 03:49:22 +08:00
Tom Li
2cc6d3f938 tls: checking if dhparam is empty, using "undef" instead of "" for clarity.
Signed-off-by: Tom Li <biergaizi2009@gmail.com>
2015-02-02 20:50:37 +08:00
Tom Li
edea4c239d tls_cert: unified cert name between tls and tls_cert.
Signed-off-by: Tom Li <biergaizi2009@gmail.com>
2015-02-02 18:36:51 +08:00
Tom Li
845760969b tls: fix a typo.
Signed-off-by: Tom Li <biergaizi2009@gmail.com>
2015-02-02 18:30:54 +08:00
Tom Li
2e2e6c70c6 tls: style fixes.
Signed-off-by: Tom Li <biergaizi2009@gmail.com>
2015-02-02 18:19:13 +08:00
Tom Li
acbbf66806 tls_cert: adding dhparam generating.
Signed-off-by: Tom Li <biergaizi2009@gmail.com>
2015-02-02 17:55:40 +08:00
Tom Li
d5954ce249 tls: adding support of dhparam.
Signed-off-by: Tom Li <biergaizi2009@gmail.com>
2015-02-02 17:55:22 +08:00
Tom Li
e6ee356925 tls: respect the order of specified ciphers.
Signed-off-by: Tom Li <biergaizi2009@gmail.com>
2015-02-02 17:37:15 +08:00
Matt Simerson
262857b1cb Merge pull request #219 from jaredj/run-continuation-tests
Moar testing for Qpsmtpd::run_continuation()
2015-01-29 23:53:35 -08:00
Jared Johnson
e2556a4ee9 Moar testing for Qpsmtpd::run_continuation() 2015-01-30 01:50:54 -06:00
Jared Johnson
a053ac7a32 Merge pull request #217 from msimerson/log-file
make sure $transaction->notes is blessed before
2015-01-29 15:32:41 -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
0d79c1ef8e Merge pull request #215 from msimerson/qmd
delete qmail-deliverable BEGIN block
2015-01-29 05:39:15 -06:00
Jared Johnson
a17b44de25 Merge pull request #214 from msimerson/summarize
log/summarize: ignore init msg from logging/*
2015-01-29 05:37:55 -06:00
Jared Johnson
194cde52af Merge pull request #213 from msimerson/geoip-debug
geoip: change a couple INFO -> DEBUG
2015-01-29 05:37:12 -06:00
Matt Simerson
fddf571988 Merge pull request #216 from msimerson/tcpserver2
Tcpserver2
2015-01-29 00:23:07 -08:00
Matt Simerson
cad4f2b1d6 TcpServer: don't 'use parent Qpsmtpd::Base'
it breaks stuff. Instead, grab a base object and use it
2015-01-29 00:15:43 -08:00
Matt Simerson
11ddf03164 disable qmail-deliverable BEGIN block
because FindBin has some undesirable global effects
2015-01-29 03:10:56 -05:00
Matt Simerson
98d148a0bf refactor start_connection 2015-01-29 00:04:13 -08:00
Matt Simerson
d7dd17085e log/summarize: ignore init msg from logging/* 2015-01-28 22:54:32 -08:00
Matt Simerson
bc4e7e61a5 geoip: change a couple INFO -> DEBUG 2015-01-28 22:10:06 -08:00
Matt Simerson
d81b2d4331 Merge pull request #147 from msimerson/tcpserver
update tcpenv and lrpip calls to use -> syntax
2015-01-28 20:08:53 -08:00
Matt Simerson
be9f4aef0c update tcpenv and lrpip calls to use -> syntax
don't load plugins twice.

Not exactly sure where that feature crept in some time ago. It was suppressed by checking to see if a queue plugin was already registered, and then bailing out on subsequent register_hook runs. I noticed it in testing, b/c I didn't have a queue plugin loaded. This removes the duplicate calls to register_hook.

* adds caching of the AUTH methods. You can't add new plugins or register new
  hooks w/o restarting QP, so cache the list and avoid having to generate it on every connection.

* other PBP changes (early exits, less indention, fewer unnecessary parens, etc.)
2015-01-28 19:58:58 -08:00
Matt Simerson
575c0b09e3 Merge pull request #209 from jaredj/notight
No tight square brackets or curly braces
2015-01-28 19:57:27 -08:00
Matt Simerson
04914bf4c9 Merge pull request #212 from salvis/dkim-doc-tweak
plugins/dkim doc tweak
2015-01-28 19:45:46 -08:00
Hans Salvisberg
c1e3652beb Tweak plugins/dkim doc to clarify the d= issue and add a third email reflector. 2015-01-29 02:05:28 +01:00
Matt Simerson
17d0c42d58 Merge pull request #211 from jaredj/test-register-hook
Tests for Qpsmtpd::Plugin::register_hook()
2015-01-28 15:57:18 -08:00
Jared Johnson
f5b58d08e8 Merge pull request #210 from smtpd/dns
use perl DNS methods instead of shell cmds
2015-01-28 17:33:20 -06:00
Jared Johnson
3b0d60545d Tests for Qpsmtpd::Plugin::register_hook() 2015-01-28 17:23:21 -06:00
Matt Simerson
31dbe00514 use perl DNS methods instead of shell cmds 2015-01-28 10:23:03 -08:00
Jared Johnson
88818c1cc9 No tight square brackets or curly braces
> Likewise, the parameter -sbt=n or --square-bracket-tightness=n controls the
> space within square brackets, as illustrated below.
>
>  $width = $col[ $j + $k ] - $col[ $j ];  # -sbt=0
>  $width = $col[ $j + $k ] - $col[$j];    # -sbt=1 (default)
>  $width = $col[$j + $k] - $col[$j];      # -sbt=2
> Curly braces which do not contain code blocks are controlled by the
> parameter -bt=n or --brace-tightness=n.
>
>  $obj->{ $parsed_sql->{ 'table' }[0] };    # -bt=0
>  $obj->{ $parsed_sql->{'table'}[0] };      # -bt=1 (default)
>  $obj->{$parsed_sql->{'table'}[0]};        # -bt=2

As with PR #201, I can't find any previous concensus on introducing this
and for myself, I prefer the default.

FTR I can't find anything else in .perltidyrc that I have any bones with :)
2015-01-27 19:35:55 -06:00
Matt Simerson
45bc5cfffc Merge pull request #207 from jaredj/zap-db-file
Get rid of Qpsmtpd::DB::File
2015-01-27 13:57:17 -08: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
Matt Simerson
ce97a0eb41 Merge pull request #206 from jaredj/t-tmp
Better handling of testing temp files
2015-01-27 12:43:46 -08: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
Matt Simerson
cfce4e44d0 Merge pull request #201 from jaredj/default-parens
Don't enforce tight parens with perltidy
2015-01-27 10:30:10 -08:00
Matt Simerson
343a7ee686 Merge pull request #204 from jaredj/faster-prune
Speed up greylisting prune_db() for Redis
2015-01-27 10:29:59 -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
Matt Simerson
3ed568f9d4 Merge pull request #202 from jaredj/greylist-storage-opts
Make Redis optional
2015-01-23 14:22:21 -08:00
Jared Johnson
5a58e02e80 Scarier error message for redis failures 2015-01-23 15:23:18 -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