develooper Front page | perl.qpsmtpd.dev | Postings from May 2008

[svn:qpsmtpd] r881 - trunk/lib/Qpsmtpd

From:
radu
Date:
May 1, 2008 03:12
Subject:
[svn:qpsmtpd] r881 - trunk/lib/Qpsmtpd
Author: radu
Date: Wed Apr 30 23:20:45 2008
New Revision: 881

Modified:
   trunk/lib/Qpsmtpd/PollServer.pm

Log:
$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)

Modified: trunk/lib/Qpsmtpd/PollServer.pm
==============================================================================
--- trunk/lib/Qpsmtpd/PollServer.pm	(original)
+++ trunk/lib/Qpsmtpd/PollServer.pm	Wed Apr 30 23:20:45 2008
@@ -183,22 +183,26 @@
         return;
     }
     elsif ($rc == DENY) {
-        $self->respond(554, $msg || "Message denied");
+        $msg->[0] ||= "Message denied";
+        $self->respond(554, @$msg);
         $self->reset_transaction();
         return;
     }
     elsif ($rc == DENYSOFT) {
-        $self->respond(451, $msg || "Message denied temporarily");
+        $msg->[0] ||= "Message denied temporarily";
+        $self->respond(451, @$msg);
         $self->reset_transaction();
         return;
     } 
     elsif ($rc == DENY_DISCONNECT) {
-        $self->respond(554, $msg || "Message denied");
+        $msg->[0] ||= "Message denied";
+        $self->respond(554, @$msg);
         $self->disconnect;
         return;
     }
     elsif ($rc == DENYSOFT_DISCONNECT) {
-        $self->respond(451, $msg || "Message denied temporarily");
+        $msg->[0] ||= "Message denied temporarily";
+        $self->respond(451, @$msg);
         $self->disconnect;
         return;
     }



Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About