Commit Graph

619 Commits

Author SHA1 Message Date
Radu Greab
6fc25099b0 Revert #923, there are objections against it because it is good to know why the reverse DNS lookup failed.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@924 958fd67b-6ff1-0310-b445-bb7760255be9
2008-06-03 07:35:59 +00:00
Radu Greab
6db489e4f9 Set connection remote_host only when the reverse DNS lookup is successful.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@923 958fd67b-6ff1-0310-b445-bb7760255be9
2008-06-02 16:48:57 +00:00
Radu Greab
4c93c85f55 Create async version of dns_whitelist_soft, rhsbl and uribl plugins.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@921 958fd67b-6ff1-0310-b445-bb7760255be9
2008-06-02 15:51:04 +00:00
John Peacock
14a77718f8 Preserve connection notes as part of cloning the object (e.g. after STARTTLS). Typo noticed in plugins/tls.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@917 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-26 21:25:44 +00:00
Hanno Hecker
a05b334b44 reset the original connection object like we reset all connection objects at the end of a connection
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@913 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-18 05:55:30 +00:00
Hanno Hecker
d7ef2ac660 prefork: post-connection hook was not called every time a client disconnects
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@912 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-17 09:33:33 +00:00
Matt Sergeant
96d3f6d40a Remove obsolete qpsmtpd-server
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@904 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-12 17:25:44 +00:00
Matt Sergeant
4578cd6eff Make sure non-responding hooks are called appropriately
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@903 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-12 17:19:31 +00:00
Hanno Hecker
c7c6e3afb9 apache: add post-connection hook, connection->reset
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@902 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-12 15:33:28 +00:00
Hanno Hecker
a9e2089ab7 async: check return values from pre-connection hook
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@900 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-12 14:42:41 +00:00
Hanno Hecker
b901440dfe oops, remove debug "warn ..."
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@899 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-10 06:03:57 +00:00
Hanno Hecker
7ad1054507 add connection->reset also for -async
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@897 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-10 05:55:56 +00:00
Hanno Hecker
104c8b1710 add pre- and post-connection hooks to -async
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@896 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-10 05:53:39 +00:00
Matt Sergeant
cbf652d96b Support original_string in Apache
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@895 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-09 18:17:38 +00:00
Hanno Hecker
ea243c2f2f add reset() to Qpsmtpd::Connection to clear the connection notes after
the post-connection hooks - needed for -prefork and STARTTLS


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@893 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-09 17:40:31 +00:00
Matt Sergeant
b0cc017e9e Provide original_string in PollServer
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@892 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-09 15:27:11 +00:00
Matt Sergeant
f315e1c193 Make tls work on async
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@884 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-05 12:22:18 +00:00
Matt Sergeant
bb724645a7 Don't continually check ->isa() for continue/pause_read - use OO properly
Support case where no connect hook is defined (thus continue_read() never gets called)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@882 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-02 17:50:29 +00:00
Radu Greab
b2532e8daa $msg is an arrayref, dereference it before passing to $self->respond.
Before this, the SMTP responses contained the reference stringification
instead of the real message, when a plugin denied the mail at the DATA
stage:
 
  554 ARRAY(0x9362f10)

git-svn-id: https://svn.perl.org/qpsmtpd/trunk@881 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-01 06:20:45 +00:00
Radu Greab
8dda36cf02 New fix for the problem of End-of-data splitted across packets.
Previous fix does not work for other cases, for example: packet ends
with CRLFdot, next packet starts with CRLF.

Danga::Client will send now full text lines to the callback.

