On Mar 5, 2009, at 22:06, jaredj wrote:

This makes hook_reset_transaction a bit more useful by running it on
disconnections.  It also ensures that hook_disconnect runs when the
client disconnects without QUITing.
---
lib/Qpsmtpd/SMTP.pm              |    1 +
lib/Qpsmtpd/TcpServer.pm         |    4 ++++
lib/Qpsmtpd/TcpServer/Prefork.pm |    5 +++++
3 files changed, 10 insertions(+), 0 deletions(-)
[...]
diff --git a/lib/Qpsmtpd/TcpServer.pm b/lib/Qpsmtpd/TcpServer.pm
index df9da9a..446870b 100644
--- a/lib/Qpsmtpd/TcpServer.pm
+++ b/lib/Qpsmtpd/TcpServer.pm
@@ -100,6 +100,10 @@ sub read_input {
    alarm $timeout;
  }
  alarm(0);
+  return if $self->connection->notes('disconnected');
+  $self->reset_transaction;
+  $self->run_hooks('disconnect');
+  $self->connection->notes(disconnected => 1);
}

Shouldn't there be something similar in Qpsmtpd::PollServer? (Or maybe put it in Qpsmtpd::SMTP to avoid the duplication).


 - ask

--
http://develooper.com/ - http://askask.com/


Reply via email to