I totally agree with you.
A qpsmtpd-dev branch will speed tests allot.

José Borges Ferreira

PS: the log parser looks really good.

On Fri, Jun 22, 2012 at 10:14 AM, Matt Simerson <m...@simerson.net> wrote:

>
> http://www.nntp.perl.org/group/perl.qpsmtpd/2009/01/msg8376.html
>
> This thread almost precisely describes my vision for QP.  To whit:
>
> a)  It describes the need for a standardized method for handling
> rejections.
>
> I have implemented this in pull request #23:
> https://github.com/smtpd/qpsmtpd/pull/23
>
> It breaks nothing in qpsmtpd, facilitates consistency in plugins,
> simplifies each plugin, and yet has met resistance (passive or intentional)
> in getting integrated.
>
> b) The thread describes a consistent manner of deferring rejections among
> plugins (wait for DATA).
>
> A number of plugins do this on their own, at the expense of plugin
> complexity. Rather than each plugin implementing delayed deferral, I wrote
> the naughty plugin, which greatly simplifies the process and allows
> deferred rejection in all plugins with one configuration setting. Albeit at
> the expense of adding a plugin. The advantages are huge. Documenting how to
> handle rejections across any plugin is now possible. Plugins are simpler.
> But the main reason I wrote naughty was resource efficiency. Having a
> standard way to make a connection as junk allows all subsequent plugins to
> skip processing after the connection is marked as naughty. Regardless of
> when the connection is rejected (from, to, data, data_post).
>
> Additional benefits of consistent rejection handling and message deferral
> align with the logging goals I outlined in the May 1st email, "uniform
> plugin logging." I described my desire to improve the human readability of
> log messages, use consistent (skip, pass, fail) syntax to describe plugin
> results, have each plugin typically log a single message per connection,
> and allow the ability to increase/decrease loglevel for individual plugins.
>
> I have completed all of these goals. In addition, I have written
> log_watch.pl, a CLI log watcher, that parses the much more uniform
> qpsmtpd logs and conveniently summarizes each connection into a single line
> of of output. I have some example output here:
> http://www.tnpi.net/internet/mail/qp/logwatch.html
>
> I have written a CLI script named log2sql.pl, which also parses the now
> mostly consistent log entries and feeds a summary of them into a SQL
> database. A companion CGI app presents a very similar view of the SMTP
> transaction history as shown by log_watch.pl. The data is well normalized
> and 100,000 messages of history consume only 100MB of disk. If one opts not
> to store the OS, hostname, helo string, from, and to data in the tables,
> the disk consumption is about 95% less.
>
> I wrote these log processing tools because all the log processing tools I
> found were written for older versions of qpsmtpd and no longer worked. They
> also made rare attempts to log plugin actions, which made them of little
> value to a user or author who wished to monitor or measure the effects of
> twiddling settings or tweaking code.
>
> In doing all of the above, I have posted regularly to the list, soliciting
> the input of the community, and often making changes to address issues
> raised.
>
> The responses, particularly from the keepers of the commit bits, have been
> deafening.
>
> I am to the point where I need to deploy. I was hoping that I could get my
> changes merged into the main branch, but that appears impossible. I hate
> the prospect of forking, but I see few alternatives.
>
> I hereby propose the creation of qpsmtpd-dev.
>
> The primary aim is merging the forks maintained by myself, Steve, Chris,
> Jared, and others. I am willing to do much of the work to accomplish this.
> I believe there is much to be gained by doing so, not the least of which is
> saving others the pain of learning they are wasting their time trying to
> improve QP in any way that doesn't fit with the unstated goals and vision
> of the project. A secondary goal is to provide a development branch of QP
> in which ideas can be rapidly tested, deployed, and when desired,
> backported to the main branch.
>
> Matt

Reply via email to