From ca5dd0887b7ba33d4022045c99c985edc1cfc5fe Mon Sep 17 00:00:00 2001 From: Julien Valroff Date: Sun, 13 Mar 2011 09:02:21 +0100 Subject: Fix greylisting support --- debian/patches/050_greylist.diff | 38 ++++++++++++++--------- debian/patches/101_dspam-virus-notifications.diff | 2 +- debian/patches/102_clamav-milter.diff | 2 +- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/debian/patches/050_greylist.diff b/debian/patches/050_greylist.diff index 598deb8..53fd408 100644 --- a/debian/patches/050_greylist.diff +++ b/debian/patches/050_greylist.diff @@ -4,14 +4,19 @@ Origin: http://www.bakarasse.de/pages/en/linux/mailgraph.php --- a/mailgraph.cgi +++ b/mailgraph.cgi -@@ -16,6 +16,7 @@ +@@ -16,10 +16,11 @@ my $points_per_sample = 3; my $ypoints = 160; my $ypoints_err = 96; +my $ypoints_grey = 96; my $rrd = '/var/lib/mailgraph/mailgraph.rrd'; # path to where the RRD database is my $rrd_virus = '/var/lib/mailgraph/mailgraph_virus.rrd'; # path to where the Virus RRD database is ++my $rrd_greylist = '/var/lib/mailgraph/mailgraph_greylist.rrd'; # path to where the Greylist RRD database is my $tmp_dir = '/var/lib/mailgraph'; # temporary directory where to store the images +- + my @graphs = ( + { title => 'Last Day', seconds => 3600*24, }, + { title => 'Last Week', seconds => 3600*24*7, }, @@ -28,12 +29,14 @@ ); @@ -92,8 +97,11 @@ Origin: http://www.bakarasse.de/pages/en/linux/mailgraph.php } --- a/mailgraph.pl +++ b/mailgraph.pl -@@ -381,7 +381,7 @@ +@@ -379,9 +379,10 @@ + my $logfile; + my $rrd = "mailgraph.rrd"; my $rrd_virus = "mailgraph_virus.rrd"; ++my $rrd_greylist = "mailgraph_greylist.rrd"; my $year; my $this_minute; -my %sum = ( sent => 0, received => 0, bounced => 0, rejected => 0, virus => 0, spam => 0 ); @@ -101,7 +109,7 @@ Origin: http://www.bakarasse.de/pages/en/linux/mailgraph.php my $rrd_inited=0; my %opt = (); -@@ -395,6 +395,8 @@ +@@ -395,6 +396,8 @@ sub event_rejected($); sub event_virus($); sub event_spam($); @@ -110,7 +118,7 @@ Origin: http://www.bakarasse.de/pages/en/linux/mailgraph.php sub init_rrd($); sub update($); -@@ -415,8 +417,9 @@ +@@ -415,8 +418,9 @@ print " --daemon-log=FILE write verbose-log to FILE instead of /var/log/mailgraph.log\n"; print " --ignore-localhost ignore mail to/from localhost (used for virus scanner)\n"; print " --ignore-host=HOST ignore mail to/from HOST regexp (used for virus scanner)\n"; @@ -122,7 +130,7 @@ Origin: http://www.bakarasse.de/pages/en/linux/mailgraph.php print " --rrd-name=NAME use NAME.rrd and NAME_virus.rrd for the rrd files\n"; print " --rbl-is-spam count rbl rejects as spam\n"; print " --virbl-is-virus count virbl rejects as viruses\n"; -@@ -431,7 +434,7 @@ +@@ -431,7 +435,7 @@ 'year|y=i', 'host=s', 'verbose|v', 'daemon|d!', 'daemon_pid|daemon-pid=s', 'daemon_rrd|daemon-rrd=s', 'daemon_log|daemon-log=s', 'ignore-localhost!', 'ignore-host=s@', @@ -131,7 +139,7 @@ Origin: http://www.bakarasse.de/pages/en/linux/mailgraph.php 'rbl-is-spam', 'virbl-is-virus' ) or exit(1); usage if $opt{help}; -@@ -446,6 +449,7 @@ +@@ -446,6 +450,7 @@ $daemon_rrd_dir = $opt{daemon_rrd} if defined $opt{daemon_rrd}; $rrd = $opt{rrd_name}.".rrd" if defined $opt{rrd_name}; $rrd_virus = $opt{rrd_name}."_virus.rrd" if defined $opt{rrd_name}; @@ -139,7 +147,7 @@ Origin: http://www.bakarasse.de/pages/en/linux/mailgraph.php # compile --ignore-host regexps if(defined $opt{'ignore-host'}) { -@@ -522,7 +526,7 @@ +@@ -522,7 +527,7 @@ my $year_steps = $month_steps*12; # mail rrd @@ -148,7 +156,7 @@ Origin: http://www.bakarasse.de/pages/en/linux/mailgraph.php RRDs::create($rrd, '--start', $m, '--step', $rrdstep, 'DS:sent:ABSOLUTE:'.($rrdstep*2).':0:U', 'DS:recv:ABSOLUTE:'.($rrdstep*2).':0:U', -@@ -544,7 +548,7 @@ +@@ -544,7 +549,7 @@ } # virus rrd @@ -157,7 +165,7 @@ Origin: http://www.bakarasse.de/pages/en/linux/mailgraph.php RRDs::create($rrd_virus, '--start', $m, '--step', $rrdstep, 'DS:virus:ABSOLUTE:'.($rrdstep*2).':0:U', 'DS:spam:ABSOLUTE:'.($rrdstep*2).':0:U', -@@ -561,6 +565,25 @@ +@@ -561,6 +566,25 @@ elsif(-f $rrd_virus and ! defined $rrd_virus) { $this_minute = RRDs::last($rrd_virus) + $rrdstep; } @@ -183,7 +191,7 @@ Origin: http://www.bakarasse.de/pages/en/linux/mailgraph.php $rrd_inited=1; } -@@ -610,6 +633,9 @@ +@@ -610,6 +634,9 @@ elsif($opt{'rbl-is-spam'} and $text =~ /^(?:[0-9A-Z]+: |NOQUEUE: )?reject: .*: 554.* blocked using/) { event($time, 'spam'); } @@ -193,7 +201,7 @@ Origin: http://www.bakarasse.de/pages/en/linux/mailgraph.php elsif($text =~ /^(?:[0-9A-Z]+: |NOQUEUE: )?reject: /) { event($time, 'rejected'); } -@@ -853,6 +879,21 @@ +@@ -853,6 +880,21 @@ event($time, 'virus'); } } @@ -215,14 +223,14 @@ Origin: http://www.bakarasse.de/pages/en/linux/mailgraph.php } sub event($$) -@@ -870,14 +911,16 @@ +@@ -870,14 +912,16 @@ return 1 if $m == $this_minute; return 0 if $m < $this_minute; - print "update $this_minute:$sum{sent}:$sum{received}:$sum{bounced}:$sum{rejected}:$sum{virus}:$sum{spam}\n" if $opt{verbose}; - RRDs::update $rrd, "$this_minute:$sum{sent}:$sum{received}:$sum{bounced}:$sum{rejected}" unless $opt{'only-virus-rrd'}; - RRDs::update $rrd_virus, "$this_minute:$sum{virus}:$sum{spam}" unless $opt{'only-mail-rrd'}; -+ print "update $this_minute:$sum{sent}:$sum{received}:$sum{bounced}:$sum{rejected}:$sum{virus}:$sum{spam}:$sum{greylisted}:$sum{delayed}\n" if$ ++ print "update $this_minute:$sum{sent}:$sum{received}:$sum{bounced}:$sum{rejected}:$sum{virus}:$sum{spam}:$sum{greylisted}:$sum{delayed}\n" if $opt{verbose}; + RRDs::update $rrd, "$this_minute:$sum{sent}:$sum{received}:$sum{bounced}:$sum{rejected}" unless $opt{'no-mail-rrd'}; + RRDs::update $rrd_virus, "$this_minute:$sum{virus}:$sum{spam}" unless $opt{'no-virus-rrd'}; + RRDs::update $rrd_greylist, "$this_minute:$sum{greylisted}:$sum{delayed}" unless $opt{'no-greylist-rrd'}; @@ -238,7 +246,7 @@ Origin: http://www.bakarasse.de/pages/en/linux/mailgraph.php } } $this_minute = $m; -@@ -887,6 +930,8 @@ +@@ -887,6 +931,8 @@ $sum{rejected}=0; $sum{virus}=0; $sum{spam}=0; @@ -247,7 +255,7 @@ Origin: http://www.bakarasse.de/pages/en/linux/mailgraph.php return 1; } -@@ -919,8 +964,9 @@ +@@ -919,8 +965,9 @@ --daemon-log=FILE write verbose-log to FILE instead of /var/log/mailgraph.log --ignore-localhost ignore mail to/from localhost (used for virus scanner) --ignore-host=HOST ignore mail to/from HOST regexp (used for virus scanner) diff --git a/debian/patches/101_dspam-virus-notifications.diff b/debian/patches/101_dspam-virus-notifications.diff index bd5a04b..3a27c5c 100644 --- a/debian/patches/101_dspam-virus-notifications.diff +++ b/debian/patches/101_dspam-virus-notifications.diff @@ -5,7 +5,7 @@ Forwarded: no --- a/mailgraph.pl +++ b/mailgraph.pl -@@ -800,6 +800,9 @@ +@@ -801,6 +801,9 @@ if($text =~ /spam detected from/) { event($time, 'spam'); } diff --git a/debian/patches/102_clamav-milter.diff b/debian/patches/102_clamav-milter.diff index 25c49f3..a8378fe 100644 --- a/debian/patches/102_clamav-milter.diff +++ b/debian/patches/102_clamav-milter.diff @@ -4,7 +4,7 @@ Forwarded: no --- a/mailgraph.pl +++ b/mailgraph.pl -@@ -846,6 +846,9 @@ +@@ -847,6 +847,9 @@ if($text =~ /Intercepted/) { event($time, 'virus'); } -- cgit v1.2.3