git-svn-id: https://svn.perl.org/qpsmtpd/trunk@878 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-01 06:15:32 +00:00
Radu Greab
90e60d3d4f Allow plugins to use the post-fork hook.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@877 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-01 06:11:22 +00:00
Matt Sergeant
ea3f2cd7b7 Make sure we check for \r\n before we fixup the CRs
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@876 958fd67b-6ff1-0310-b445-bb7760255be9
2008-04-15 12:09:54 +00:00
Matt Sergeant
e93284caaa Fix for when a regular DATA packet starts with "." but isn't End-of-data
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@875 958fd67b-6ff1-0310-b445-bb7760255be9
2008-04-14 12:24:18 +00:00
Matt Sergeant
d0d7412f22 Fix auth and tls in light of globalised hooks
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@874 958fd67b-6ff1-0310-b445-bb7760255be9
2008-04-08 10:34:25 +00:00
Hanno Hecker
ddc1b91964 make hook_*_parse() work again
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@872 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-20 06:27:42 +00:00
Matt Sergeant
c076c10eae fix die() message
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@870 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-18 20:30:16 +00:00
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
John Peacock
b808a139cf * lib/Qpsmtpd/Transaction.pm
IO::File is buffering the message, so that the AV software doesn't get a
  a chance to scan anything when size_threshold > 0.

* qpsmtpd
  Apparently no one is running tcpserver any longer, since it wasn't loading
  the plugins anymore.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@550 958fd67b-6ff1-0310-b445-bb7760255be9
2005-09-23 19:16:37 +00:00
John Peacock
4b3fdf50bd * lib/Qpsmtpd.pm
By default, spool all messages to disk.

* config.sample/size_threshold
  Provide minimal explanation for how to avoid spooling small messages.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@549 958fd67b-6ff1-0310-b445-bb7760255be9
2005-09-22 17:29:13 +00:00
John Peacock
29ac60322e * lib/Qpsmtpd.pm
Rename config file from memory_threshold to size_threshold to track the
  internal usage.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@548 958fd67b-6ff1-0310-b445-bb7760255be9
2005-09-22 17:19:47 +00:00
John Peacock
9cbf206a4a * lib/Qpsmtpd/TcpServer.pm
Don't try to load the plugins if they are already loaded.

* lib/Qpsmtpd/Transaction.pm
  Get the size_threshold by inheritance.
  Extract the spooling of the body as a new sub.
  Always spool the body when calling body_filename().
  Compare the body_size to the cached size_threshold.

* lib/Qpsmtpd.pm
  Cache the size_threshold and provide an accessor method.

* qpsmtpd-forkserver
  Initialize both the spool_dir and size_threshold caches before forking.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@547 958fd67b-6ff1-0310-b445-bb7760255be9
2005-09-22 17:14:20 +00:00
Devin Carraway
4a6f5dd2f0 Merge r529 from 0.31 branch (explicit config dir via $QPSMTPD_CONFIG).
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@539 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-31 08:48:04 +00:00
Devin Carraway
6f23c46e93 Generalize '$include' support from plugin configuration to cover all config
calls.  Add circular-reference checking.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@537 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-31 05:54:36 +00:00
Matt Sergeant
9d6faa39cb Migrate transaction(), reset_transaction() and connection() up to Qpsmtpd.pm
Minor bug fix for auth capability


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@533 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-29 18:05:08 +00:00
Matt Sergeant
72a3056e66 Default capabilities to an empty arrayref
Copy relay_client setting when cloning connection in tls


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@532 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-29 18:02:07 +00:00
Devin Carraway
deb3380d06 Apply slight variation on patch from Peter Holzer to allow specification of
an explicit $QPSMTPD_CONFIG variable to specify where the config lives,
overriding $QMAIL/control and /var/qmail/control if set.  The usual "last
location with the file wins" rule still applies.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@529 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-29 08:05:42 +00:00
Matt Sergeant
006f129c21 Merge in a bunch of changes from Bradfitz's Danga::Socket 1.40-1.43
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@519 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-19 15:37:14 +00:00
John Peacock
58f7129ada [merge from trunk] Use qmail/control/smtpdgreeting if it exists, otherwise
show the original qpsmtpd greeting (with version information).

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@518 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-19 14:20:05 +00:00
John Peacock
43aef48532 Correctly handle the case where smtpgreeting exists (append ESMTP) as well as
the case where it doesn't (display original Qpsmtpd greeting). 

git-svn-id: https://svn.perl.org/qpsmtpd/trunk@511 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-18 00:36:49 +00:00
Matt Sergeant
e8a9828e4e Notice /var/qmail/control dir (Joe Schaefer)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@510 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-15 21:15:44 +00:00
Matt Sergeant
162cf7d132 Notice /var/qmail/control dir (Joe Schaefer)
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@509 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-15 21:13:49 +00:00
John Peacock
3096164159 Support smtpgreeting file from qmail/control
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@508 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-15 10:35:23 +00:00
Matt Sergeant
2ca6e9d192 MERGE 503:505 FROM https://svn.perl.org/qpsmtpd/branches/0.31
Fix test failures due to hook renames
Fix redefined warnings due to hook renames


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@507 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-14 13:31:07 +00:00
John Peacock
3707751b42 This fixes the redefined warnings.
All plugins don't have register() any more, but they all have plugin_name().

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@505 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-14 11:05:11 +00:00
John Peacock
35f45f208b These changes to trunk were missed when 0.31 was branched.
r588@jpeacock (orig r490):  jpeacock | 2005-07-09 07:03:53 -0400
  r547@jpeacock:  jpeacock | 2005-07-02 07:20:17 -0400
  Replace pithy comment with something more neutral.
  Thanks Gordon Rowell <gordonr@gormand.com.au>
  r548@jpeacock:  jpeacock | 2005-07-02 07:24:21 -0400
  Example patterns for badrcptto plugin - Gordon Rowell <gordonr@gormand.com.au>
  r586@jpeacock:  jpeacock | 2005-07-09 06:54:47 -0400
  Don't use varlog() directly unless you are passing all parameters.
  Don't try to log() anything during loading of logging plugins.
  r587@jpeacock:  jpeacock | 2005-07-09 06:59:57 -0400
  Cannot use new-style hooking with logging plugins (yet).
 
 r590@jpeacock (orig r491):  jpeacock | 2005-07-10 06:56:55 -0400
  r589@jpeacock:  jpeacock | 2005-07-10 06:54:32 -0400
  Track hooks as array and hash.
  Re-revert changes to logging plugins to use new-style hooking.
  logging/adaptive assumed that register() has been called before hook_logging.
 


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@503 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-14 02:31:01 +00:00
Matt Sergeant
54cff7af40 When setting OtherFds, always make it an addition to what's already set
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@498 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-12 20:40:32 +00:00
Matt Sergeant
e407e8b470 MERGE r386:r480 FROM https://svn.perl.org/qpsmtpd/branches/high_perf
High perf branch merge and fixes


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@497 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-11 19:11:11 +00:00
Matt Sergeant
9683016276 MERGE r386:r480 FROM https://svn.perl.org/qpsmtpd/branches/high_perf
High perf branch merge and fixes


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@496 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-11 19:10:49 +00:00
Matt Sergeant
8c018d75ac Pass args to unrecognized_command
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@494 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-11 12:24:26 +00:00
John Peacock
1f7ece38f2 r589@jpeacock: jpeacock | 2005-07-10 06:54:32 -0400
Track hooks as array and hash.
 Re-revert changes to logging plugins to use new-style hooking.
 logging/adaptive assumed that register() has been called before hook_logging.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@491 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-10 10:56:55 +00:00
