ports/131145: port update: mail/assp to 1.4.3.1

J.R. Oldroyd fbsd at opal.com
Fri Jan 30 03:10:02 UTC 2009


>Number:         131145
>Category:       ports
>Synopsis:       port update: mail/assp to 1.4.3.1
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jan 30 03:10:01 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     J.R. Oldroyd
>Release:        FreeBSD 7.0-STABLE i386
>Organization:
>Environment:
System: FreeBSD xx.opal.com 7.0-STABLE FreeBSD 7.0-STABLE #1: Thu Mar 13 12:42:33 EDT 2008 root at xx.opal.com:/usr/src/sys/i386/compile/xx i386
>Description:
port update: mail/assp to 1.4.3.1
>How-To-Repeat:
>Fix:
diff -ruN /usr/ports/mail/assp/Makefile mail/assp/Makefile
--- /usr/ports/mail/assp/Makefile	2008-08-16 14:12:14.000000000 -0400
+++ mail/assp/Makefile	2009-01-27 13:27:41.000000000 -0500
@@ -6,7 +6,7 @@
 #
 
 PORTNAME=	assp
-PORTVERSION=	1.3.3.10
+PORTVERSION=	1.4.3.1
 CATEGORIES=	mail
 MASTER_SITES=	SF
 DISTNAME=	${PORTNAME:U}_${PORTVERSION}-Install
@@ -19,19 +19,15 @@
 USE_PERL5_RUN=	yes
 
 USE_DOS2UNIX=	\
-		../1.3.3.8-1.3.3.10-changes.txt \
+		../changelog.txt \
 		addservice.pl \
 		assp.pl \
 		files/URIBLCCTLDS.txt \
-		files/blackdomains.txt \
 		files/bombre.txt \
 		files/invalidptr.txt \
 		files/ipnp.txt \
-		files/ipwl.txt \
 		files/nodelay.txt \
-		files/rbl-service.txt \
 		files/redre.txt \
-		files/whitedomains.txt \
 		images/assp.css \
 		images/editor.css \
 		images/shutdown.css \
@@ -72,9 +68,10 @@
 		CLAMAV	"ClamAV virus scanner" on \
 		DNSBL	"DNS block list checking" on \
 		MYSQL	"Use MySQL db to store white/red/delaylists" off \
-		SIMPLE	"Use procedural Web Page interfaces" on
+		SIMPLE	"Use procedural Web Page interfaces" on \
+		SSL	"SSL secure sockets support" on
 
-WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}/${PORTNAME:L}
+WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}/${DISTNAME}/${PORTNAME:U}
 
 .include <bsd.port.pre.mk>
 
@@ -124,6 +121,11 @@
 RUN_DEPENDS+=	${SITE_PERL}/LWP/Simple.pm:${PORTSDIR}/www/p5-libwww
 .endif
 
+.if !defined(WITHOUT_SSL)
+RUN_DEPENDS+=	${SITE_PERL}/IO/Socket/SSL.pm:${PORTSDIR}/mail/p5-IO-Socket-SSL
+EXTRA_PATCHES+=	${PATCHDIR}/extra-patch-assp.pl+SSL
+.endif
+
 EXTRACT_AFTER_ARGS=	-d ${PORTNAME}-${PORTVERSION}
 
 post-patch:
diff -ruN /usr/ports/mail/assp/distinfo mail/assp/distinfo
--- /usr/ports/mail/assp/distinfo	2008-08-16 14:12:14.000000000 -0400
+++ mail/assp/distinfo	2009-01-25 18:11:59.000000000 -0500
@@ -1,3 +1,3 @@
-MD5 (ASSP_1.3.3.10-Install.zip) = 8eae214508f426f4f0daef9993828358
-SHA256 (ASSP_1.3.3.10-Install.zip) = e5bfd52401b3f6be38ca5afc86b0d37556d1021f8feccadd2985f650a62d65d9
-SIZE (ASSP_1.3.3.10-Install.zip) = 315382
+MD5 (ASSP_1.4.3.1-Install.zip) = 95191c8a081601a5b80557ad606d867a
+SHA256 (ASSP_1.4.3.1-Install.zip) = 09331ad8ec7fddb381d4898ef0ed51990a01ce115a47c4b2a8c7a601f800c263
+SIZE (ASSP_1.4.3.1-Install.zip) = 414570
diff -ruN /usr/ports/mail/assp/files/assplog.8.in mail/assp/files/assplog.8.in
--- /usr/ports/mail/assp/files/assplog.8.in	2008-08-16 14:12:15.000000000 -0400
+++ mail/assp/files/assplog.8.in	2008-08-09 14:29:24.000000000 -0400
@@ -69,6 +69,9 @@
 HL
 Bad HELO greeting
 .TP
