Commit Graph

676 Commits

Author SHA1 Message Date
Matt Sergeant
062e73b7bf Support for pluggable received headers
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@731 958fd67b-6ff1-0310-b445-bb7760255be9
2007-04-09 14:45:11 +00:00
Matt Sergeant
eb8a190e44 This fixes a really nasty bug that means that some (mostly spam, admittedly) mail would get missed.
What happens is if you pause the connection (needed if you YIELD for something)
then the line-reading loop exits, and never gets back there unless the client
sends more data. If the client is an abuser (i.e. pipelines) then you might
never get back to the read loop.
(yes, this was a bitch to track down :-))


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@730 958fd67b-6ff1-0310-b445-bb7760255be9
2007-03-28 21:33:10 +00:00
Matt Sergeant
ce879879b5 Async versions of these plugins
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@729 958fd67b-6ff1-0310-b445-bb7760255be9
2007-03-27 21:49:03 +00:00
Matt Sergeant
a375bc5302 Fix for when connection immediately disconnects
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@728 958fd67b-6ff1-0310-b445-bb7760255be9
2007-03-21 13:42:57 +00:00
Matt Sergeant
46acae5c7f More pollserver fixes
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@727 958fd67b-6ff1-0310-b445-bb7760255be9
2007-03-19 21:40:56 +00:00
Matt Sergeant
b1c9101bfa A few pollserver bug fixes
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@726 958fd67b-6ff1-0310-b445-bb7760255be9
2007-03-19 21:13:17 +00:00
Ask Bjørn Hansen
313f285847 Added tests for the rcpt_ok plugin (Guy Hulbert, issue #4)
http://code.google.com/p/smtpd/issues/detail?id=4



git-svn-id: https://svn.perl.org/qpsmtpd/trunk@725 958fd67b-6ff1-0310-b445-bb7760255be9
2007-03-15 06:55:24 +00:00
Ask Bjørn Hansen
5c9e3d6004 greylisting: fix db_dir configuration option so it actually works
(kitno455, issue #6)

  http://code.google.com/p/smtpd/issues/detail?id=6



git-svn-id: https://svn.perl.org/qpsmtpd/trunk@724 958fd67b-6ff1-0310-b445-bb7760255be9
2007-03-15 06:51:37 +00:00
Ask Bjørn Hansen
cc00c1d9ff rename %ARGS to %PERMITTED_ARGS
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@723 958fd67b-6ff1-0310-b445-bb7760255be9
2007-03-15 06:49:23 +00:00
Ask Bjørn Hansen
e6ee4c486b Correct header parsing of "space only" lines (Joerg Meyer)
(issue #11 - http://code.google.com/p/smtpd/issues/detail?id=11 )


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@722 958fd67b-6ff1-0310-b445-bb7760255be9
2007-03-15 06:13:18 +00:00
Hanno Hecker
88d0125eae add run_hooks('post-connection') in ./qpsmtpd
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@719 958fd67b-6ff1-0310-b445-bb7760255be9
2007-03-03 10:50:45 +00:00
Matt Sergeant
237bf904a5 Quiet warnings (Steve_p)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@714 958fd67b-6ff1-0310-b445-bb7760255be9
2007-02-13 18:29:47 +00:00
John Peacock
76d3fe44db Correct way to support check_earlytalker with PollServer.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@712 958fd67b-6ff1-0310-b445-bb7760255be9
2007-02-07 22:25:44 +00:00
John Peacock
fea300ed2e Add authenticated method to base Qpsmtpd object.
Add _auth field to PollServer.
Make sure that check_earlytalker works with PollServer.

git-svn-id: https://svn.perl.org/qpsmtpd/trunk@711 958fd67b-6ff1-0310-b445-bb7760255be9
2007-02-07 21:49:45 +00:00
Robert Spier
bcbe814165 copy 0.3x to trunk
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@710 958fd67b-6ff1-0310-b445-bb7760255be9
2007-02-03 07:51:30 +00:00
Matt Sergeant
30a1c71efc More qpsmtpd-async merges
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@707 958fd67b-6ff1-0310-b445-bb7760255be9
2007-02-02 23:47:26 +00:00
Matt Sergeant
be67f02dd8 Fix tests (idea from Guy Hulbert, with tweak from me).
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@706 958fd67b-6ff1-0310-b445-bb7760255be9
2007-01-11 23:52:51 +00:00
Robert Spier
02edd1a32a mct noticed that we weren't properly testing for ESMTP.
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@704 958fd67b-6ff1-0310-b445-bb7760255be9
2007-01-06 20:22:01 +00:00
Robert Spier
a30506e9b6 RFC3848 support for ESMTP.
Heavily based on:
From: Nick Leverton <nj@leverton.org>
To: qpsmtpd@perl.org
Subject: SMTPA
Date: Thu, 4 Jan 2007 12:08:16 +0000
Message-Id: <200701041208.17018@leverton.icritical.com>



git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@703 958fd67b-6ff1-0310-b445-bb7760255be9
2007-01-06 06:58:08 +00:00
Ask Bjørn Hansen
e7d64268e0 Update the sample configuration to use zen.spamhaus.org
take out ordb and mail-abuse references from sample config and the website



git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@702 958fd67b-6ff1-0310-b445-bb7760255be9
2007-01-06 02:25:45 +00:00
Hanno Hecker
d54a960f9a undo r700 (skip plugin)
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@701 958fd67b-6ff1-0310-b445-bb7760255be9
2007-01-01 12:47:46 +00:00
Hanno Hecker
39a9271213 New "skip plugin API" + example plugin skip_plugins, see perldoc
Qpsmtpd::Plugins for more info. This can be used to disable (and re-
enable) loaded plugins for the current connection.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@700 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-31 11:07:32 +00:00
Hanno Hecker
6eefa97016 some fixes from Michael C. Toren:
- Treat DENY(|SOFT)_DISCONNECT from connect hooks the same as DENY(|SOFT)
 - only append ESMTP to smtpgreeting if it's not already in there
 - Qpsmtpd::SMTP::fault(): parsing now unambigous and just first "word" of $0
see also http://www.nntp.perl.org/group/perl.qpsmtpd/5905


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@699 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-25 10:12:54 +00:00
Ask Bjørn Hansen
dcb86d5a72 take out ordb.org from the sample dnsbl config; s/sbl/sbl-xbl/
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@698 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-18 19:46:26 +00:00
Ask Bjørn Hansen
cab7466c08 Make the badmailfrom plugin support (optional) rejection messages after the
rejection pattern (Robin Hugh Johnson)



git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@697 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-18 10:45:25 +00:00
Ask Bjørn Hansen
e31d3e3e4b documentation typo in clamav, update changes file a bit
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@696 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-18 10:45:22 +00:00
Hanno Hecker
ad541f6207 Qpsmtpd::Transaction: add body_fh(), body_length() and data_size(),
depreceated body_size()


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@689 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-16 11:56:48 +00:00
Peter J. Holzer
469c01a1f4 Increased log level of SMTP commands and responses to LOGINFO.
These may be useful during normal operations.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@685 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-16 10:01:50 +00:00
Peter J. Holzer
c581b10628 Reduce the log level of the "running plugin" message to LOGDEBUG.
The mere fact that a plugin was called is only useful for debugging.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@684 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-16 09:56:09 +00:00
Peter J. Holzer
d6c428716f Check if the domain name in a DNS response packet matches one of the
domain names we queried.
See the thread "dnsbl or spamhaus occassionally blocks wrong IP" 
starting at 14 Mar 2006 for details.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@683 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-16 09:46:12 +00:00
Peter J. Holzer
72da879365 Ensure that each child process in qpsmtpd-forkserver will use a
differenct sequence of ids in DNS requests.
See the thread "dnsbl or spamhaus occassionally blocks wrong IP"
starting at 14 Mar 2006 for details.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@682 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-16 09:42:52 +00:00
Peter J. Holzer
d2c79e9736 Added support for (x)inetd.
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@681 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-16 09:30:32 +00:00
Matt Sergeant
5fea527ba4 Remove debug print
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@680 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-08 20:55:47 +00:00
Matt Sergeant
2b709d664c Async qpsmtpd (still entirely compatible with non-async version)
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@679 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-08 19:46:18 +00:00
Matt Sergeant
0449fbfb50 Fix a showstopper of a bug in Command.pm which meant all commands would be parsed wrong
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@678 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-08 19:37:47 +00:00
Hanno Hecker
8b50f9f0dd removed spamassassin doc from dnsbl
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@677 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-07 10:29:41 +00:00
Matt Sergeant
e299135526 Initial work for continuations (and thus the async server).
(intention is to check bits in that don't break anything, so we can
always return to a stable base)


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@676 958fd67b-6ff1-0310-b445-bb7760255be9
2006-11-30 22:10:55 +00:00
John Peacock
b7f468404b Fixup qpsmtpd-prefork, et al, to correctly load Constants.
Make child process pretty name optional for qpsmtpd-prefork.
Ignore rather than crash for uninstalled plugins.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@675 958fd67b-6ff1-0310-b445-bb7760255be9
2006-11-22 16:30:37 +00:00
Devin Carraway
ecb24ef131 Fix use of the default plugin dir path in the logging startup when no
plugin_dir is configured.  Slightly worsens duplication of code with
plugin_dir() to continue avoiding infinite recursion.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@674 958fd67b-6ff1-0310-b445-bb7760255be9
2006-11-08 10:25:45 +00:00
Peter J. Holzer
839eddc558 Older perls don't know constant AF_INET6, but don't mind a function
which is never called.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@673 958fd67b-6ff1-0310-b445-bb7760255be9
2006-11-06 09:06:39 +00:00
Devin Carraway
b52b7b50c2 Support configured greylisting db location, and look in the distro-friendly
directory /var/lib/qpsmtpd in addition to the previous $QPHOME locations.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@672 958fd67b-6ff1-0310-b445-bb7760255be9
2006-11-05 10:38:16 +00:00
Devin Carraway
af5f025b51 (Working) support for multiple plugin directories, with a fix from Nick
Leverton <nj|@|leverton.org>.  The inner _load_plugins() routine is changed to
load only a single plugin given a search path, and the (two) calls to it pass
in the configured list of plugin dirs.  The non-module case of _load_plugin()
simply loops on the plugin dir list until a matching plugin file is found;
the first match stops the search for that plugin, regardless of success or
failure in loading it.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@671 958fd67b-6ff1-0310-b445-bb7760255be9
2006-11-05 09:54:03 +00:00
Devin Carraway
02bf7b80e5 Fix startup of qpsmtpd-forkserver on hosts lacking Socket6 (it's not enough
to have 'use Socket6' in a conditional, it must be evalled also)


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@670 958fd67b-6ff1-0310-b445-bb7760255be9
2006-11-05 09:47:18 +00:00
John Peacock
0786b60699 Script to generate Qpsmtpd::Postfix::Constants from the Postfix source.
From Hanno Hecker (tweaks by John Peacock).

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@669 958fd67b-6ff1-0310-b445-bb7760255be9
2006-11-01 02:28:41 +00:00
John Peacock
86e202d19e Add program to extract Postfix constants from source files and generate
Qpsmtpd::Postfix::Constants (to be used by postfix-queue).
Patch by Hanno Hecker.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@668 958fd67b-6ff1-0310-b445-bb7760255be9
2006-11-01 02:08:30 +00:00
John Peacock
bdf3f983a7 Add hardcoded mapping between postfix's cleanup errors and corresponding
Qpsmtpd::DSN value.  (David Muir Sharnoff)

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@667 958fd67b-6ff1-0310-b445-bb7760255be9
2006-10-26 15:50:02 +00:00
John Peacock
da93a9ca3b Add log socket support to syslog plugin. (Peter Eisch)
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@666 958fd67b-6ff1-0310-b445-bb7760255be9
2006-10-25 17:07:27 +00:00
John Peacock
413d3c38d3 Sample tls_ciphers configuration should have HIGH as a default.
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@665 958fd67b-6ff1-0310-b445-bb7760255be9
2006-10-04 15:10:23 +00:00
John Peacock
6c3dc88f37 Buffer output of Qpsmtpd::TcpServer::respond() for broken clients who don't
follow RFC's for multiline responses.
Patch from Brian Szymanski <ski-qpsmtpd@allafrica.com>

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@664 958fd67b-6ff1-0310-b445-bb7760255be9
2006-10-04 13:49:49 +00:00
John Peacock
9c39c530b2 Allow override of TLS security methods using CIPHER_STRINGS passed to
IO::Socket::SSL.  Brian Szymanski <ski-qpsmtpd@allafrica.com>

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@663 958fd67b-6ff1-0310-b445-bb7760255be9
2006-10-04 13:39:27 +00:00