Commit Graph

493 Commits

Author SHA1 Message Date
Matt Sergeant
2665f1f304 Doc fix
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@869 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-18 20:25:06 +00:00
Matt Sergeant
f475fd19e3 Remove remnants
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@868 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-18 19:43:31 +00:00
Matt Sergeant
f2e786d34f More updates to bring into line with current qpsmtpd, esp with regard to config and plugin locations.
Docs updated


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@867 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-18 19:36:25 +00:00
Matt Sergeant
6c42523a92 Removed obsolete plugin_dir method (now use config/plugin_dirs)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@866 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-18 19:21:00 +00:00
Matt Sergeant
9415a518df Fix nasty bug where body wouldn't be recorded if it came in a separate packet from the header.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@863 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-18 15:20:13 +00:00
Matt Sergeant
8e3c0cf33a fix config caching again - defaults weren't applied prior to this patch
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@862 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-18 15:19:20 +00:00
Matt Sergeant
31a498cfd7 Restore timers on reset
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@859 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-13 21:20:56 +00:00
Matt Sergeant
f84ba8eb92 Fairness patch - prevent bad pipelining clients from hogging the event loop
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@852 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-13 19:48:45 +00:00
Ask Bjørn Hansen
16e577c798 explain why the CDB config entries are not cached
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@847 958fd67b-6ff1-0310-b445-bb7760255be9
2008-02-14 18:42:54 +00:00
Matt Sergeant
214e7e0ec0 More crazy performance stuff
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@845 958fd67b-6ff1-0310-b445-bb7760255be9
2008-02-08 21:26:25 +00:00
Matt Sergeant
367c9a31a9 (much) Less stat calls by caching load_logging
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@844 958fd67b-6ff1-0310-b445-bb7760255be9
2008-02-01 20:59:18 +00:00
Ask Bjørn Hansen
bc5fd11804 bump version to 0.43rc1; update Changes
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@842 958fd67b-6ff1-0310-b445-bb7760255be9
2008-02-01 19:39:11 +00:00
Matt Sergeant
3553eee269 More small performance optimisations
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@841 958fd67b-6ff1-0310-b445-bb7760255be9
2008-02-01 19:06:35 +00:00
Matt Sergeant
238eb79841 Small performance improvement for logging and config hooks which don't need full continuation support
DashProfiler support (commented out)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@839 958fd67b-6ff1-0310-b445-bb7760255be9
2008-01-30 18:35:32 +00:00
Hanno Hecker
2f3a326e11 Pluggable hook "noop" with example plugin (noop_counter) and doc update.
... now check_earlytalker can be expanded to VRFY and NOOP (see RFC 1854, #2.1)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@836 958fd67b-6ff1-0310-b445-bb7760255be9
2008-01-24 18:43:34 +00:00
Hanno Hecker
bb75098a84 add missing entry "vrfy" in @hooks, to make hook_vrfy() work
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@834 958fd67b-6ff1-0310-b445-bb7760255be9
2008-01-19 15:09:07 +00:00
Hanno Hecker
e199f8b6b4 restore version to 0.42rc1
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@826 958fd67b-6ff1-0310-b445-bb7760255be9
2007-12-07 09:13:47 +00:00
Hanno Hecker
bf88f1ee99 Pluggable help, based on patch by Jose Luis Martinez
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@825 958fd67b-6ff1-0310-b445-bb7760255be9
2007-12-07 09:12:15 +00:00
Peter J. Holzer
0ea6a89dbe Made user() and host() setters as well as getters.
Suggested by mpelzer@gmail.com.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@824 958fd67b-6ff1-0310-b445-bb7760255be9
2007-12-05 16:43:33 +00:00
Matt Sergeant
8700e5c6fe Better config caching
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@821 958fd67b-6ff1-0310-b445-bb7760255be9
2007-12-03 17:44:14 +00:00
Matt Sergeant
c837f5d611 Fixed hook caching
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@818 958fd67b-6ff1-0310-b445-bb7760255be9
2007-11-19 16:57:03 +00:00
Matt Sergeant
c5dd26b6af Hook/plugin caching
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@814 958fd67b-6ff1-0310-b445-bb7760255be9
2007-11-16 15:06:30 +00:00
Matt Sergeant
d4dda86bfd Implement config caching properly (for async).
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@813 958fd67b-6ff1-0310-b445-bb7760255be9
2007-11-16 14:51:01 +00:00
Hanno Hecker
aa8ae14367 Fix issue #23, reported w/ patch by ulr...@topfen.net
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@812 958fd67b-6ff1-0310-b445-bb7760255be9
2007-10-27 09:05:04 +00:00
Hanno Hecker
7d4605fdbc remove the connection / transaction id feature for 0.42 release
- add back in after 0.42 is out? if yes: start implementing in -prefork 


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@809 958fd67b-6ff1-0310-b445-bb7760255be9
2007-10-09 12:00:43 +00:00
Matt Sergeant
7fa3918803 Revert bad Event::Lib changes
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@808 958fd67b-6ff1-0310-b445-bb7760255be9
2007-10-08 18:24:35 +00:00
Matt Sergeant
1e73edf94a Fix doubly declared variable
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@806 958fd67b-6ff1-0310-b445-bb7760255be9
2007-10-04 15:18:34 +00:00
Ask Bjørn Hansen
1d4eca3ab3 update changes and manifest
bump version to 0.42rc1


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@803 958fd67b-6ff1-0310-b445-bb7760255be9
2007-09-28 07:45:11 +00:00
Hanno Hecker
5081901361 remove commented code
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@801 958fd67b-6ff1-0310-b445-bb7760255be9
2007-09-26 18:02:24 +00:00
Hanno Hecker
85fd2dd40a fix uninitialized values (and empty ->id)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@800 958fd67b-6ff1-0310-b445-bb7760255be9
2007-09-26 07:02:15 +00:00
John Peacock
a6f5eb61d0 Missing fields for async server.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@799 958fd67b-6ff1-0310-b445-bb7760255be9
2007-09-25 14:10:49 +00:00
Ask Bjørn Hansen
c2f006723b prepare 0.41
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@797 958fd67b-6ff1-0310-b445-bb7760255be9
2007-09-24 21:00:11 +00:00
Ask Bjørn Hansen
4be7bb40e4 POD syntax cleanup (Steve Kemp)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@786 958fd67b-6ff1-0310-b445-bb7760255be9
2007-09-03 15:47:08 +00:00
Peter J. Holzer
af82701fff New id scheme: Start with a unique id for the Qpsmtpd::SMTP object,
then derive ids for connections and transactions from that via
simple counters.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@785 958fd67b-6ff1-0310-b445-bb7760255be9
2007-09-02 10:50:23 +00:00
Hanno Hecker
a5c22bcb7c Fix Qpsmtpd::Plugins::isa_plugin() with multiple plugin dirs (Gavin Carr)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@783 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-31 05:26:04 +00:00
Matt Sergeant
610672cb5f Switch rand() part of id to a sequence
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@782 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-30 20:50:39 +00:00
Peter J. Holzer
5ccdcca7b2 Connection id similar to the transaction id by Matt.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@780 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-30 20:19:30 +00:00
Peter J. Holzer
b57ee765de fixed assignment (=> instead of =).
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@779 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-30 20:18:42 +00:00
Matt Sergeant
e6113d586d More changes to the id generator
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@778 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-29 21:50:53 +00:00
Matt Sergeant
bf5d011d85 Update id generator again
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@777 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-29 21:37:33 +00:00
Matt Sergeant
3a85914315 Fixed local_port => remote_port
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@776 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-28 20:12:21 +00:00
Matt Sergeant
a7914ac0dc Support for $transaction->id to get a unique id for this transaction
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@775 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-28 18:42:01 +00:00
Hanno Hecker
9c91bb04e6 unrecognized command fix for http://code.google.com/p/smtpd/issues/detail?id=16
- the reporters poposed fix would have caused two messages for the client on
  return(DENY, ...) or a really unknown command.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@772 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-19 06:49:42 +00:00
Hanno Hecker
ff34740823 make the documented DENY{,SOFT}_DISCONNECT work in the data-post hook
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@771 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-15 16:11:36 +00:00
Matt Sergeant
3a8889ca27 Allow buffered writes (from Joe Schaefer)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@770 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-15 13:46:10 +00:00
Hanno Hecker
731e202025 Doc update for Apache 2.2: use AcceptFilter w/ Linux, FreeBSD
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@766 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-05 07:05:34 +00:00
Matt Sergeant
afed08ebcd Argh. Fixed cut & paste error
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@765 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-03 20:17:25 +00:00
Matt Sergeant
521a6f3f9e Fix bug which breaks queue plugins that implement continuations
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@764 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-03 20:16:01 +00:00
Hanno Hecker
8809fceb4a Better error message than
Can't locate object method "new" via package "Qpsmtpd::Plugin::logging::warn"
 (perhaps you forgot to load "Qpsmtpd::Plugin::logging::warn"?)
if plugin cannot be found in @plugin_dirs


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@762 958fd67b-6ff1-0310-b445-bb7760255be9
2007-07-31 06:37:45 +00:00
Ask Bjørn Hansen
86c0d8d95e Make connection->local_ip available from the Apache transport (Peter Eisch)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@761 958fd67b-6ff1-0310-b445-bb7760255be9
2007-07-31 00:06:15 +00:00
Ask Bjørn Hansen
2ef46f4694 change version numbers to 0.40
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@754 958fd67b-6ff1-0310-b445-bb7760255be9
2007-06-11 18:03:14 +00:00
Ask Bjørn Hansen
c80884a35b update manifest (bump to 0.40_02)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@752 958fd67b-6ff1-0310-b445-bb7760255be9
2007-06-08 01:09:40 +00:00
Ask Bjørn Hansen
5aeb37fb75 prepare 0.40_01 for tagging
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@749 958fd67b-6ff1-0310-b445-bb7760255be9
2007-06-06 17:07:05 +00:00
John Peacock
542db781a2 Always initialize variables if setting them is conditional.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@746 958fd67b-6ff1-0310-b445-bb7760255be9
2007-05-30 15:49:54 +00:00
Ask Bjørn Hansen
0a1cabf806 Fix logging when dropping a mail due to size (m. allan noah /
kitno455, issue #13)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@741 958fd67b-6ff1-0310-b445-bb7760255be9
2007-05-17 22:28:28 +00:00
Matt Sergeant
ccf990e032 IPv6 support from issue #7.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@740 958fd67b-6ff1-0310-b445-bb7760255be9
2007-05-17 22:16:27 +00:00
Matt Sergeant
fff01d4a66 Fix for issue #12: Bug in Qpsmtpd.pm when using multiple plugin dirs
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@738 958fd67b-6ff1-0310-b445-bb7760255be9
2007-05-17 22:07:05 +00:00
Matt Sergeant
ef7d885929 Allow plugin tests to be in subdir (as with plugins).
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@737 958fd67b-6ff1-0310-b445-bb7760255be9
2007-05-17 22:02:32 +00:00
Ask Bjørn Hansen
8009a316c6 make loglevels here consistent with the TcpServer.pm changes (from who knows when)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@734 958fd67b-6ff1-0310-b445-bb7760255be9
2007-05-11 07:52:35 +00:00
Matt Sergeant
c2e2f29878 Work around splitting up of return values in hooks
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@733 958fd67b-6ff1-0310-b445-bb7760255be9
2007-04-10 18:08:55 +00:00
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
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
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
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
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
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
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
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
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
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
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
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
a7a3031440 OK, really, this time the capitalization for AUTH mechanisms is correct.
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@662 958fd67b-6ff1-0310-b445-bb7760255be9
2006-09-24 14:55:48 +00:00
John Peacock
9028958307 Fix careless capitalization error
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@661 958fd67b-6ff1-0310-b445-bb7760255be9
2006-09-24 00:53:01 +00:00
John Peacock
d218bfea82 Correctly handle the case where a given AUTH mechanism is requested by a
[stupid] MUA, but isn't implemented with existing auth plugins.  Based on
patch from Brian Szymanski.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@660 958fd67b-6ff1-0310-b445-bb7760255be9
2006-09-22 15:31:28 +00:00
John Peacock
3837fabc9f Ask and ye shall receive
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@659 958fd67b-6ff1-0310-b445-bb7760255be9
2006-09-14 19:48:37 +00:00
Matt Sergeant
6a8111b6f6 Removed - CPAN version now very much up to date with this
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@658 958fd67b-6ff1-0310-b445-bb7760255be9
2006-08-29 16:51:34 +00:00
Ask Bjørn Hansen
6ef0bf27c7 r4175@embla: ask | 2006-08-28 01:17:10 +0200
Experimental IPv6 support (forkserver only). (Mike Williams)


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@657 958fd67b-6ff1-0310-b445-bb7760255be9
2006-08-27 23:17:33 +00:00
Matt Sergeant
b000e35bf9 More fields work
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@649 958fd67b-6ff1-0310-b445-bb7760255be9
2006-06-28 23:27:40 +00:00
Ask Bjørn Hansen
bf2419df33 r3744@embla: ask | 2006-06-28 13:04:50 -0700
Support "module" plugins ("My::Plugin" in the config/plugins file)
 


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@648 958fd67b-6ff1-0310-b445-bb7760255be9
2006-06-28 20:05:04 +00:00
Matt Sergeant
bcbe52f2f8 stats plugin doesn't have a register() function any more (Brian Grossman)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@646 958fd67b-6ff1-0310-b445-bb7760255be9
2006-06-27 20:28:36 +00:00
John Peacock
25d9fe85a8 Two patches from Robin Johnson:
Add SSL encryption method to FROM: header line.
Add new tls_before_auth configuration to hide AUTH until TLS is established.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@645 958fd67b-6ff1-0310-b445-bb7760255be9
2006-06-22 14:48:48 +00:00
Matt Sergeant
5ff2ef7cac fields patch from Brian Grossman
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@644 958fd67b-6ff1-0310-b445-bb7760255be9
2006-06-20 14:39:52 +00:00
Matt Sergeant
f31d18c6cd Simplify qpsmtpd script (remove inetd and forking server)
Greatly simplify Danga::Client due to no more need for line mode client
Update to latest Danga::Socket
Fix check_earlytalker to use new API
Fix Danga::DNS to use new API


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@643 958fd67b-6ff1-0310-b445-bb7760255be9
2006-06-20 13:51:32 +00:00
Ask Bjørn Hansen
b3bc12e587 r3599@embla: ask | 2006-06-15 17:15:06 -0700
Fix "help" command when there's no "smtpgreeting" configured (the default)
   (Thanks to Thomas Ogrisegg)
 


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@642 958fd67b-6ff1-0310-b445-bb7760255be9
2006-06-16 00:15:03 +00:00
John Peacock
67dc86e255 New pre-forking qpsmtpd daemon, courtesy of Lars Roland at SoftScan.
Initial load with minor tweaks by John Peacock.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@639 958fd67b-6ff1-0310-b445-bb7760255be9
2006-05-31 20:54:03 +00:00
John Peacock
508be70d26 ne is for strings, != is for numbers (Leonardo Helman)
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@636 958fd67b-6ff1-0310-b445-bb7760255be9
2006-04-26 15:31:03 +00:00
John Peacock
af93447e78 Redo AUTH PLAIN and AUTH LOGIN correctly(?) this time. (Michael Holzt)
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@634 958fd67b-6ff1-0310-b445-bb7760255be9
2006-04-24 15:48:24 +00:00
John Peacock
ff4e92bb4e Resolve ticket #38806 (Inadequate validation of authentication data)
Charlie Brady.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@633 958fd67b-6ff1-0310-b445-bb7760255be9
2006-04-07 19:21:10 +00:00
John Peacock
7c6cbdd000 Move the Qpsmtpd::Auth POD to a top-level README to be more obvious.
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@632 958fd67b-6ff1-0310-b445-bb7760255be9
2006-04-07 19:06:39 +00:00
John Peacock
8fcb46177b Add Qpsmtpd::Command to gather all parsing logic in one place (Hanno
Hecker)


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@631 958fd67b-6ff1-0310-b445-bb7760255be9
2006-04-07 18:58:02 +00:00
John Peacock
b89a6d9e4c * plugins/queue/smtp-forward
s/register/init/ to match new plugin style (jpeacock)

* lib/Qpsmtpd/Address.pm
  t/qpsmtpd-address.t
    Ill-formed addresses should return null not partial garbage.
    Resolves https://rt.perl.org/rt3/Ticket/Display.html?id=38746
    Patch by Hanno Hecker.

* plugins/virus/clamav
    Clamav alternate config file.
    Resolves https://rt.perl.org/rt3/Ticket/Display.html?id=38736
    Patch by Robin Bowes.

* lib/Qpsmtpd/SMTP.pm
  lib/Qpsmtpd.pm
    Return multiline responses from plugins.
    Resolves https://rt.perl.org/rt3/Ticket/Display.html?id=38741
    Patch by Charlie Brady.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@630 958fd67b-6ff1-0310-b445-bb7760255be9
2006-03-20 16:47:05 +00:00
John Peacock
3aa64debd8 remove way too agressive blocking of DENY'd servers
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@628 958fd67b-6ff1-0310-b445-bb7760255be9
2006-03-06 21:33:46 +00:00
John Peacock
bd19ded5a2 Need to cover situation where there are *no* hooks. Should we actually return
OK from run_hooks() in the case where no hooks are there to fire?

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@627 958fd67b-6ff1-0310-b445-bb7760255be9
2006-03-01 17:25:51 +00:00
John Peacock
82a32ed558 Automatically disconnect DENY'd server if it doesn't go willingly.
Implement queue_pre and queue_post hooks.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@626 958fd67b-6ff1-0310-b445-bb7760255be9
2006-03-01 16:46:55 +00:00
Ask Bjørn Hansen
3f8ab06a36 r4523@g5: ask | 2006-02-27 13:42:54 -0800
Improve Qpsmtpd::Transaction documentation (Fred Moyer)


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@622 958fd67b-6ff1-0310-b445-bb7760255be9
2006-02-27 21:43:08 +00:00
Ask Bjørn Hansen
351f0b7f7f r4521@g5: ask | 2006-02-27 13:41:09 -0800
set the version to 0.33-dev


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@620 958fd67b-6ff1-0310-b445-bb7760255be9
2006-02-27 21:43:00 +00:00
Ask Bjørn Hansen
d8d7b7a407 r4445@g5: ask | 2006-02-17 11:00:12 -0800
prepare for 0.32 -- plan release for next thursday
 r4446@g5:  ask | 2006-02-17 11:00:48 -0800
 tag 0.32rc1


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@615 958fd67b-6ff1-0310-b445-bb7760255be9
2006-02-17 19:02:02 +00:00
John Peacock
3574e75cd1 Better handling of <> in address comparisons
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@614 958fd67b-6ff1-0310-b445-bb7760255be9
2006-02-07 18:42:16 +00:00
John Peacock
6f145149ae Apparently, I never tested TLS and AUTH at the same time. It turns out
that you have to explicitely read from <STDIN> in order for IO::Socket::SSL
to correctly translate the data (i.e. reading from <> isn't sufficient).

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@612 958fd67b-6ff1-0310-b445-bb7760255be9
2006-02-07 02:03:00 +00:00
John Peacock
347e5d328f Oops, forgot to remove all traces of Qmsptmd::Auth while I was at it.
Also made auth_vpopmail_sql be quieter about problems authenticating.

git-svn-id: https://svn.perl.org/qpsmtpd/trunk@607 958fd67b-6ff1-0310-b445-bb7760255be9
2006-01-27 17:16:13 +00:00
John Peacock
29d739b009 Rename Qpsmtpd::Auth to README.authentication.
Replace tabs with spaces in a few plugins.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@606 958fd67b-6ff1-0310-b445-bb7760255be9
2006-01-26 21:36:34 +00:00
John Peacock
654179e8c8 Working AUTH support in PollServer mode. All AUTH code moved to
SMTP.pm (the Auth.pm POD will get renamed to README.authentication).


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@605 958fd67b-6ff1-0310-b445-bb7760255be9
2006-01-26 21:31:05 +00:00
John Peacock
1d0f889d3c Support for RFC 1893 - Enhanced Mail System Status Codes
Patch by Hanno Hecker <hah@uu-x.de>.

Adds the RFC 1893 status codes to the messages which are returned to the
sending client.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@602 958fd67b-6ff1-0310-b445-bb7760255be9
2006-01-25 02:59:31 +00:00
John Peacock
d228f9c11d this patch enables the configurable flags for the postfix-queue plugin.
By default no flags are set (old behaviour). Known flags for cleanup are
FLAG_FILTER, FLAG_BCC_OK and FLAG_MAP_OK, see POD for details.

Patch by: Hanno Hecker <hah@uu-x.de>

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@600 958fd67b-6ff1-0310-b445-bb7760255be9
2006-01-11 16:48:08 +00:00
John Peacock
c0920346e5 the pre-connection and post-connection hooks are not working in
qpsmtpd-forkserver. This patch merges Peter's patch (with the possibilty
to DENY/DENSOFT the connection) and my first attempt. The --max-from-ip
check was moved from core to the hosts_allow plugin. 

Patch by: Hanno Hecker <hah@uu-x.de>

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@599 958fd67b-6ff1-0310-b445-bb7760255be9
2006-01-11 16:21:08 +00:00
John Peacock
7c1c9ef01b Fix problems with tls and relay_client.
Merge r597 from branches/0.3x

git-svn-id: https://svn.perl.org/qpsmtpd/trunk@598 958fd67b-6ff1-0310-b445-bb7760255be9
2006-01-05 02:21:32 +00:00
John Peacock
bfcd620a83 Fix problems with tls and relay_client.
* lib/Qpsmtpd/Connection.pm
    Abstract out parameters which can be reused (e.g. TLS) or can be
    set when creating the Connection object via start().

* plugins/tls
    Simplify code to use $self->clone() construct and also suppress
    IO::Socket::SSL debug noise, now that this is working.

* plugins/tls_cert
    New file to automate creating self-signed certificates for TLS.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@597 958fd67b-6ff1-0310-b445-bb7760255be9
2006-01-05 02:12:46 +00:00
Matt Sergeant
1c2009764f Don't trap $self in the closure (causes circular refs and never gets freed)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@596 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-31 14:53:50 +00:00
Matt Sergeant
99e0455fa4 Fix long standing bug of returning 1 not DONE
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@594 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-30 19:49:38 +00:00
Matt Sergeant
67a6787625 Get alarm/timeout from a param
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@593 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-30 19:46:33 +00:00
Matt Sergeant
9c8df69be1 Fix caching bug with PTR records
Attempt to fix callback occurring immediately by calling it via AddTimer


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@590 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-30 19:35:10 +00:00
John Peacock
7cc114edd5 Eliminate the creeping use of warn() in favor of log() and make
more use of the "fd:#" code everywhere.

* lib/Qpsmtpd.pm
    Default log method use '$self->fd()' instead of '$self->{fd}'.
    Include a sub fd() method for inheritance purposes.

* lib/Qpsmtpd/PollServer.pm
    Inherit log() from Qpsmtpd.pm (via SMTP.pm).

* lib/Qpsmtpd/Plugin.pm
    Appropriate code allow plugins to inherit fd().

* plugins/dnsbl
    Use log() instead of warn().

* plugins/logging/adaptive
  plugins/logging/warn
    Include the 'fd:#' to the log line if defined.

* qpsmtpd
    Reorder things slightly so we can use log().

git-svn-id: https://svn.perl.org/qpsmtpd/trunk@589 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-30 17:03:14 +00:00
John Peacock
2535e77293 Merge branches/0.3x back to trunk.
Too many individual changes to document.  Trust me... ;-)

Lightly tested (i.e. it accepts and delivers mail with minimal plugins).

NOTES/LIMITATIONS: 
logging/adaptive currently eats some log messages.
auth_vpopmail_sql is currently broken (needs continuations?).
'make test' fails in dnsbl (no Test::Qpsmtpd::input_sock() method).


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@588 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-22 21:30:53 +00:00
Matt Sergeant
5910aa7292 Fix log bustage ($coworker)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@586 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-14 01:21:20 +00:00
Matt Sergeant
cc45e9a576 Prevent logging plugins from entering an infinite loop (use {_transaction}
rather than ->transaction() when passing to hook)
Merge some other changes from 0.31.1 branch


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@582 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-02 02:35:14 +00:00
Matt Sergeant
dfe9dda454 Don't run continuation if config
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@579 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-22 23:22:48 +00:00
Matt Sergeant
f5efe92bea Forgot pseudo hash entry
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@578 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-22 23:04:06 +00:00
Matt Sergeant
5994a79d9f Slight cleanup.
Support a finished() callback as the readable() thing didn't work.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@577 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-22 23:03:05 +00:00
Ask Bjørn Hansen
27975f5cee r6471@embla: ask | 2005-11-18 01:37:48 -0800
version 0.31.1


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@574 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-18 09:43:01 +00:00
Matt Sergeant
8454ed40bc With PollServer, I get several unrecognized commands before the disconnect
from plugins/count_unrecognized_commands kicks in.

Several buffered lines are read and processed by
Danga::Client::process_read_buf() without checking if the socket was
closed.  The attached patch seems to fix it.
-- Brian Grossman


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@571 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-16 15:04:37 +00:00
Ask Bjørn Hansen
440068cf5c Update Changes file
Fix typo in README.plugins

prepare for 0.31 to be released wednesday


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@564 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-14 09:05:46 +00:00
Matt Sergeant
a46a0345d5 Fix for removed pseudo hash
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@563 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-13 23:46:03 +00:00
Matt Sergeant
a405e64e1c Allow any type of query
Refactor some repeated code


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@561 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-11 14:28:47 +00:00
John Peacock
8a18bb00a1 * lib/Qpsmtpd/Address.pm
RFC-2821 Section 4.5.1 specifically requires <postmaster> (without
    domain name) as a legal RCPT TO: address.

* t/qpsmtpd-address.t
    Test the above.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@560 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-08 18:18:02 +00:00
John Peacock
37ec3b151e * lib/Qpsmtpd/Address.pm
Add POD to describe how to use the objects.  Make the addr_cmp 
    method private (no need to expose it).

* t/qpsmtpd-address.t
    Include tests of overloaded comparison, including sorting.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@559 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-02 18:48:32 +00:00
John Peacock
3b09cc25d7 * lib/Qpsmtpd/Address.pm
Don't overload '<=>' operator casually.  Swap host/user portion
    when comparing (makes it easy to sort by domain).

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@558 958fd67b-6ff1-0310-b445-bb7760255be9
2005-11-01 15:14:48 +00:00
John Peacock
7bc7916bda * lib/Qpsmtpd/Address.pm
Since we are already overloading stringify, we might as well
    overload comparisons as well (this may be too simplistic a test).

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@557 958fd67b-6ff1-0310-b445-bb7760255be9
2005-10-31 17:51:11 +00:00
John Peacock
5959cc1c32 * lib/Qpsmtpd/Auth.pm
lib/Qpsmtpd/SMTP.pm
    Take the AUTH method and put it in SMTP.pm where it belongs.

* lib/Qpsmtpd.pm
  lib/Qpsmtpd/Plugin.pm
    Expose the auth_user/auth_mechanism property to plugin writers.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@556 958fd67b-6ff1-0310-b445-bb7760255be9
2005-10-31 17:12:37 +00:00
Matt Sergeant
0a397e74a9 Support all resolvers in resolv.conf, and issue retries on errors the same
way gethostbyname() does.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@555 958fd67b-6ff1-0310-b445-bb7760255be9
2005-10-26 19:09:04 +00:00
John Peacock
e67bbed2ac * lib/Qpsmtpd/Transaction.pm
Doh!  I should flush() not close(), since other code assume the handle
    is still active.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@554 958fd67b-6ff1-0310-b445-bb7760255be9
2005-10-20 18:47:28 +00:00
John Peacock
a8b6956d81 * lib/Qpsmtpd/Transaction.pm
Fix fairly egregious error.  If the size_threashold is smaller than
    the body while writing, the file handle would be closed prematurely.
    Ouch.  I don't like it here from a stylistic point of view, but at 
    least it will actually work now.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@553 958fd67b-6ff1-0310-b445-bb7760255be9
2005-10-20 02:10:32 +00:00
John Peacock
e6efda626f * lib/Qpsmtpd/Address.pm
Convert objects to hash.  Neuter parse() to wrapper around new().
    Add overload stringify to $obj->format().

* t/qpsmtpd-address.t
    Remove tests specific to parse().  Add test for overloaded "".

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@552 958fd67b-6ff1-0310-b445-bb7760255be9
2005-10-10 15:49:50 +00:00