From owner-freebsd-ports-bugs@FreeBSD.ORG Sun Mar 19 14:20:14 2006 Return-Path: X-Original-To: freebsd-ports-bugs@hub.freebsd.org Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C33B616A400 for ; Sun, 19 Mar 2006 14:20:14 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2CFDA43D45 for ; Sun, 19 Mar 2006 14:20:14 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k2JEKD5T090069 for ; Sun, 19 Mar 2006 14:20:13 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k2JEKDM6090065; Sun, 19 Mar 2006 14:20:13 GMT (envelope-from gnats) Resent-Date: Sun, 19 Mar 2006 14:20:13 GMT Resent-Message-Id: <200603191420.k2JEKDM6090065@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Patrick PRONIEWSKI Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 993C116A41F for ; Sun, 19 Mar 2006 14:19:13 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [216.136.204.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4AB9943D48 for ; Sun, 19 Mar 2006 14:19:13 +0000 (GMT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.13.1/8.13.1) with ESMTP id k2JEJDGD087795 for ; Sun, 19 Mar 2006 14:19:13 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.13.1/8.13.1/Submit) id k2JEJCEs087794; Sun, 19 Mar 2006 14:19:12 GMT (envelope-from nobody) Message-Id: <200603191419.k2JEJCEs087794@www.freebsd.org> Date: Sun, 19 Mar 2006 14:19:12 GMT From: Patrick PRONIEWSKI To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-2.3 Cc: Subject: ports/94692: [patch] couriergraph won't record imap login + update to version "1.10stack" X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Mar 2006 14:20:14 -0000 >Number: 94692 >Category: ports >Synopsis: [patch] couriergraph won't record imap login + update to version "1.10stack" >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Mar 19 14:20:13 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Patrick PRONIEWSKI >Release: 5.4-RELEASE-p10 >Organization: Université Louis Lumière Lyon 2 >Environment: FreeBSD my-host 5.4-RELEASE-p10 FreeBSD 5.4-RELEASE-p10 #0: Fri Jan 27 10:21:28 CET 2006 patpro@my-host:/usr/obj/usr/src/sys/PATPRO-20050829 i386 >Description: couriergraph is a port based on Mailgraph that draw graphs for login stats of POP, POP-SSL, IMAP, IMAP-SSL services. couriergraph as it's provided in FreeBSD Ports can't record imap login due to a typo in the file patch-couriergraph.pl : line 37 reads " + elsif ($prog eq 'imap') {" where it should reads " + elsif ($prog eq 'imapd') {" Other modifications leading to version "1.10stack" are made available through the diffs output below >How-To-Repeat: >Fix: too diffs : --- couriergraph.cgi Mon Oct 24 11:21:38 2005 +++ couriergraph.cgi.new Sun Mar 19 14:54:18 2006 @@ -1,16 +1,16 @@ #!/usr/bin/perl -w # couriergraph -- a postfix statistics rrdtool frontend -# copyright (c) 2002-2004 Ralf Hildebrandt +# copyright (c) 2002-2006 Ralf Hildebrandt # based upon mailgraph, which is # mailgraph -- a postfix statistics rrdtool frontend -# copyright (c) 2000-2004 David Schweikert +# copyright (c) 2000-2006 David Schweikert # released under the GNU General Public License use RRDs; use POSIX qw(uname); -my $VERSION = "1.10"; +my $VERSION = "1.10stack"; my $host = (POSIX::uname())[1]; my $scriptname = 'couriergraph.cgi'; @@ -18,9 +18,9 @@ my $points_per_sample = 3; my $ypoints = 160; my $ypoints_err = 96; -my $rrd = '/etc/postfix/couriergraph.rrd'; # path to where the RRD database is -my $rrd_virus = '/etc/postfix/mailgraph_virus.rrd'; # path to where the Virus RRD database is +my $rrd = '/var/db/couriergraph/couriergraph.rrd'; # path to where the RRD database is my $tmp_dir = '/tmp/couriergraph'; # temporary directory where to store the images +my $rrdtool_1_0 = ($RRDs::VERSION < 1.199908); my @graphs = ( { title => 'Day Graphs', seconds => 3600*24, }, @@ -29,15 +29,6 @@ { title => 'Year Graphs', seconds => 3600*24*365, }, ); -my %color = ( - sent => '000099', # rrggbb in hex - received => '009900', - rejected => 'AA0000', - bounced => '000000', - virus => 'DDBB00', - spam => '999999', -); - sub graph($$$) { my $range = shift; @@ -59,80 +50,57 @@ '--color', 'SHADEA#ffffff', '--color', 'SHADEB#ffffff', '--color', 'BACK#ffffff', - - $rrdtool_1_0 ? () : ( - '--slope-mode' + + $RRDs::VERSION < 1.2002 ? () : ( + '--slope-mode' ), "DEF:pop3d_login=$rrd:pop3d_login:AVERAGE", "DEF:mpop3d_login=$rrd:pop3d_login:MAX", - "DEF:imapd_login=$rrd:imapd_login:AVERAGE", - "DEF:mimapd_login=$rrd:imapd_login:MAX", + "DEF:pop3d_ssl_login=$rrd:pop3d_ssl_login:AVERAGE", + "DEF:mpop3d_ssl_login=$rrd:pop3d_ssl_login:MAX", + "CDEF:rpop3d_login=pop3d_login,60,*", "CDEF:vpop3d_login=pop3d_login,UN,0,pop3d_login,IF,$range,*", "CDEF:rmpop3d_login=mpop3d_login,60,*", - "CDEF:rimapd_login=imapd_login,60,*", - "CDEF:vimapd_login=imapd_login,UN,0,imapd_login,IF,$range,*", - "CDEF:rmimapd_login=mimapd_login,60,*", - 'LINE2:rpop3d_login#BB0000:pop3', - 'GPRINT:vpop3d_login:AVERAGE:total\: %.0lf logins', - 'GPRINT:rmpop3d_login:MAX:max\: %.0lf logins/min\l', - 'LINE2:rimapd_login#009900:imap', - 'GPRINT:vimapd_login:AVERAGE:total\: %.0lf logins', - 'GPRINT:rmimapd_login:MAX:max\: %.0lf logins/min\l', - 'HRULE:0#000000', - 'COMMENT:\s', - 'COMMENT:['.$date.']\r', - ); - my $ERR=RRDs::error; - die "ERROR: $ERR\n" if $ERR; -} -sub graph_ssl($$$) -{ - my $range = shift; - my $file = shift; - my $title = shift; - my $step = $range*$points_per_sample/$xpoints; - my $date = localtime(time); - $date =~ s|:|\\:|g unless $rrdtool_1_0; - - my ($graphret,$xs,$ys) = RRDs::graph($file, - '--imgformat', 'PNG', - '--width', $xpoints, - '--height', $ypoints_err, - '--start', "-$range", - '--vertical-label', 'logins/hour', - '--lower-limit', 0, - '--units-exponent', 0, # don't show milli-messages/s - '--lazy', - '--color', 'SHADEA#ffffff', - '--color', 'SHADEB#ffffff', - '--color', 'BACK#ffffff', - - $rrdtool_1_0 ? () : ( - '--slope-mode' - ), + "CDEF:rpop3d_ssl_login=pop3d_ssl_login,60,*", + "CDEF:vpop3d_ssl_login=pop3d_ssl_login,UN,0,pop3d_ssl_login,IF,$range,*", + "CDEF:rmpop3d_ssl_login=mpop3d_ssl_login,60,*", - "DEF:pop3d_ssl_login=$rrd:pop3d_ssl_login:AVERAGE", - "DEF:mpop3d_ssl_login=$rrd:pop3d_ssl_login:MAX", + "DEF:imapd_login=$rrd:imapd_login:AVERAGE", + "DEF:mimapd_login=$rrd:imapd_login:MAX", "DEF:imapd_ssl_login=$rrd:imapd_ssl_login:AVERAGE", "DEF:mimapd_ssl_login=$rrd:imapd_ssl_login:MAX", - "CDEF:rpop3d_ssl_login=pop3d_ssl_login,3600,*", - "CDEF:vpop3d_ssl_login=pop3d_ssl_login,UN,0,pop3d_ssl_login,IF,$range,*", - "CDEF:rmpop3d_ssl_login=mpop3d_ssl_login,3600,*", - "CDEF:rimapd_ssl_login=imapd_ssl_login,3600,*", - "CDEF:rmimapd_ssl_login=mimapd_ssl_login,3600,*", - -"CDEF:vimapd_ssl_login=imapd_ssl_login,UN,0,imapd_ssl_login,IF,$range,*", - 'LINE2:rpop3d_ssl_login#000000:pop3', - 'GPRINT:vpop3d_ssl_login:AVERAGE:total\: %.0lf logins', - 'GPRINT:rmpop3d_ssl_login:MAX:max\: %.0lf logins/hour\l', - 'LINE2:rimapd_ssl_login#000099:imap', - 'GPRINT:vimapd_ssl_login:AVERAGE:total\: %.0lf logins', - 'GPRINT:rmimapd_ssl_login:MAX:max\: %.0lf logins/hour\l', + + "CDEF:rimapd_login=imapd_login,60,*", + "CDEF:vimapd_login=imapd_login,UN,0,imapd_login,IF,$range,*", + "CDEF:rmimapd_login=mimapd_login,60,*", + + "CDEF:rimapd_ssl_login=imapd_ssl_login,60,*", + "CDEF:rmimapd_ssl_login=mimapd_ssl_login,60,*", + "CDEF:vimapd_ssl_login=imapd_ssl_login,UN,0,imapd_ssl_login,IF,$range,*", + + 'LINE:rpop3d_login#DD0000:pop3 ', + 'GPRINT:vpop3d_login:AVERAGE:total\: %8.0lf logins', + 'GPRINT:rmpop3d_login:MAX:max\: %4.0lf logins/min\l', + 'HRULE:0#000000', + + 'LINE:rpop3d_ssl_login#770000:pop3/ssl:STACK', + 'GPRINT:vpop3d_ssl_login:AVERAGE:total\: %8.0lf logins', + 'GPRINT:rmpop3d_ssl_login:MAX:max\: %4.0lf logins/min\l', 'HRULE:0#000000', + 'LINE:rimapd_login#00DD00:imap ', + 'GPRINT:vimapd_login:AVERAGE:total\: %8.0lf logins', + 'GPRINT:rmimapd_login:MAX:max\: %4.0lf logins/min\l', + 'HRULE:0#000000', + + 'LINE:rimapd_ssl_login#007700:imap/ssl:STACK', + 'GPRINT:vimapd_ssl_login:AVERAGE:total\: %8.0lf logins', + 'GPRINT:rmimapd_ssl_login:MAX:max\: %4.0lf logins/min\l', + + 'COMMENT:\s', 'COMMENT:['.$date.']\r', ); my $ERR=RRDs::error; @@ -160,7 +128,6 @@ print "

