Matt Simerson
31dbe00514
use perl DNS methods instead of shell cmds
2015-01-28 10:23:03 -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
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
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
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
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
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
963193dded
Disable SSLv3
2015-01-07 15:19:39 -08:00
Matt Simerson
c6918d10ca
remove instances of: use lib 'lib' in lib/ and
...
plugins/
2015-01-04 17:13:50 -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
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
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
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
Matt Simerson
993bd4e7df
spf: switch header appending hook
...
This doesn't really change anything, because the SPF plugin generally is listed in config/plugins before the `data_post` plugins that do content evaluation. This merely assures that regardless of the ordering of plugins in config/plugins, the SPF results header will be present.
2014-12-30 14:20:42 -08:00
Matt Simerson
a515e2b17c
Merge pull request #171 from priyadi/authresultfix
...
Authentication-Results header fix on data_post
2014-12-30 13:58:21 -08:00
Matt Simerson
ad30627e96
Revert "Improve error handling in p0f plugin"
2014-12-30 12:31:11 -08:00
Jonathan Hall
5ff0bfb27f
Improve error messages
...
- Add "p0f" to error output to aide in debugging
- Remove some no-ops which called only '... if $@', in a context
where $@ would never be set, or never be meaningful.
2014-12-30 06:29:06 -06:00
Jonathan Hall
86a1b312dc
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-30 06:23:33 -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
Priyadi Iman Nurcahyo
cae43900ca
Move dkim, domainkeys and dmarc plugins into data_post_headers phase
2014-12-24 02:50:50 +00:00
Priyadi Iman Nurcahyo
bd2f30bdad
Keep data_post hook, and add data_post_headers
2014-12-24 02:40:07 +00:00
Priyadi Iman Nurcahyo
f8c49b6067
Authentication-Results header fix on data_post
2014-12-23 18:53:13 +00:00
Jared Johnson
16126bd941
Less 'and'
2014-12-22 17:00:29 -06:00
Jared Johnson
bf8dc171a3
Don't disable greylist in absence of p0f argument
2014-12-22 16:09:41 -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
8de22de762
Try to load geoip1 before geoip2
2014-12-18 13:27:35 -06:00
Jared Johnson
9f93087675
Remove modifier from POD
2014-12-11 16:57:22 -06:00
Jared Johnson
dad4fb1d29
Remove unnecessary // from check_genre()
2014-12-11 16:49:49 -06:00
Jared Johnson
1e2c0a6f78
Fix missing assignment in ident/p0f rcpt_handler()
2014-12-11 16:29:26 -06:00
Jared Johnson
52c46cfec3
Fixes for ident/p0f register_genre_blocking
...
- Make regexes case-insensitive (I don't want to mess with modifiers)
- Don't compile non-regexes as regexes
2014-12-11 16:07:32 -06:00
Jared Johnson
45da377897
Fix variable name in ident/p0f that caused a crash
2014-12-11 15:12:17 -06:00
Jared Johnson
cb2f0ca104
Block clients with OS matching phrases and regexes
...
Not yet tested
2014-12-11 14:35:54 -06:00
Jared Johnson
bf1d6baf49
Modularize registering optional p0f hooks
2014-12-11 13:48:27 -06:00
Jared Johnson
4de1d388b9
Silence a warning in plugins/greylisting
2014-12-05 11:31:59 -06:00
Jared Johnson
b8e5e0a1b9
Make content log file configurable
2014-12-03 15:50:45 -06:00
Jared Johnson
6820a1f5fa
Add POD for content_log plugin
2014-12-03 10:01:31 -06:00
Jared Johnson
64c7519d7c
content_log_enabled: Accept multiple 'true' values
2014-12-03 09:57:27 -06:00
Jared Johnson
c77a3344d7
Rename enable_content_log to content_log_enabled
2014-12-03 08:57:05 -06:00
Jared Johnson
e95f1e294e
Add method to exclude messages from content log
2014-12-02 17:13:00 -06:00
Jared Johnson
edc8f7600d
Test content_log enable/disable logic
2014-12-02 17:08:07 -06:00
Jared Johnson
deb0fbba69
Fix broken semicolon
2014-12-02 16:54:03 -06:00
Jared Johnson
59ae9643e0
Add config to enable content log, on by default
2014-12-02 16:51:51 -06:00
Jared Johnson
50badecc48
Split out content log file name logic
2014-12-02 16:28:51 -06:00
Jared Johnson
893f45e333
Move karma_tool to Qpsmtpd::DB
...
Tested manually with karma_tool which has no test coverage
2014-11-27 22:24:08 -06:00
Jared Johnson
57c07b17b1
Remove unnecessary variable
2014-11-27 22:03:34 -06:00
Jared Johnson
fafeaf40a0
Init Qpsmtpd::DB in karma plugin
...
And remove old DBM subs
2014-11-27 21:49:07 -06:00
Jared Johnson
ef26c61b6d
Use Qpsmtpd::DB in karma plugin
...
And clean up a few things in Qpsmtpd::DB
2014-11-26 16:28:52 -06:00
Jared Johnson
72c9c79f31
Move the rest of DBM operations to Qpsmtpd::DB
2014-11-26 16:06:24 -06:00
Jared Johnson
1d29db66ff
Move some DBM functions to Qpsmptd::DB::File::DBM
...
Not everything is moved and Qpsmtpd::DB* does not yet have test coverage
2014-11-25 17:52:18 -06:00
Jared Johnson
a0c8baae8d
Add POD section pointing to per-recip db support
2014-11-25 10:42:47 -06:00
Jared Johnson
0c1498d44d
Drop documentation too
2014-11-24 18:48:40 -06:00
Jared Johnson
20cbbad9e8
Drop support for per-recipient greylist dbm files
...
This does not drop support for including the recipient in the greylist key.
Note that this was already broken for an indeterminate (long) amount of time
2014-11-24 18:18:21 -06:00
Jared Johnson
5fe9d80f9b
Clarify DBM-specific functions
...
This changes function names only
2014-11-24 17:09:42 -06:00
Jared Johnson
57985252dc
Add some POD
2014-11-21 16:54:27 -06:00
Jared Johnson
30dd9cafeb
Add some p0f results to message headers
2014-11-21 16:51:19 -06:00
Jared Johnson
ffefb6b1ec
Fix GeoIP add_headers() return code
2014-11-17 14:24:17 -06:00
Matt Simerson
fd11777892
Merge pull request #144 from grtodd/master
...
Add auth_imap plugin.
2014-11-15 12:08:25 -08:00
Matt Simerson
9966c34fd8
Merge pull request #149 from msimerson/fortune
...
fortune: fix bin detection
2014-11-14 13:22:45 -08:00
Jared Johnson
cf09a662ad
New convention for calling Qpsmtpd::Base stuff
...
I think
2014-11-13 16:29:52 -06:00
Jared Johnson
a3ae6c51f4
Shorter lines and more explicit default
2014-11-13 14:55:17 -06:00
Jared Johnson
0975b22582
Get rid of a warning
2014-11-13 14:19:34 -06:00
Jared Johnson
575dc73cdf
Use 'command line' instead of config() call
...
It's awful, but consistent
2014-11-13 13:40:04 -06:00
Jared Johnson
943b1fcaf3
Remove country_name header which is redundant
2014-11-13 11:13:15 -06:00
Jared Johnson
0f0495f09e
Explicit return
2014-11-13 11:13:15 -06:00
Jared Johnson
cf0d87610c
Make GeoIP headers optional
2014-11-13 11:13:15 -06:00
Jared Johnson
d22396c298
Add headers with GeoIP data
2014-11-13 11:13:15 -06:00
Jared Johnson
da3ed5ebbf
Fix missing $self
2014-11-13 11:13:15 -06:00
Jared Johnson
462e974d1e
leave register() if neither geoip module loads
2014-11-13 11:13:15 -06:00
Matt Simerson
26a77511b0
fortune: fix bin detection
2014-11-12 22:58:06 -08:00
Jared Johnson
3ffee33d33
Remove extraneous semicolons
...
They confuse my editor
2014-11-11 16:59:40 -06:00
Matt Simerson
03e7ef722c
geoip: skip lookups for localhost
2014-11-11 01:49:46 -05:00
Matt Simerson
3acc6dd3d9
updated MANIFEST with new bin/ file
2014-11-10 16:29:59 -08:00
Matt Simerson
4acf8602bd
update docs with geoip_asn note addition
2014-11-10 13:32:28 -08:00
Jared Johnson
2655e7b452
Add tests for exclude files
2014-11-06 17:02:27 -06:00
Jared Johnson
7fb80f35ab
Fix some broken variable names
2014-11-06 16:23:29 -06:00
Jared Johnson
81b55eb1ac
Support postgrey-style greylist exclusion files
...
Not yet tested
2014-11-06 16:21:10 -06:00
Graham Todd
fc50cc2629
Update pull request with suggested changes from feedback.
2014-11-06 15:37:40 -05:00
Matt Simerson
38d5523b35
Base: consistent DNS handling
2014-11-06 11:15:18 -08:00
Graham Todd
ceb7419578
Add auth_imap plugin.
2014-11-06 13:00:52 -05:00
Matt Simerson
954fa45f2d
added call to ->set_asn
2014-11-05 14:30:23 -08:00
Matt Simerson
54abd60239
strip off AS prefix
2014-11-05 14:30:23 -08:00
Matt Simerson
f2eda74074
ASN lookups now work
2014-11-05 14:30:22 -08:00
Matt Simerson
4eba2a39bc
remove unused var
2014-11-05 14:30:22 -08:00
Matt Simerson
c61dbb5734
added GeoIP2 support, partial ASN support
2014-11-05 14:30:22 -08:00
Matt Simerson
9862cdc042
geoip: simplify the get/set data bits
2014-11-05 14:30:22 -08:00
Jared Johnson
289c5b2ca6
Add RFC link
2014-11-03 16:14:51 -06:00
Jared Johnson
e9400cc085
Add missing $self and explicit return
2014-10-28 14:37:56 -05:00
Jared Johnson
179d6427fc
Consolidate greylist exclusions into exclude()
...
This makes for an easily overridden method for excluding hosts from greylisting with custom rules
2014-10-27 17:24:06 -05:00
Matt Simerson
4c314eb642
patch from Carlos Canau <Carlos@Canau.COM>
2014-10-02 15:25:57 -07:00
Matt Simerson
c3aa4c10d2
stunnel: cleanups
2014-09-17 23:00:31 -07:00