On Thu, 08 May 2008 20:57:12 +0200 Stefan Priebe <[EMAIL PROTECTED]> wrote: > At the moment i'm using qpsmtpd 0.40. Has there anything changed since > that - regarding tls? Otherwise it will not work. We've discussed this There were some changes, which do not affect this problem. With your tls version and the current trunk this also works.
> point a few month ago - it was / is a bug / problem in the > IO::Socket::SSL Module or tls plugin. Yes, seems like I missed to undef the socket at that time. My first attempt looked like this patch without the $self->connection->notes('tls_socket', undef); line. Seems like it never goes out of scope, see IO::Socket::SSL -> LIMITATIONS. Hmm, a Qpsmtpd::Connection::DESTROY is just called at the beginning of an SSL connection (when the clone()d connection is set to the current). This also works, with no workaround in plugins/tls. Matt, Ask: Ok to commit this and remove the tls-prefork workaround (maybe also undef any transaction notes)? Index: lib/Qpsmtpd/TcpServer/Prefork.pm =================================================================== --- lib/Qpsmtpd/TcpServer/Prefork.pm (revision 890) +++ lib/Qpsmtpd/TcpServer/Prefork.pm (working copy) @@ -59,6 +59,7 @@ $self->log(LOGINFO,"click, disconnecting"); $self->SUPER::disconnect(@_); $self->run_hooks("post-connection"); + $self->connection->reset; die "disconnect_tcpserver"; } Index: lib/Qpsmtpd/Connection.pm =================================================================== --- lib/Qpsmtpd/Connection.pm (revision 890) +++ lib/Qpsmtpd/Connection.pm (working copy) @@ -108,6 +108,12 @@ $self->{_notes}->{$key}; } +sub reset { + my $self = shift; + $self->{_notes} = undef; + $self = $self->new; +} + 1; __END__