Commit Graph

637 Commits

Author SHA1 Message Date
Andreas Erhard bf64ac9699
Fix received_line hook behaviour (#312) 2023-09-05 08:35:04 -07:00
Kjetil Kjernsmo 4b1dc39dd6
Release 1.00 (#307)
* Update changelog
* Bump version
2023-02-16 22:33:46 -08:00
tlavoie dc7ac3c696
Adding IP address to logs for 535 LOGIN errors, to use with fail2ban (#301) 2021-08-19 15:17:28 -07:00
Daniel B 03c9d045f4 Check $addr is defined before using it (#266)
Prevent the following error if we receive an invalid RCPT TO (eg <"relaytest%nmap.scanme.org">)

Can't call method "qp" on an undefined value at /usr/share/perl5/vendor_perl/Qpsmtpd.pm line 451.
/usr/bin/qpsmtpd-forkserver[17472]: command 'rcpt' failed unexpectedly
2016-05-15 10:19:02 -07:00
Daniel B 9f599f9f47 Record the name of the original plugin (#256)
When using the naughty plugin to defer rejection, we loose the name of the original plugin which caused the reject.
Especially when we parse the logterse plugin output to build graphs. With this addition, we now can get this information back
2016-04-25 06:13:52 -10:00
Daniel B 260bd6cdd6 Prevent credentials being logged in plain text (#249)
* Prevent credentials being logged in plain text
except in the highest debug level

* Fix missing semicolon
2016-04-19 18:10:28 -10:00
Matt Simerson d3546f9501 update Changes, bump version 2016-02-16 14:50:16 -08:00
Jared Johnson 88c55ed9a3 Emit detailed warning on unuseable default db dirs 2015-03-09 17:17:26 -05:00
Jared Johnson 1ae8ed206f More useful exception on invalid db_dir 2015-03-09 17:17:26 -05:00
Jared Johnson 84aa8e2328 Die when an invalid dir is specified manually 2015-03-09 17:17:26 -05:00
Jared Johnson 6b13e24221 Add perms test to Qpsmtpd::DB::File::DBM::dir() 2015-03-09 17:17:26 -05:00
Jared Johnson 15a297372d Default to one-second connect timeout for Redis 2015-02-23 14:32:42 -06:00
Jared Johnson 42c551944e Add some validation for passed db args 2015-02-23 14:13:39 -06:00
Jared Johnson 4c9bcc0ee4 Configure but don't connect to DB in init_db()
This allows us to start up QP even if e.g. Redis is down
2015-02-23 11:25:18 -06:00
Matt Simerson affd8c3f93 limit split = to 2 fields
(for cases where the field had more than one = sign)
2015-02-11 12:51:58 -08:00
Matt Simerson 6687df2b6e Merge pull request #224 from salvis/can-on-unblessed-ref
Fix FATAL PLUGIN ERROR [whitelist]:  Can't call method "can"...
2015-02-05 17:37:33 -08:00
Hans Salvisberg 17c35c385d Fix FATAL PLUGIN ERROR [whitelist]: Can't call method "can" on unblessed reference at lib/Qpsmtpd/Config.pm line 38, <STDIN> line 1. 2015-02-06 02:16:33 +01:00
Jared Johnson dcdda3a5e7 Don't interpret invalid return codes as OK 2015-02-03 17:01:52 -06:00
Jared Johnson b3f8ce6b07 Tests for error logging in run_continuation() 2015-02-03 16:44:06 -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
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 98d148a0bf refactor start_connection 2015-01-29 00:04:13 -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
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 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 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
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
Priyadi Iman Nurcahyo 3ef92f214e Change Received header ordering when using SSL 2015-01-13 05:40:16 +00: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
Matt Simerson 31fb710792 add group write permissions to default DBs 2015-01-04 12:22:51 -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
Jared Johnson a308e53aa7 Merge pull request #156 from msimerson/smtp
moved SMTP changes into new PR
2014-12-30 16:47:23 -06: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
Jared Johnson 6e3e605c66 Avoid test failure when Redis.pm is unavailable 2014-12-30 15:10:32 -06:00
Jared Johnson 80e4629f9d Qpsmtpd::DB::Redis simplifications 2014-12-30 14:53:53 -06:00
Jared Johnson 11646b9a27 Add Qpsmtpd::DB testing and more greylist testing 2014-12-30 14:53:53 -06:00
Jared Johnson fa2ca922c5 Add Qpsmtpd::DB::Redis 2014-12-30 14:53:53 -06:00
Jared Johnson ecb6d2c1d5 Update Qpsmtpd::DB to work with multiple stores 2014-12-30 14:53:53 -06:00
Jared Johnson ba659461b5 Avoid warnings for Qpsmtpd::Address->new(undef) 2014-12-30 13:51:04 -06:00
Matt Simerson e9497d7e51 moved SMTP changes into new PR 2014-12-26 22:15:05 -08: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 4d59ce8406 Fix unstable use of $1 in Qpsmtpd::warn_level() 2014-12-17 16:11:12 -06:00
Jared Johnson 1d01a85542 Change qw() to qw[] in warn_level() 2014-12-15 20:22:28 -06:00