$graphs[$n]{title}

\n"; print "\n"; print "

\"couriergraph\"\n"; - print "

\"couriergraph\"\n"; } print < 0, imapd_login => 0, pop3d_ssl_login => 0, pop3d_login => 0 ); @@ -350,7 +350,7 @@ print " --host=HOST use only entries for HOST (regexp) in syslog\n"; print " -d, --daemon start in the background\n"; print " --daemon-pid=FILE write PID to FILE instead of /var/run/mailgraph.pid\n"; - print " --daemon-rrd=DIR write RRDs to DIR instead of /var/log\n"; + print " --daemon-rrd=DIR write RRDs to DIR instead of /var/db/couriergraph\n"; print " --daemon-log=FILE write verbose-log to FILE instead of /var/log/mailgraph.log\n"; print " --rrd-name=NAME use NAME.rrd for the rrd files\n"; @@ -473,12 +473,12 @@ my $prog = $sl->[2]; my $text = $sl->[4]; - if ($prog eq 'courierpop3login') { + if ($prog eq 'pop3d') { if($text =~ /LOGIN,/) { event($time, 'pop3d_login'); } } - elsif ($prog eq 'imaplogin') { + elsif ($prog eq 'imapd') { if($text =~ /LOGIN,/) { event($time, 'imapd_login'); } >Release-Note: >Audit-Trail: >Unformatted: