[svn:qpsmtpd] r699 - branches/0.3x/lib/Qpsmtpd

[email protected] Mon, 25 Dec 2006 02:12:58 -0800 (PST)
Newsgroups perl.cvs.qpsmtpd
Message-ID <[email protected]>
Author: vetinari
Date: Mon Dec 25 02:12:54 2006
New Revision: 699

Modified:
   branches/0.3x/lib/Qpsmtpd/SMTP.pm

Log:
some fixes from Michael C. Toren


Modified: branches/0.3x/lib/Qpsmtpd/SMTP.pm
==============================================================================
--- branches/0.3x/lib/Qpsmtpd/SMTP.pm	(original)
+++ branches/0.3x/lib/Qpsmtpd/SMTP.pm	Mon Dec 25 02:12:54 2006
@@ -85,7 +85,8 @@
 sub fault {
   my $self = shift;
   my ($msg) = shift || "program fault - command not performed";
-  print STDERR "$0[$$]: $msg ($!)\n";
+  my ($name) = split /\s+/, $0, 2;
+  print STDERR $name,"[$$]: $msg ($!)\n";
   return $self->respond(451, "Internal error - try again later - " . $msg);
 }
 
@@ -100,12 +101,12 @@
 
 sub connect_respond {
     my ($self, $rc, $msg) = @_;
-    if ($rc == DENY) {
+    if ($rc == DENY || $rc == DENY_DISCONNECT) {
       $msg->[0] ||= 'Connection from you denied, bye bye.';
       $self->respond(550, @$msg);
       $self->disconnect;
     }
-    elsif ($rc == DENYSOFT) {
+    elsif ($rc == DENYSOFT || $rc == DENYSOFT_DISCONNECT) {
       $msg->[0] ||= 'Connection from you temporarily denied, bye bye.';
       $self->respond(450, @$msg);
       $self->disconnect;
@@ -113,7 +114,7 @@
     elsif ($rc != DONE) {
       my $greets = $self->config('smtpgreeting');
       if ( $greets ) {
-	  $greets .= " ESMTP";
+	  $greets .= " ESMTP" unless $greets =~ /(^|\W)ESMTP(\W|$)/;
       }
       else {
 	  $greets = $self->config('me')