John Peacock
00c53652c9 r547@jpeacock: jpeacock | 2005-07-02 07:20:17 -0400
Replace pithy comment with something more neutral.
 Thanks Gordon Rowell <gordonr@gormand.com.au>
 r548@jpeacock:  jpeacock | 2005-07-02 07:24:21 -0400
 Example patterns for badrcptto plugin - Gordon Rowell <gordonr@gormand.com.au>
 r586@jpeacock:  jpeacock | 2005-07-09 06:54:47 -0400
 Don't use varlog() directly unless you are passing all parameters.
 Don't try to log() anything during loading of logging plugins.
 r587@jpeacock:  jpeacock | 2005-07-09 06:59:57 -0400
 Cannot use new-style hooking with logging plugins (yet).


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@490 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-09 11:03:53 +00:00
Matt Sergeant
8a3c3c40b0 tls support
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@489 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-08 16:50:24 +00:00
Matt Sergeant
c78dad0a3b Revert to proper versions
git-svn-id: https://svn.perl.org/qpsmtpd/branches/v031@481 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-07 20:10:03 +00:00
Matt Sergeant
a1324b5ddb Version 0.31 branch
git-svn-id: https://svn.perl.org/qpsmtpd/branches/v031@480 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-07 19:48:19 +00:00
Robert Spier
90daeb3786 r483@dog: rspier | 2005-07-06 21:17:00 -0700
The great plugin renaming in the name of inheritance and standardization commit.
 
 1. new concept of standard hook_ names.
 2. Plugin::init
 3. renamed many subroutines in plugins (and cleaned up register subs)
 4. updated README.plugins
 


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@479 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-07 04:17:39 +00:00
Ask Bjørn Hansen
254b4fd2b2 return 500 rather than 521 for DENY in the unrecognized_command hook
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@478 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-06 22:22:29 +00:00
Matt Sergeant
c3562e256d Allow DENY to be returned from unrecognised_command again
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@476 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-06 22:16:08 +00:00
Ask Bjørn Hansen
4f0c4d94a1 The unrecognized_command hook now understands the DENY_DISCONNECT return
and the DENY return is deprecated.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@473 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-06 21:52:45 +00:00
Matt Sergeant
d48cd2e37e No idea what that was doing in there...
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@472 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-06 20:36:02 +00:00
Matt Sergeant
71f6fc1dff Fix plugin docs to reflect reality
Re-order plugin docs to appear in the order things generally get called
Fix SMTP.pm to reflect what's documented in README.plugins :-)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@471 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-06 20:30:14 +00:00
Ask Bjørn Hansen
df5a2e9d95 bump version to 0.31-dev
From: 	  hjp@hjp.at
	Subject: 	PATCH: Return 421 if we are going to disconnect
	Date: 	July 3, 2005 1:23:21 PM PDT
	To: 	  qpsmtpd@perl.org

RFC 2821 says we should return 421, if we disconnect, not 450 or 451.

	hp



git-svn-id: https://svn.perl.org/qpsmtpd/trunk@459 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-04 14:39:29 +00:00
Ask Bjørn Hansen
3b7bfe9bce update the MANIFEST
various small tweaks

the README really could use some updating; yikes!


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@457 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-02 02:08:37 +00:00
Ask Bjørn Hansen
9eda52cd2c update changes file for 0.30.
bump version number.

plan to release this on tuesday


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@455 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-02 00:20:21 +00:00
Matt Sergeant
1f98f22376 Fix for when pipelining occurs we need to shift the pre-read data back onto
the socket and let the socket loop come back to this socket's data later.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@451 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-23 21:11:54 +00:00
Matt Sergeant
a268ec079a Make _respond methods work when only one value is returned
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@450 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-23 21:05:44 +00:00
Matt Sergeant
6047477c11 Get rid of horrible ticker() stuff and replace with AddTimer calls
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@447 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-22 19:40:57 +00:00
Matt Sergeant
be6b0e203c Fix a number of duh's in new code
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@446 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-22 18:56:58 +00:00
Matt Sergeant
bc3f52a380 Push enable/disable read call into lib/Qpsmtpd.pm
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@445 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-22 18:25:16 +00:00
Matt Sergeant
5853c3a011 Cleanup Timer code
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@444 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-22 18:24:34 +00:00
Matt Sergeant
cb047d9aa9 Timer support added to Danga::Socket
check_earlytalker updated to use timers
Few other code cleanups to make sure check-earlytalker is fully working


git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@441 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-21 20:02:14 +00:00
Matt Sergeant
b54c8ec46c Use flatten code instead of the over complex bucket manipulation
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@440 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-20 21:03:41 +00:00
Matt Sergeant
014efa87c4 Don't delete the buckets
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@437 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-18 18:58:30 +00:00
Matt Sergeant
a4517bdfa4 Continuation support
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@436 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-18 18:22:16 +00:00
Matt Sergeant
8b85efcfe8 There's a hole in my bucket, dear Liza, dear Liza.
There's a hole in my bucket, dear Liza, a hole.

Go fix it, dear Henry, dear Henry, dear Henry.
Go fix it, dear Henry, dear Henry, fix it.

