Commit Graph

2309 Commits

Author SHA1 Message Date
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
Jared Johnson
0095e11158 Don't enforce tight parens with perltidy
Revert to default of -pt=1 rather than -pt=2:

> -bt,-pt,-sbt: Container tightness
> These are parameters for controlling the amount of space within containing
> parentheses, braces, and square brackets. The example below shows the effect
> of the three possible values, 0, 1, and 2, for the case of parentheses:
>
>  if ( ( my $len_tab = length( $tabstr ) ) > 0 ) {  # -pt=0
>  if ( ( my $len_tab = length($tabstr) ) > 0 ) {    # -pt=1 (default)
>  if ((my $len_tab = length($tabstr)) > 0) {        # -pt=2
> A value of 0 causes all parens to be padded on the inside with a space, and
> a value of 2 causes this never to happen. With a value of 1, spaces will be
> introduced if the item within is more than a single token.

The tight parens decision was made in 2005 when .perltidyrc was introduced:

2535e77293

I tried pretty hard but couldn't find any previous discussion about this
decision, I'm not quite sure who supported it, who cared about it at all,
or who knew about it at all.

What I know is that I like pt=1 better. Nobody ever gets what they want
if they don't ask :)
2015-01-22 23:53:25 -06:00
Matt Simerson
012866ef97 Merge pull request #200 from jaredj/greylist-test-cruft
Remove unused sub from greylist tests
2015-01-22 21:47:51 -08: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
Matt Simerson
846c77ee94 Merge pull request #198 from jaredj/less-cleanup-and-return
Remove unnecessary calls to cleanup_and_return()
2015-01-21 15:45:32 -08:00
Jared Johnson
8c1c5c851d Remove unnecessary calls to cleanup_and_return()
prune_db() and migrate_db() already call unlock(), calling
cleanup_and_return() only added a second (redundant) call to unlock()
2015-01-21 17:31:47 -06:00
Matt Simerson
b97508b217 Merge pull request #197 from jaredj/dbm-so-crazy
Fix DBM set() problem and add Qpsmtpd::DB::File::DBM tests
2015-01-21 14:56:11 -08: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
376498f2e8 Merge pull request #190 from msimerson/use-lib
remove instances of: use lib 'lib' in lib/ and
2015-01-21 10:06:07 -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
Matt Simerson
5fff5105f8 Merge pull request #195 from jaredj/missing-geoip-data
Handle missing GeoIP data gracefully
2015-01-21 09:45:44 -08:00
salvis
de08a11e04 Merge pull request #1 from smtpd/master
Update from original.
2015-01-19 23:06:46 +01:00
Jared Johnson
9450c21c06 Perltidy 2015-01-14 16:17:04 -06:00
Jared Johnson
029db84771 Remove some postfix 'if' 2015-01-14 16:05:42 -06: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
Jared Johnson
a97e931231 Merge pull request #193 from priyadi/received-with-fix
Change Received header ordering when using SSL, to fix interaction problem with Spamassassin
2015-01-13 13:00:56 -06:00
Priyadi Iman Nurcahyo
3ef92f214e Change Received header ordering when using SSL 2015-01-13 05:40:16 +00:00
Matt Simerson
371a9bf4a0 Merge pull request #192 from jaredj/nosslv3
Disable SSLv3
2015-01-07 15:22:16 -08:00
Jared Johnson
963193dded Disable SSLv3 2015-01-07 15:19:39 -08:00
Matt Simerson
0b936ac58f Merge pull request #191 from salvis/dkim_key_gen.sh-typo
Fix a stray quote in the generated 'dns' file.
2015-01-06 07:57:49 -08:00
Hans Salvisberg
8288b91753 Fix a stray quote in the generated 'dns' file. 2015-01-06 14:57:52 +01:00
Matt Simerson
c6918d10ca remove instances of: use lib 'lib' in lib/ and
plugins/
2015-01-04 17:13:50 -08: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
Jared Johnson
3db87b846c Merge pull request #188 from msimerson/dbm-default-perm
add group write permissions to default DBs
2015-01-04 14:40:38 -06:00
Matt Simerson
31fb710792 add group write permissions to default DBs 2015-01-04 12:22:51 -08:00
Matt Simerson
4226dfaa3e fcrdns: document the is_valid_localhost skip
with a logdebug line
2015-01-04 02:48:01 -05:00
Jared Johnson
07fad0ffd0 Merge pull request #187 from msimerson/fcrdns
fcrdns: add tests and improved localhost detection
2015-01-04 01:34:20 -06:00
Matt Simerson
033a40ed48 fcrdns: updated docs noting Auth-Results header 2015-01-04 02:05:51 -05:00
Matt Simerson
296219c603 fcrdns: add tests and improved localhost detection 2015-01-04 02:03:09 -05:00
Matt Simerson
ca064acfc0 Merge pull request #186 from smtpd/revert-168-warnings
Revert "Turn warnings into $qpsmtpd->log() calls"
2015-01-03 21:47:11 -08:00
Matt Simerson
4a11e2cb71 Revert "Turn warnings into $qpsmtpd->log() calls" 2015-01-03 21:45:59 -08:00
Matt Simerson
96c0e29ae3 correct HELO respond error causing timeout 2015-01-04 00:11:53 -05:00
Matt Simerson
60e33375b0 Merge pull request #185 from msimerson/master
remove leftover closing paren from PR #119
2015-01-03 21:08:11 -08:00
Mat
b7a6b7047b remove leftover closing paren from PR #119 2015-01-03 16:44:47 -05:00
Matt Simerson
5c8f6b69d0 Merge pull request #181 from jaredj/more-data-respond-tests
More complete tests for data_respond()
2015-01-01 18:59:21 -08:00
Jared Johnson
e21951629f Merge pull request #184 from flimzy/p0f-warnings
Silence some warnings when $p0f->{genre} is undefined
2014-12-31 11:27:09 -06:00
Jared Johnson
25f29dbbf6 Merge pull request #183 from flimzy/p0f-errors-redo
Fix error checking for socket connections
2014-12-31 11:26:01 -06:00
Jonathan Hall
bea2c4c379 Silence some warnings when $p0f->{genre} is undefined 2014-12-31 18:20:30 +01:00
Jonathan Hall
8bc0626c65 Fix error checking for socket connections
- IO::Socket::UNIX->new should never die, therefore...
- $@ is always undef when the eval exits, so...
- use $! instead
2014-12-31 18:09:48 +01: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