(patch remade against latest rspier/qpsmtpd)
added remote_port, local_ip, local_port, and local_host to $qp->connection, as the p0f plugin relies on it.
added notes to TcpServer.pm and the p0f plugin noting the dependence, and the lack of support for models other than tcpserver.
Signed-off-by: Robert <rspier@pobox.com>
Qpsmtpd::config now checks cache, hooks, qmail_config, default in this
order and returns the first match. In any case the returned value is
stored in the cache, so subsequent calls to Qpsmtpd::config return the
same value (unless the cache is cleared).
Trying to get SMTP auth working with alpine, I came across a bug.
Alpine sends AUTH PLAIN and waits for a 334 response, then sends the
auth string. According to the RFC, the server should reply with 334
and a nothing else, but in Auth.pm qpsmtpd responds with "334 Please
continue." the "Please continue" is interpreted as a non-zero
length initial challenge which causes alpine (and maybe other
clients?) to abort the session.
Signed-off-by: Charlie Brady <charlieb@budge.apana.org.au>
Signed-off-by: Robert <rspier@pobox.com>
Qpsmtpd::Transaction::body_filename() calls $self->body_spool() if the
message body has not already been spool to disk. This adds the same
check to Qpsmtpd::Transaction::body_fh()
It wasn't suitable to dup the body FH returned by plain old
body_fh(), so here's a separate function to return that.
Signed-off-by: Ask Bjørn Hansen <ask@develooper.com>
Improve Qpsmtpd::Transaction::add_recipient syntax
Update Qpsmtpd::Transaction::add_recipient to use slightly clearer
language, and add 'if $rcpt' to prevent undef recipients from
being added -- in this case, the '@_ and' syntax allowing this set
method to set undef is undesirable, since you shouldn't be adding undef as
a recipient.
Signed-off-by: Ask Bjørn Hansen <ask@develooper.com>
Qpsmtpd::Connection::notes() and Qpsmtpd::Transaction::notes() have
identicaly functionality; however, the POD documentation for Connection
notes is fairly brief while the documentation for Transaction notes is
longer and more helpful. This updates the Connection notes documention
to be consistent with its Transaction counterpart.
Qpsmtpd Connection and Transaction objects support notes() methods which
are conventionally used to pass data between plugins. This adds the
same functionality to Address objects. This should make it easier for
plugins to begin supporting message handling based on per-user
configuration directives.
Signed-off-by: Ask Bjørn Hansen <ask@develooper.com>
This reverts commit ea86b9fdb2.
Jared said...
I originally considered these functionally identical, but they are
not. The new code, called with, say, $txn->notes('discard',undef),
would result in evaluation as if it were a 'get' method rather than
setting the 'discard' note to undef. That seems quite dangerous. I
suggest either reverting the language back to the '@_ and' model, or
else doing something like:
Hook after receiving all headers lines. Defaults to nothing,
just continue processing. At this step, sender does not wait for a reply,
but we can stop him from sending remaining data by disconnecting.
(Cleaned up by Robert for english and coding style.)
Signed-off-by: Ask Bjørn Hansen <ask@develooper.com>
Signed-off-by: Robert Spier <robert@perl.org>
I've got many non-standard plugins and for a given
fatal error it is non-trivial to determine which of
them was to blame.
Perhaps this patch would be useful? (Against SVN,
not git, but I think that shouldn't matter too much..)
Steve
--
Stop blog&forum spam
http://blogspam.net/
The code feeds the results of $session->config('me') to
sprintf as part of the format string. In practice, this is
probably not a problem since hostnames don't contain percent
signs. However, it triggers a taint warning in perl 5.10,
making cram-md5 auth unusable.
This patch rewrites the sprintf to insert the 'me' value
using a %s format specifier.
(always worked on the second call due to the cache, but would return undef on the first call)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@955 958fd67b-6ff1-0310-b445-bb7760255be9