With what shall I fix it, dear Liza ... with what?
With a patch from Joe Schaefer, dear Henry ... with a patch.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@434 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-17 13:33:57 +00:00
Matt Sergeant
9fbf25a708 More of the same.
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@430 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-08 22:25:28 +00:00
Matt Sergeant
1f036fee90 Move the stats code purely into the plugin so that this can be extended
easier.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@429 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-08 22:24:00 +00:00
John Peacock
662003437d * qpsmtpd-forkserver
Create a single Qpsmtpd::TcpServer object in the parent process and
     then rely on fork to let each child have it's own copy
     
 *   lib/Qpsmtpd/Plugin.pm
     Add new pre-connection and post-connection hooks
     
 *   README.plugins
     Document the above new hooks

 *   lib/Qpsmtpd.pm
     No longer have local value for trace_level() the first time through, which 
     was masking the global value (due to stupid search/replace error).
     Don't call log() from trace_level() since it is only ever called from
     within the varlog() sub when no logging plugin is registered.

 *   plugins/dnsbl
     Config line option to use DENY_DISCONNECT instead of DENY (since any IP
     on a blacklist should not have a chance to send anything for now).
     Add POD to document the new disconnect behavior

 *   lib/Qpsmtpd.pm
     Compatibility changes so test files continue to work
 
 *   t/Test/Qpsmtpd.pm
     Compatibility sub for core subs which call varlog() directly


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@428 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-25 20:07:58 +00:00
Matt Sergeant
25f2b302d7 Enforce stricture
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@427 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-25 16:36:14 +00:00
Matt Sergeant
42e49d493a Don't set an alarm if in connect mode.
Make fault() not return anything otherwise we get a "1" output in the stream


git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@426 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-23 14:17:43 +00:00
Matt Sergeant
56451a722f First, since EventLoop goes off and does other things, any PostLoopCallback
can signal "our" EventLoop to return.  To ensure we wait the full time, we
must loop around until the end condition is truly satisfied.



git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@425 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-23 13:06:08 +00:00
Matt Sergeant
3b9c5b69fd Move PLC managment into close() and call close() in DESTROY
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@424 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-23 12:59:57 +00:00
Matt Sergeant
26c40f989b Fix for in-memory code writing headers twice
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@423 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-20 12:39:29 +00:00
Matt Sergeant
ec9ddc09d2 Fix for in-memory code copying headers twice
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@422 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-20 12:39:05 +00:00
Matt Sergeant
62aebd2a3e Make number of accepts we perform lower if MAXCONNIP is used
Make connection hook get called after we do all the accept()s


git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@420 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-17 11:48:02 +00:00
Matt Sergeant
e3a5d6c3c6 Make post loop callbacks a local var so we don't have to iterate through as
much


git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@419 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-12 23:04:53 +00:00
Matt Sergeant
37c96a1773 Cache the hooks
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@418 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-12 22:08:37 +00:00
Matt Sergeant
e743c5903c Cache the peer_ip
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@417 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-12 22:08:20 +00:00
Matt Sergeant
c0c5078f82 Fix warning
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@416 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-12 12:58:13 +00:00
Matt Sergeant
726128aef6 Fixed typo in post_loop_callback name
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@414 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-09 13:49:40 +00:00
Matt Sergeant
8dad7435e5 Large number of patches from Brian Grossman to fix a number of bugs
Implement connection timeout