+IO
+Invalid sender for internal recipient - internal-only recipient
+.TP
 IR
 Invalid recipient, failed LDAP or flat list test
 .TP
diff -ruN /usr/ports/mail/assp/files/extra-patch-assp.pl+SSL mail/assp/files/extra-patch-assp.pl+SSL
--- /usr/ports/mail/assp/files/extra-patch-assp.pl+SSL	1969-12-31 19:00:00.000000000 -0500
+++ mail/assp/files/extra-patch-assp.pl+SSL	2009-01-26 22:13:41.000000000 -0500
@@ -0,0 +1,159 @@
+--- assp.pl.orig	2009-01-26 17:49:10.000000000 -0500
++++ assp.pl	2009-01-26 22:10:17.000000000 -0500
+@@ -97,6 +97,13 @@
+ ['smtpDestination','SMTP Destination',40,\&textinput,'125','(\S*)',undef,
+   'The IP <b>number!</b> and port number of your primary SMTP. If multiple servers are listed and the first listed MTA does not respond, each additional MTA will be tried. If only a port number is entered, or the dynamic keyword <b>INBOUND</b> is used with a port number, then the connection will be established to the local IP address on which the connection was received. This is useful when you have several IP addresses with different domains or profiles in your MTA. If INBOUND:PORT is used, ReportingReplies (Analyze,Help,etc and CopyMail will go to 127.0.0.1:PORT. If your needs are different, use smtpReportServer (SMTP Reporting Destination) and sendAllDestination (Copy Spam SMTP Destination)<small><i>Examples:</i> 125,  127.0.0.1:125, 127.0.0.1:125|127.0.0.5:125, INBOUND:125</small>','Basic'],
+ 
++['listenPortSSL','SMTP Secure Listen Port',20,\&textinput,'465','(\S+)','ConfigChangeMailPort',
++  'The port number on which ASSP will listen for incoming secure SMTP connections (normally 465). You can specify both an IP address and port number to limit connections to a specific interface.<p><small><i>Examples:</i> 465, 127.0.0.1:465, 127.0.0.1:465|127.0.0.2:465 </small></p><hr /><div class="menuLevel1">Notes On Network Setup</div><input type="button" value="Notes" onclick="javascript:popFileEditor(\'notes/network.txt\',3);" />','Basic'],
++['SSLCertFile','SSL Certificate File (PEM format)',48,\&textinput,'','(\S+)',undef,
++  "Path to the file containing the server's SSL certificate",'Basic'],
++['SSLKeyFile','SSL Key File (PEM format)',48,\&textinput,'','(\S+)',undef,
++  "Path to the file containing the server's SSL key",'Basic'],
++
+ ['listenPort2','Second SMTP Listen Port',20,\&textinput,'','(\S*)','ConfigChangeMailPort2',
+   'A secondary port number on which ASSP can accept SMTP connections. This is useful as a dedicated port for VPN clients or for those who cannot directly send mail to a mail server outside of their ISP\'s network because the ISP is blocking port 25. You may also specify an IP address to limit connections to a specific interface.<p><small><i>Examples:</i> 2525, 127.0.0.1:2525, 192.168.0.100:25000</small></p>'],
+ ['smtpAuthServer','Second SMTP Destination',20,\&textinput,'','(\S*)',undef,
+@@ -1639,6 +1646,8 @@
+ our $CanUseSysMemInfo  = $AvailSysMemInfo;
+ our $AvailNetSMTP      = eval('use Net::SMTP; 1');  # Net::SMTP module installed
+ our $CanUseNetSMTP     = $AvailNetSMTP;
++our $AvailIOSocketSSL  = eval('use IO::Socket::SSL; 1');  # IO::Socket::SSL module installed
++our $CanUseIOSocketSSL = $AvailIOSocketSSL;
+ 
+ 
+ #use URI::_foreign;
+@@ -1747,6 +1756,7 @@
+ our $VerEMM;
+ our $VerNetSMTP;
+ our $VerFileReadBackwards;
++our $VerIOSocketSSL;
+ our $VerLWP;
+ our $VerMailSPF2;
+ our $VerMailSPF;
+@@ -1770,6 +1780,7 @@
+ our $CommentEMM;
+ our $CommentNetSMTP;
+ our $CommentFileReadBackwards;
++our $CommentIOSocketSSL;
+ our $CommentLWP;
+ our $CommentMailSPF2;
+ our $CommentMailSPF;
+@@ -1831,6 +1842,7 @@
+ our $lookup_return;
+ our $lsn2;
+ our $lsn;
++our $lsnSSL;
+ our $maillogEnd;
+ our $maillogJump;
+ our $minusIcon;
+@@ -3095,6 +3107,14 @@
+         $CommentNetSMTP="Verify Recipients not available";
+         mlog(0,"Net::SMTP module not installed - Verify Recipients not available");
+       }
++     if ($CanUseIOSocketSSL) {
++        $ver=eval('IO::Socket::SSL->VERSION'); $VerIOSocketSSL=$ver; $ver=" version $ver" if $ver;
++        mlog(0,"IO::Socket::SSL module$ver installed - secure SSL sockets available");
++        $CommentIOSocketSSL="Secure SSL sockets available";
++      } elsif (!$AvailIOSocketSSL) {
++        $CommentIOSocketSSL="Secure SSL sockets not available";
++        mlog(0,"IO::Socket::SSL module not installed - secure SSL sockets not available");
++      }
+ 
+ 
+ 
+@@ -3111,6 +3131,11 @@
+     mlog( 0, "NOT listening for SMTP connections on $listenPort" ) if !$lsn;
+     mlog( 0, "NOT listening for ADMIN http connections on $webAdminPort" ) if !$WebSocket;
+     mlog( 0, "NOT listening for STATISTICS http connections on $webStatPort" ) if !$StatSocket;
++    if ($CanUseIOSocketSSL && $listenPortSSL) {
++        $lsnSSL = newListen( $listenPortSSL, \&NewSMTPConnection );
++        mlog( 0, "listening for additional SMTP connections on $listenPortSSL" ) if $lsnSSL;
++        mlog( 0, "NOT listening for additional SMTP connections on $listenPortSSL" ) if !$lsnSSL;
++      }
+     if ($listenPort2) {
+         $lsn2 = newListen( $listenPort2, \&NewSMTPConnection );
+         mlog( 0, "listening for additional SMTP connections on $listenPort2" ) if $lsn2;
+@@ -4119,6 +4144,11 @@
+         d(106);
+         return;
+       }
++    if ($CanUseIOSocketSSL && $fh == $lsnSSL && $SSLKeyFile ne '' && $SSLCertFile ne '') {
++	# connection on the secure SSL port
++	d(107);
++	IO::Socket::SSL->start_SSL($client, SSL_key_file => $SSLKeyFile, SSL_cert_file => $SSLCertFile, SSL_use_cert => 1, SSL_server => 1);
++      }
+     $Con{$client}->{relayok} = $relayok;
+     my $ip        = $client->peerhost();
+     my $port      = $client->peerport();
+@@ -4259,6 +4289,7 @@
+             d("limiting sessions: $fh");
+             $readable->remove($lsn)   if $lsn;
+             $readable->remove($lsn2)  if $lsn2;
++            $readable->remove($lsnSSL) if $lsnSSL;
+             $readable->remove($Relay) if $Relay;
+             if ($SessionLog) {
+                 mlog( 0, "connected: $ip:$port" )
+@@ -4847,6 +4878,7 @@
+         $smtpConcurrentSessions = 0 if $smtpConcurrentSessions < 0;
+         $readable->add($lsn)   if $lsn   && ( !$readable->exists($lsn) );
+         $readable->add($lsn2)  if $lsn2  && ( !$readable->exists($lsn2) );
++        $readable->add($lsnSSL) if $lsnSSL  && ( !$readable->exists($lsnSSL) );
+         $readable->add($Relay) if $Relay && ( !$readable->exists($Relay) );
+         $SMTPSession{Total}--  if $maxSMTPSessions;
+         $SMTPSession{$ip}--    if $maxSMTPipSessions;
+@@ -5454,6 +5486,27 @@
+         $this->{rcvd} =~ s/=host/$helo2/;
+         $this->{rcvd} =~ s/=\)/=$helo2\)/;
+         $this->{rcvd} = &headerWrap( $this->{rcvd} );    # wrap long lines
++      } elsif ($CanUseIOSocketSSL && $l =~ /starttls/io) {
++	# write directly to $fh, bypassing buffering
++	$fh->write( "220 2.0.0 Ready to start TLS\r\n" );
++	# the value of $fh changes when converted to SSL
++	my $oldfh = $fh;
++	my $oldConfh = $Con{$fh};
++	# convert to SSL
++	IO::Socket::SSL->start_SSL($fh, SSL_key_file => $SSLKeyFile, SSL_cert_file => $SSLCertFile, SSL_use_cert => 1, SSL_server => 1);
++	# copy data from old $fh
++	$Con{$fh} = $oldConfh;
++	$Con{$fh}->{client} = $fh;
++	$SMTPSession{$fh} = $SMTPSession{$oldfh};
++	# clean up old $fh
++	delete $SocketCalls{$oldfh};
++	$readable->remove($oldfh);
++	$writable->remove($oldfh);
++	# set up new $fh
++	$SocketCalls{$fh} = \&SMTPTraffic;
++	$readable->add($fh);
++	d("SSL: $fh $Con{$fh}");
++	return;
+       } elsif ( $l =~ /mail from:\s*<?($EmailAdrRe\@$EmailDomainRe|\s*)>?/io ) {
+         my $fr = $1;
+         my $RO_e = $1;
+@@ -11007,15 +11060,22 @@
+     return unless $cli;
+     $Con{$cli}->{inerror} = $l =~ /^5[05][0-9]/;
+ 
+-    if ( $l =~ /250-.*(CHUNKING|PIPELINING|XEXCH50|STARTTLS)/i ) {
++    if ( $l =~ /250-.*(CHUNKING|PIPELINING|XEXCH50)/i ) {
+         return;
+-      } elsif ( $l =~ /250 .*(CHUNKING|PIPELINING|XEXCH50|STARTTLS)/i ) {
++      } elsif ( $l =~ /250-.*STARTTLS/i && ($cli =~ /IO::Socket::SSL/ || !$CanUseIOSocketSSL) ) {
++	# suppress STARTTLS if SSL already enabled or unavailable
++	return;
++      } elsif ( $l =~ /250 .*STARTTLS/i && ($cli =~ /IO::Socket::SSL/ || !$CanUseIOSocketSSL) ) {
++	# change STARTTLS to NOOP if SSL already enabled or unavailable
++	sendque( $cli, "250 NOOP\r\n" );
++	return;
++      } elsif ( $l =~ /250 .*(CHUNKING|PIPELINING|XEXCH50)/i ) {
+         sendque( $cli, "250 NOOP\r\n" );
+         return;
+ 
+-        # we'll filter off the chunking directive to avoid BDAT problems.
++        # we'll filter off the CHUNKING directive to avoid BDAT problems.
++        # we'll filter off the PIPELINING directive to avoid ... problems.
+         # we'll filter off the XEXCH50 service, as it only causes troubles
+-        # we'll filter off the STARTTLS directive to avoid TLS problems.
+         d("$l");
+ 
+       } elsif ( $l =~ /^220/ ) {
diff -ruN /usr/ports/mail/assp/files/patch-assp.pl mail/assp/files/patch-assp.pl
--- /usr/ports/mail/assp/files/patch-assp.pl	2008-08-16 14:12:15.000000000 -0400
+++ mail/assp/files/patch-assp.pl	2009-01-25 18:22:25.000000000 -0500
@@ -1,37 +1,37 @@
---- assp.pl.orig	2008-08-02 22:00:47.000000000 -0400
-+++ assp.pl	2008-08-02 22:03:58.000000000 -0400
+--- assp.pl.orig	2009-01-25 18:17:42.000000000 -0500
++++ assp.pl	2009-01-25 18:21:31.000000000 -0500
 @@ -1,4 +1,4 @@
 -#!/usr/bin/perl --
 +#!/usr/local/bin/perl
- #
  # perl antispam smtp proxy
  # (c) John Hanna, John Calvi, Robert Orso, AJ 2004 under the terms of the GPL
-@@ -817,8 +817,8 @@
- ['ScanWL','Scan Whitelisted Senders',0,\&checkbox,0,'([01]?)',undef,''],
- ['ScanNP','Scan No Processing Senders',0,\&checkbox,0,'([01]?)',undef,''],
- ['ScanLocal','Scan Local Senders',0,\&checkbox,0,'([01]?)',undef,''],
--['AvClamdPort','Port or file socket for ClamAV',20,\&textinput,'/tmp/clamd','(\S+)',undef,
--  'A socket specified in the clamav.conf file - LocalSocket. For example /tmp/clamd. If the socket has been setup as a TCP/IP socket (see the TCPSocket option in the clamav.conf file), then specify the TCP socket. For example 3310 '],
-+['AvClamdPort','Port or file socket for ClamAV',20,\&textinput,'/var/run/assp/clamd','(\S+)',undef,
-+  'A socket specified in the clamav.conf file - LocalSocket. For example /var/run/assp/clamd. If the socket has been setup as a TCP/IP socket (see the TCPSocket option in the clamav.conf file), then specify the TCP socket. For example 3310 '],
- ['AvError','Reply Message to Refuse Infected E<!--get rid of google autofill-->mail',80,\&textinput,'554 5.7.1 Mail appears infected with \'$infection\'.','(5\d\d .*)',undef,
-   'Reply message to refuse infected mail. The string $infection is replaced with the name of the detected virus.<br />
-   For example: 554 5.7.1 Mail appears infected with \'$infection\' -- disinfect and resend.'],
-@@ -973,7 +973,7 @@
-   '<span class="negative"> 0 = no report, 1 = to SENDER, 2 = to TO address (below), 3 = BOTH</span>'],
- ['EmailRedlistTo','To Address for Redlist-Reports',40,\&textinput,'','(.+)',undef,
-   'Email sent from ASSP acknowledging your submissions will be sent to this address. For example: admin at domain.com'],
--['EmailFrom','From Address for Reports',40,\&textinput,'<spammaster at yourdomain.com>','(.+)',undef,
-+['EmailFrom','From Address for Reports',40,\&textinput,'<postmaster at yourdomain.com>','(.+)',undef,
+ # (c) Fritz Borgstedt 2006 under the terms of the GPL
+@@ -978,8 +978,8 @@
+ ['ScanNP','Scan No Processing Senders',0,\&checkbox,'','(.*)',undef,''],
+ ['ScanLocal','Scan Local Senders',0,\&checkbox,'','(.*)',undef,''],
+ ['ScanCC','Scan Copied Spam Mails',0,\&checkbox,'','(.*)',undef,''],
+-['AvClamdPort','Port or file socket for ClamAV',30,\&textinput,'/tmp/clamd','(\S+)',undef,
+- 'A socket specified in the clamav.conf file - LocalSocket. For example /tmp/clamd. If the socket has been setup as a TCP/IP socket (see the TCPSocket option in the clamav.conf file), then specify the TCP socket. For example: 3310 '],
++['AvClamdPort','Port or file socket for ClamAV',30,\&textinput,'/var/run/assp/clamd','(\S+)',undef,
++ 'A socket specified in the clamav.conf file - LocalSocket. For example /var/run/assp/clamd. If the socket has been setup as a TCP/IP socket (see the TCPSocket option in the clamav.conf file), then specify the TCP socket. For example: 3310 '],
+ ['ClamAVBytes','ClamAV Bytes',8,\&textinput,60000,'(\d*)',undef,
+   'The number of bytes per message that will be submitted for virus scanning. Values of 100000 or larger are not recommended.'],
+ ['ClamAVtimeout','ClamAV Timeout',3,\&textinput,10,'(\d*)',undef, 'ClamAV will timeout after this many seconds.<br /> default: 10 seconds.'],
+@@ -1159,7 +1159,7 @@
+   'A copy of the Analyze-Report will be sent to this address. For example: admin at example.com'],
+ ['DoAdditionalAnalyze','Spam and Ham Reports will trigger an additional Analyze Report ','0:NO ADDITIONAL REPORT|1:SEND TO SENDER|2:SEND TO EmailAnalyzeTo|3:SEND TO BOTH',\&listbox,0,'(.*)',undef,
+   'Additional Analyze Report will be generated for Spam and Ham Reports. Setting the TO Address accordingly and choosing <b>EmailAnalyzeTo</b> will send the Analyze Report to the admin only.'],
+-['EmailFrom','From Address for Reports',40,\&textinput,'<spammaster at yourdomain.com>','(.*@.*)?',undef,
++['EmailFrom','From Address for Reports',40,\&textinput,'<postmaster at yourdomain.com>','(.*@.*)?',undef,
    'Email sent from ASSP acknowledging your submissions will be sent from this address.'],
- ['NoHaiku','Legacy: Don\'t reply to messages to the Email Interface',0,\&checkbox,0,'([01]?)',undef,
-   'Check this option to suppress email reports for spam and not-spam reports, whitelist and redlist additions/deletions via the email interface.<br /><hr />
-@@ -1166,7 +1166,7 @@
+ ['EmailAllowEqual','Allow \'=\' in Addresses',0,\&checkbox,'1','(.*)',undef,
+   'Allow \'=\' in addresses to be whitelisted or redlisted.'],
+@@ -1404,7 +1404,7 @@
+ 
  [0,0,0,'heading','Server Setup'],
- ['AsAService','Run ASSP as a Windows Service**',0,\&checkbox,0,'([01]?)',undef,
-   'In Windows NT/2000/XP/2003 ASSP can be installed as a service. This setting tells ASSP that this has been done -- it does not install the Windows service for you. Installing ASSP as a service requires several steps which are detailed in the <a href="http://www.asspsmtp.org/wiki/Quick_Start_for_Win32">Quick Start for Win32</a> wiki page.'],
--['AsADaemon','Run ASSP as a Daemon**',0,\&checkbox,0,'([01]?)',undef,
-+['AsADaemon','Run ASSP as a Daemon**',0,\&checkbox,1,'([01]?)',undef,
-  'In Linux/BSD/Unix/OSX fork and close file handles. Similar to the command "perl assp.pl &", but better.'],
- ['runAsUser','Run as UID**',20,\&textinput,'','(\S*)',undef,
-   'The *nix user name to assume after startup (*nix only).<p><small><i>Examples:</i> assp, nobody</small></p>'],
+ ['AsAService','Run ASSP as a Windows Service',0,\&checkbox,'','(.*)',undef,'In Windows NT/2000/XP/2003 ASSP can be installed as a service. This setting tells ASSP that this has been done -- it does not install the Windows service for you. Installing ASSP as a service requires several steps which are detailed in the <a href="http://www.asspsmtp.org/wiki/Quick_Start_for_Win32">Quick Start for Win32</a> wiki page.<br /> <span class="negative"> requires ASSP restart</span>'],
+-['AsADaemon','Run ASSP as a Daemon',0,\&checkbox,'','(.*)',undef,'In Linux/BSD/Unix/OSX fork and close file handles. Similar to the command "perl assp.pl &", but better.<br />
++['AsADaemon','Run ASSP as a Daemon',0,\&checkbox,'1','(.*)',undef,'In Linux/BSD/Unix/OSX fork and close file handles. Similar to the command "perl assp.pl &", but better.<br />
+   <span class="negative"> requires ASSP restart</span>'],
+ ['runAsUser','Run as UID',20,\&textinput,'','(\S*)',undef,'The *nix user name to assume after startup (*nix only).<p><small><i>Examples:</i> assp, nobody</small></p>
+   <span class="negative"> requires ASSP restart</span>'],
diff -ruN /usr/ports/mail/assp/files/patch-stats.sh mail/assp/files/patch-stats.sh
--- /usr/ports/mail/assp/files/patch-stats.sh	2008-08-16 14:12:15.000000000 -0400
+++ mail/assp/files/patch-stats.sh	2009-01-29 20:27:48.000000000 -0500
@@ -1,5 +1,5 @@
---- stats.sh.orig	2008-08-06 17:43:32.000000000 -0400
-+++ stats.sh	2008-08-06 17:47:16.000000000 -0400
+--- stats.sh.orig	2009-01-29 13:19:18.000000000 -0500
++++ stats.sh	2009-01-29 20:27:14.000000000 -0500
 @@ -1,15 +1,23 @@
  #!/bin/sh
  
@@ -43,7 +43,7 @@
  #
  # I got the idea for this script from Mark Constable. He submitted
  #  a similar script to follow the Courier-MTA /var/log/maillog
-@@ -46,91 +47,308 @@
+@@ -46,91 +47,315 @@
  # Some fields are truncated (with a hard-coded length value, usually 40)
  #   to keep each line more or less intact on your screen as things scroll by
  # Colors are coded with ANSI Color coding, your mileage may vary ...
@@ -136,11 +136,11 @@
 - }'
 +tail -300 -f /var/db/assp/maillog.txt | awk  '
 +  {
-+    # look for $3 ~ [reason]
++    # skip over "[reason]" fields
 +    p=0
-+    if ($3 ~ /\[.*\]/) p=1
++    if ($(p+4) ~ /\[.*]/) p++
 +  }
-+  /local or whitelisted/ {
++  /\[Local]|\[Whitelisted]|local or whitelisted/ {
 +    printf("%s %s \033[1;32m%-15s\033[0m \033[1;37mLW  %s\033[0m \033[1;32m->\033[0m \033[1;37m%s\033[0m\n",
 +        $1,
 +        $2,
@@ -149,8 +149,10 @@
 +        $(p+7) )
 +    next
 +  }
-+  /[Em]ail whitelist (addition|deletion):/ {
-+    printf("%s %s \033[1;36m%-15s\033[0m \033[1;36mW%s %s\033[0m \033[1;37m%s\033[0m \033[1;36m%s\033[0m\n",
++  /[Em]ail whitelist (addition|deletion):*/ {
++    if (/(addition|deletion)$/)
++	next
++    printf("%s %s \033[1;36m%-15s\033[0m \033[1;36mW%s  %s\033[0m \033[1;37m%s\033[0m \033[1;36m%s\033[0m\n",
 +	$1,
 +	$2,
 +	$(p+4),
@@ -161,7 +163,7 @@
 +    next
 +  }
 +  /whitelist addition:/ && !/[Ee]mail/ {
-+    printf("%s %s \033[1;36m%-15s\033[0m \033[1;36mWC %s\033[0m \033[1;37m%s\033[0m \033[1;36m%s\033[0m\n",
++    printf("%s %s \033[1;36m%-15s\033[0m \033[1;36mWC  %s\033[0m \033[1;37m%s\033[0m \033[1;36m%s\033[0m\n",
 +	$1,
 +	$2,
 +	$(p+4),
@@ -181,11 +183,11 @@
 +	($(p+8)) ? " " $(p+8) : "" )
 +    next
 +  }
-+  /Bayesian Check ( - )?Prob/ {
++  /Bayesian Check (- )?Prob/ {
 +    # suppress
 +    next
 +  }
-+  /Bayesian [Ss]pam/ {
++  /\[Bayesian]|Bayesian [Ss]pam/ {
 +    printf("%s %s \033[1;31m%-15s BS  %s -> %s\033[0m\n",
 +        $1,
 +        $2,
@@ -198,7 +200,7 @@
 +    # suppress
 +    next
 +  }
-+  /message ok/ {
++  /\[MessageOK]|message ok/ {
 +    printf("%s %s \033[1;32m%-15s OK  %s -> %s\033[0m\n",
 +        $1,
 +        $2,
@@ -247,7 +249,7 @@
 +        $(p+8) )
 +    next
 +  }
-+  /Unknown Sender (with|from) Local Domain/ {
++  /\[InvalidLocalSender]|Unknown Sender (with|from) Local Domain/ {
 +    printf("%s %s \033[1;34m%-15s IS  %s\033[0m\n",
 +        $1,
 +        $2,
@@ -272,21 +274,21 @@
 +        $(p+7) )
 +    next
 +  }
-+  /(\[DNSBL]|\[DNSBLcache]).* rejected by / {
++  /(\[DNSBL]|\[DNSBLcache]).* (listed|rejected) by / {
 +    printf("%s %s \033[1;35m%-15s BL  %s (%s blacklisted by %s)\033[0m\n",
 +        $1,
 +        $2,
 +        $(p+4),
 +        substr($(p+5),1,40),
-+        $(p+7),
-+	$(p+10) )
++        /listed/ ? $(p+11) : $(p+7),
++	/listed/ ? $(p+14) : $(p+10) )
 +    next
 +  }
-+  /Received-SPF(\(cache\))?: (pass|neutral)| SPF: (soft)?fail|SPFstrict/ {
++  /\[SPF] .* SPF: (unknown|pass|neutral)|\[SPF] .*\(SPF neutral\)|Received-SPF(\(cache\))?: (pass|neutral)| SPF: (soft)?fail|SPFstrict/ {
 +    # suppress
 +    next
 +  }
-+  /failed SPF checks|Received-SPF(\(cache\))?: ((soft)?fail|error)| SPF: neutral/ {
++  /failed SPF checks|Received-SPF(\(cache\))?: ((soft)?fail|error)/ {
 +    printf("%s %s \033[1;35m%-15s SP  %s -> %s\033[0m\n",
 +        $1,
 +        $2,
@@ -295,14 +297,14 @@
 +        $(p+7) )
 +    next
 +  }
-+  /has spam helo|HELO-Blacklist:/ {
++  /\[ForgedHELO]|has spam helo|HELO-Blacklist:/ {
 +    printf("%s %s \033[1;35m%-15s HL  %s -> %s %s\033[0m\n",
 +        $1,
 +        $2,
 +        $(p+4),
 +        substr($(p+5),1,40),
-+        $(p+7),
-+        $(p+11) )
++        /found]/ ? "" : $(p+7),
++        /found]/ ? "(" $(p+10) : $(p+11) )
 +    next
 +  }
 +  /Forged HELO:/ {
@@ -333,7 +335,7 @@
 +        $2,
 +        $(p+4),
 +        substr($(p+5),1,40),
-+        $(p+8) )
++        /bounce|to:/ ? $(p+7) : $(p+8) )
 +    next
 +  }
 +  /DATA phase delayed/ {
@@ -344,7 +346,7 @@
 +    printf("\033[1;33m%s\033[0m\n", $0)
 +    next
 +  }
-+  /ClamAV: scanning/ {
++  /ClamAV: .* - OK $/ {
 +    # suppress
 +    next
 +  }
@@ -360,37 +362,33 @@
 +    # suppress
 +    next
 +  }
-+  /\[VIRUS].*PB:.*score:.*reason:/ {
++  /PB:.*score: [0-9]+\+[0-9]+ => [0-9]+ reason:|PB-Message-Score|PB-IP-Score|\[scoring]/ {
 +    # suppress
 +    next
-+    printf("%s %s\033[1;35m %-15s PB  %s %s %s %s (%s)\033[0m\n",
-+	$1,
-+	$2,
-+	$(p+4),
-+	$(p+10), $(p+11), $(p+12), $(p+13),
-+	substr($(p+14),8,40) )
-+    next
 +  }
-+  /PB:( deleting\(black\)|.*score:.*reason:)/ {
-+    # suppress
-+    next
-+    printf("%s %s\033[1;34m %-15s PB  %s %s %s %s (%s)\033[0m\n",
++#  /PB:( deleting\(black\)/ {
++#    printf("%s %s\033[1;35m %-15s PB  %s %s %s %s (%s)\033[0m\n",
++#	$1,
++#	$2,
++#	$(p+4),
++#	$(p+8), $(p+9), $(p+10), $(p+11),
++#	substr($(p+12),8,40) )
++#    next
++#  }
++  /PBextreme |PBextreme:monitoring/ {
++    printf("%s %s\033[1;35m %-15s PB  %s extreme %s\033[0m\n",
 +	$1,
 +	$2,
 +	$(p+4),
-+	$(p+8), $(p+9), $(p+10), $(p+11),
-+	substr($(p+12),8,40) )
-+    next
-+  }
-+  /PBextreme:monitoring/ {
-+    # suppress
++	substr($(p+5),1,40),
++	$(p+7) )
 +    next
 +  }
 +  /(\[ValidHelo]|\[InvalidHelo]|\[PTRinvalid]|\[PTRmissing])\[scoring]/ {
 +    # suppress
 +    next
 +  }
-+  /Message Limit/ {
++  /\[MessageLimit]|Message Limit/ {
 +    printf("%s %s\033[1;35m %-15s PB  %s -> %s\033[0m\n",
 +	$1,
 +	$2,
@@ -424,6 +422,15 @@
 +    # suppress
 +    next
 +  }
++  /invalid remote sender for internal address/ {
++    printf("%s %s \033[1;35m%-15s IO  %s -> %s\033[0m\n",
++        $1,
++        $2,
++        $(p+4),
++        $(p+5),
++        substr($(p+12),1,40) )
++    next
++  }
 +  {
 +    printf("%s %s ", $1, $2)
 +    for (i=3; i<=NF; i++)
diff -ruN /usr/ports/mail/assp/pkg-plist mail/assp/pkg-plist
--- /usr/ports/mail/assp/pkg-plist	2008-08-16 14:12:14.000000000 -0400
+++ mail/assp/pkg-plist	2009-01-25 23:09:51.000000000 -0500
@@ -4,15 +4,12 @@
 lib/assp/addservice.pl
 lib/assp/assp.pl
 lib/assp/files/URIBLCCTLDS.txt
-lib/assp/files/blackdomains.txt
 lib/assp/files/bombre.txt
 lib/assp/files/invalidptr.txt
 lib/assp/files/ipnp.txt
-lib/assp/files/ipwl.txt
 lib/assp/files/nodelay.txt
-lib/assp/files/rbl-service.txt
 lib/assp/files/redre.txt
-lib/assp/files/whitedomains.txt
+lib/assp/images/Thumbs.db
 lib/assp/images/assp.css
 lib/assp/images/dropShadow.gif
 lib/assp/images/editor.css
@@ -23,16 +20,21 @@
 lib/assp/images/noIcon.png
 lib/assp/images/opensource-logo.gif
 lib/assp/images/plusIcon.png
+lib/assp/images/project-support.jpg
 lib/assp/images/shutdown.css
 lib/assp/images/sourceforge-logo.gif
+lib/assp/images/valid-xhtml10.gif
 lib/assp/images/village.gif
+lib/assp/images/xml-pill.gif
 lib/assp/move2num.pl
 lib/assp/rebuildspamdb.pl
+lib/assp/reports/analyzereport.txt
 lib/assp/reports/helpreport.txt
 lib/assp/reports/notspamreport.txt
 lib/assp/reports/redremovereport.txt
 lib/assp/reports/redreport.txt
 lib/assp/reports/spamreport.txt
+lib/assp/reports/virusreport.txt
 lib/assp/reports/whiteremovereport.txt
 lib/assp/reports/whitereport.txt
 lib/assp/stat.pl
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list