diff --git a/Changes b/Changes index 05a769b..97756c3 100644 --- a/Changes +++ b/Changes @@ -1,6 +1,19 @@ 0.29 - - [ many changes from cvs logs, gah ] + Many improvements to the forking server (qpsmtpd-forkserver) + + Plugin testing framework (Matt) + + Added Apache::Qpsmtpd (Apache/mod_perl 2.0 connection handler) + + Allow for multiple instances of a single plugin by using plugin:0 + notation (Robert) + + Fix CDB support so the server can work without it + + VRFY plugin support (Robert Spier) + + Added Makefile.PL etc to make it easier to build a package (Matt). Make the rhsbl plugin do DNS lookups in the background. (Mark Powell) @@ -10,14 +23,32 @@ Improve error messages from the Postfix module (Erik I. Bolsų, ) + make the maildir plugin record who the message was to (with a bit of improvements + this could make a decent local delivery plugin) + + Pass extra "stuff" to HELO/EHLO callbacks (to make it easier to + support SMTP extensions) + + Renamed the *HARD return codes to DENY_DISCONNECT and + DENYSOFT_DISCONNECT (DENYSOFT_DISCONNECT is new) + Mail::Address does RFC822 addresses, we need SMTP addresses. Replace Mail::Address with Peter J. Holzer's Qpsmtpd::Address module. + Don't keep adding ip addresses to the process status line ($0) when + running under PPerl. + + Include the date and time the session started in the process status line. + Add "plugin/virus/uvscan" - McAfee commandline virus scanner Inbound connections logged as soon as the remote host address is known when running under tcpserver. + Add Qpsmtpd::Auth (authentication handlers! See plugins/auth/) (John Peacock) + + Add a plugin hook for the DATA command + check_earlytalker - + optionally react to an earlytalker by denying all MAIL-FROM commands rather than issuing a 4xx/5xx greeting and disconnecting. (Mark @@ -27,7 +58,6 @@ Move relay flag to connection object (John Peacock): + add relay_client() method to Connection.pm - + Update Auth.pm module to set $connection->relay_client() + Remove $transaction->relaying() completely (due to popular demand) Split check_relay plugin into two plugins (John Peacock): diff --git a/STATUS b/STATUS index af4c050..a7ddf6c 100644 --- a/STATUS +++ b/STATUS @@ -2,7 +2,7 @@ New Name Suggestions ==================== ignite -flare +flare(mta) quench pez (or pezmail) @@ -10,9 +10,8 @@ pez (or pezmail) Near term roadmap ================= -0.29: +0.30: - Add the first time denysoft plugin - - Support email addresses with spaces in them (done) - Bugfixes 0.40: diff --git a/t/Test/Qpsmtpd.pm b/t/Test/Qpsmtpd.pm index 231db61..92d10e5 100644 --- a/t/Test/Qpsmtpd.pm +++ b/t/Test/Qpsmtpd.pm @@ -67,7 +67,7 @@ sub input { } sub config_dir { - './config'; + './config.sample'; } sub plugin_dir { @@ -97,7 +97,7 @@ sub run_plugin_tests { require Test::Builder; my $Test = Test::Builder->new(); - + $Test->plan( tests => $num_tests ); # Now run them diff --git a/t/addresses.t b/t/addresses.t index c19b586..2e261d0 100644 --- a/t/addresses.t +++ b/t/addresses.t @@ -19,11 +19,11 @@ my $command = 'MAIL FROM: SIZE=1230'; is(($smtpd->command($command))[0], 250, $command); is($smtpd->transaction->sender->format, '', 'got the right sender'); -my $command = 'MAIL FROM:<>'; +$command = 'MAIL FROM:<>'; is(($smtpd->command($command))[0], 250, $command); is($smtpd->transaction->sender->format, '<>', 'got the right sender'); -my $command = 'MAIL FROM: SIZE=1230'; +$command = 'MAIL FROM: SIZE=1230'; is(($smtpd->command($command))[0], 250, $command); is($smtpd->transaction->sender->format, '', 'got the right sender'); diff --git a/t/plugin_tests.t b/t/plugin_tests.t index 19c0390..e1f3050 100644 --- a/t/plugin_tests.t +++ b/t/plugin_tests.t @@ -1,5 +1,4 @@ #!/usr/bin/perl -w - use strict; use lib 't'; use Test::Qpsmtpd; diff --git a/t/qpsmtpd-address.t b/t/qpsmtpd-address.t index 819a424..0964dc5 100644 --- a/t/qpsmtpd-address.t +++ b/t/qpsmtpd-address.t @@ -63,6 +63,9 @@ $ao = Qpsmtpd::Address->new($as); ok ($ao, "new $as"); is ($ao->address, 'foo@example.com', "address $as"); +# Not sure why we can change the address like this, but we can so test it ... +is ($ao && $ao->address('test@example.com'), 'test@example.com', 'address(test@example.com)'); + $as = ''; $ao = Qpsmtpd::Address->new($as); ok ($ao, "new $as"); @@ -72,7 +75,5 @@ $as = 'foo@foo.x.example.com'; ok ($ao = Qpsmtpd::Address->parse($as), "parse $as"); is ($ao && $ao->address, $as, "address $as"); -# Not sure why we can change the address like this, but we can so test it ... -is ($ao->address('test@example.com'), 'test@example.com', 'address(test@example.com)');