git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@413 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-09 13:43:40 +00:00
Ask Bjørn Hansen
6ca4bc388c Fix off-by-one line numbers in warnings from plugins (thanks to
Brian Grossman).

  update changes file with all (?) changes since 0.29


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@411 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-05 07:44:34 +00:00
Matt Sergeant
46cda05112 Much improved config server, especially the stats
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@410 958fd67b-6ff1-0310-b445-bb7760255be9
2005-04-28 21:38:43 +00:00
Matt Sergeant
cefae57394 Call PostEventLoop at end of Epoll event loop (same as poll() and kqueue)
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@408 958fd67b-6ff1-0310-b445-bb7760255be9
2005-04-28 21:37:01 +00:00
Matt Sergeant
536e1723c1 Added rudimentary configuration server when running in non-forking poll mode
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@407 958fd67b-6ff1-0310-b445-bb7760255be9
2005-04-26 02:46:45 +00:00
John Peacock
a5b362f9ff * lib/Qpsmtpd.pm
Remove needless restriction on temp_file()


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@406 958fd67b-6ff1-0310-b445-bb7760255be9
2005-04-18 14:40:33 +00:00
John Peacock
58ded6369d * lib/Qpsmtpd/Auth.pm
Fix some totally egregious spelling errors
 
 *  plugins/auth/auth_ldap_bind
    New plugin to authenticate against an LDAP database
    Thanks to Elliot Foster <elliotf@gratuitous.net>


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@404 958fd67b-6ff1-0310-b445-bb7760255be9
2005-04-12 19:59:52 +00:00
John Peacock
89fd516d8e Revamp Qpsmtpd::Constants so it is possible to retrieve the text
representation from the numeric (for logging purposes).  Add new logging
plugin, logging/adaptive, which logs at different levels depending on
whether the message was accepted/rejected.
 
 *  lib/Qpsmtpd/Constants.pm
    use hashes for storing return_codes and log_levels
    export accessor methods to retrieve the text representations
 
 *  lib/Qpsmtpd.pm
    Rename log_level() to trace_level() so as to not conflict with the same
    name in Qpsmtpd::Constants.
    Call return_code() to display the text form when logging
 
 *  plugins/logging/adaptive
    Better documentation
    Support named parameters and prefix
    Call return_code() to display the text form when logging
 
 *  plugins/logging/warn
    Include POD

 *  README.logging
    First pass at documenting the logging plugin API

 *  config.sample/loglevel
    New numbering scheme to map directly to syslog levels


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@401 958fd67b-6ff1-0310-b445-bb7760255be9
2005-03-29 20:15:53 +00:00
Matt Sergeant
172fee0798 Fix for corruption problem under Apache
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@400 958fd67b-6ff1-0310-b445-bb7760255be9
2005-03-27 17:54:35 +00:00
John Peacock
f72647a44c * lib/Qpsmtpd.pm
(_load_plugins): split plugin_line using awk style "magic" whitespace


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@399 958fd67b-6ff1-0310-b445-bb7760255be9
2005-03-25 12:30:37 +00:00
John Peacock
e331f6b248 Add plugable logging support include sample plugin which replicates the
existing core code.  Add OK hook.

*  lib/Qpsmtpd.pm
   (init_logger): replaced with log_level()
   (load_logging): NEW - load logging plugins without calling log()
   (log_level): NEW - set/get global $LogLevel scalar
   (log): now just a wrapper for varlog(); called only by core code
   (varlog): initializes logging if not already done, calls logging plugins
     in turn and falls back to interal logging unless plugins OK or DECLINED
   (_load_plugins): only display "Loading plugin" when actually loading one
   (run_hooks): load logging plugins without calling log(); add OK hook as
     else of the DENY* case
   (spool_dir): use global $Spool_dir scalar to cache location

*  lib/Qpsmtpd/Plugin.pm
   (%hooks): add "logging" and "ok"
   (register_hook): add local _hook to object cache
   (log): call varlog() with additional parameters hook and plugin_name
     except for logging hook
   (compile): add accessor sub for local _hook scalar

*  lib/Qpsmtpd/SMTP.pm
   (mail, rcpt): change loglevel to LOGALERT instead of LOGWARN for from/to

*  qpsmtpd-forkserver
   (REAPER): use package ::log() instead of warn()
   (main): defer calling log until $plugin_loader has been initialized
   (log): call logging using the $plugin_loader object

*  plugins/logging/warn
   NEW: sample plugin which replicates the core logging functionality

*  plugins/logging/devnull
   NEW: sample plugin which logs nothing (for testing multiple logging
     plugin functionality)

*  config.sample/logging
   sample configuration file for logging plugins

*  plugins/virus/uvscan
   plugins/virus/clamav
   Increase loglevel for non-serious warnings to LOGWARN from LOGERROR


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@398 958fd67b-6ff1-0310-b445-bb7760255be9
2005-03-24 21:16:35 +00:00
Matt Sergeant
ed4e06bcd2 Fix timeout code kicking in when PTR result is blank domain
git-svn-id: https://svn.perl.org/qpsmtpd/branches/high_perf@396 958fd67b-6ff1-0310-b445-bb7760255be9
2005-03-11 20:09:30 +00:00