------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.

http://www.exim.org/bugzilla/show_bug.cgi?id=483

           Summary: eximstats patch fixes html table headers, html anchors
                    for top counts, ehlo checks
           Product: Exim
           Version: 4.66
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: bug
          Priority: low
         Component: Eximstats
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]
         QAContact: [email protected]


I came across a few minor problems with Eximstats when trying to output stats
in HTML format - mostly HTML markup issues, though one fix is for checking of
bad EHLO checks.

The complete patch against src/eximstats.src v4.66 is at the end of this
message.

The original mail I was going to send to the mailing list is below:

-snip-
Find attached a patch against src/eximstats.src (v4.66) that modifies eximstats
to fix:

- printing of all table column headers in 'html' mode:
==
@@ -1359,7 +1359,7 @@
 <tr><td>
 <table border=1>
 EoText
-    print $htm_col_headers;
+    print $htm_fh $htm_col_headers;
   }

   if ($xls_fh) {
==

- html anchors for the top counts:
==
@@ -2437,31 +2437,31 @@

     print $htm_fh "<li><a href=\"#Relayed messages\">Relayed messages</a>\n"
if $show_relay;
     if ($topcount) {
-      print $htm_fh "<li><a href=\"#mail rejection reason count\">Top
$topcount mail rejection reasons by message count</a>\n" if
%rejected_count_by_reason;
+      print $htm_fh "<li><a href=\"#Mail rejection reason count\">Top
$topcount mail rejection reasons by message count</a>\n" if
%rejected_count_by_reason;
       foreach ('Host','Domain','Email','Edomain') {
         next unless $do_sender{$_};
-        print $htm_fh "<li><a href=\"#sending \l$_ count\">Top $topcount
sending \l${_}s by message count</a>\n";
-        print $htm_fh "<li><a href=\"#sending \l$_ volume\">Top $topcount
sending \l${_}s by volume</a>\n";
+        print $htm_fh "<li><a href=\"#Sending \l$_ count\">Top $topcount
sending \l${_}s by message count</a>\n";
+        print $htm_fh "<li><a href=\"#Sending \l$_ volume\">Top $topcount
sending \l${_}s by volume</a>\n";
       }
       if (($local_league_table || $include_remote_users) &&
%received_count_user) {
-        print $htm_fh "<li><a href=\"#local sender count\">Top $topcount local
senders by message count</a>\n";
-        print $htm_fh "<li><a href=\"#local sender volume\">Top $topcount
local senders by volume</a>\n";
+        print $htm_fh "<li><a href=\"#Local sender count\">Top $topcount local
senders by message count</a>\n";
+        print $htm_fh "<li><a href=\"#Local sender volume\">Top $topcount
local senders by volume</a>\n";
       }
       foreach ('Host','Domain','Email','Edomain') {
         next unless $do_sender{$_};
-        print $htm_fh "<li><a href=\"#\l$_ destination count\">Top $topcount
\l$_ destinations by message count</a>\n";
-        print $htm_fh "<li><a href=\"#\l$_ destination volume\">Top $topcount
\l$_ destinations by volume</a>\n";
+        print $htm_fh "<li><a href=\"#$_ destination count\">Top $topcount
\l$_ destinations by message count</a>\n";
+        print $htm_fh "<li><a href=\"#$_ destination volume\">Top $topcount
\l$_ destinations by volume</a>\n";
       }
       if (($local_league_table || $include_remote_users) &&
%delivered_messages_user) {
-        print $htm_fh "<li><a href=\"#local destination count\">Top $topcount
local destinations by message count</a>\n";
-        print $htm_fh "<li><a href=\"#local destination volume\">Top $topcount
local destinations by volume</a>\n";
+        print $htm_fh "<li><a href=\"#Local destination count\">Top $topcount
local destinations by message count</a>\n";
+        print $htm_fh "<li><a href=\"#Local destination volume\">Top $topcount
local destinations by volume</a>\n";
       }

-      print $htm_fh "<li><a href=\"#rejected ip count\">Top $topcount rejected
ips by message count</a>\n" if %rejected_count_by_ip;
-      print $htm_fh "<li><a href=\"#non-rejected spamming ip count\">Top
$topcount non-rejected spamming ips by message count</a>\n" if
%spam_count_by_ip;
+      print $htm_fh "<li><a href=\"#Rejected ip count\">Top $topcount rejected
ips by message count</a>\n" if %rejected_count_by_ip;
+      print $htm_fh "<li><a href=\"#Non-rejected spamming ip count\">Top
$topcount non-rejected spamming ips by message count</a>\n" if
%spam_count_by_ip;

     }
-    print $htm_fh "<li><a href=\"#errors\">List of errors</a>\n" if
%errors_count;
+    print $htm_fh "<li><a href=\"#Errors\">List of errors</a>\n" if
%errors_count;
     print $htm_fh "</ul>\n<hr>\n";
   }
   if ($xls_fh)
==

and finally:

- checking for bad EHLO checks:
==
@@ -2268,7 +2268,7 @@
     if ($flag eq "Re" || ($flag eq "=>" && ! /\\sT=\\S+/)) {
       # Correct the IP address for rejects:
       # rejected EHLO from my.test.net [10.0.0.5]: syntactically invalid
argument(s):
-      $ip = $1 if ($ip eq "local" && /^rejected [HE][HE]LO from .*?
(\[.+?\]):/);
+      $ip = $1 if ($ip eq "local" && /^rejected [HE][EH]LO from .*?
(\[.+?\]):/);
       ++$rejected_count_by_ip{$ip};
       if (
         /(listed at [^ ]+)/ ||
==


-- 
Jez Hancock
 - System Administrator / PHP Developer

http://freebsd.munk.me.uk/      - A FreeBSD Admin Weblog
http://ipfwstats.sf.net/        - ipfw peruser traffic logging
-snip-


Finally, here is the complete patch file against src/eximstats.src 4.66:

-snip-
--- src/eximstats.src   Mon Jan  8 14:25:36 2007
+++ src/eximstats.new   Tue Mar 13 11:44:59 2007
@@ -1359,7 +1359,7 @@
 <tr><td>
 <table border=1>
 EoText
-    print $htm_col_headers;
+    print $htm_fh $htm_col_headers;
   }

   if ($xls_fh) {
@@ -1458,7 +1458,7 @@
 <tr><td>
 <table border=1>
 EoText
-    print $htm_col_headers;
+      print $htm_fh $htm_col_headers;
     }
     if ($xls_fh) {
       $spreadsheet->write(${$row_sref}++, 0, $title, $f_header2);
@@ -2268,7 +2268,7 @@
     if ($flag eq "Re" || ($flag eq "=>" && ! /\\sT=\\S+/)) {
       # Correct the IP address for rejects:
       # rejected EHLO from my.test.net [10.0.0.5]: syntactically invalid
argument(s):
-      $ip = $1 if ($ip eq "local" && /^rejected [HE][HE]LO from .*?
(\[.+?\]):/);
+      $ip = $1 if ($ip eq "local" && /^rejected [HE][EH]LO from .*?
(\[.+?\]):/);
       ++$rejected_count_by_ip{$ip};
       if (
         /(listed at [^ ]+)/ ||
@@ -2437,31 +2437,31 @@

     print $htm_fh "<li><a href=\"#Relayed messages\">Relayed messages</a>\n"
if $show_relay;
     if ($topcount) {
-      print $htm_fh "<li><a href=\"#mail rejection reason count\">Top
$topcount mail rejection reasons by message count</a>\n" if
%rejected_count_by_reason;
+      print $htm_fh "<li><a href=\"#Mail rejection reason count\">Top
$topcount mail rejection reasons by message count</a>\n" if
%rejected_count_by_reason;
       foreach ('Host','Domain','Email','Edomain') {
         next unless $do_sender{$_};
-        print $htm_fh "<li><a href=\"#sending \l$_ count\">Top $topcount
sending \l${_}s by message count</a>\n";
-        print $htm_fh "<li><a href=\"#sending \l$_ volume\">Top $topcount
sending \l${_}s by volume</a>\n";
+        print $htm_fh "<li><a href=\"#Sending \l$_ count\">Top $topcount
sending \l${_}s by message count</a>\n";
+        print $htm_fh "<li><a href=\"#Sending \l$_ volume\">Top $topcount
sending \l${_}s by volume</a>\n";
       }
       if (($local_league_table || $include_remote_users) &&
%received_count_user) {
-        print $htm_fh "<li><a href=\"#local sender count\">Top $topcount local
senders by message count</a>\n";
-        print $htm_fh "<li><a href=\"#local sender volume\">Top $topcount
local senders by volume</a>\n";
+        print $htm_fh "<li><a href=\"#Local sender count\">Top $topcount local
senders by message count</a>\n";
+        print $htm_fh "<li><a href=\"#Local sender volume\">Top $topcount
local senders by volume</a>\n";
       }
       foreach ('Host','Domain','Email','Edomain') {
         next unless $do_sender{$_};
-        print $htm_fh "<li><a href=\"#\l$_ destination count\">Top $topcount
\l$_ destinations by message count</a>\n";
-        print $htm_fh "<li><a href=\"#\l$_ destination volume\">Top $topcount
\l$_ destinations by volume</a>\n";
+        print $htm_fh "<li><a href=\"#$_ destination count\">Top $topcount
\l$_ destinations by message count</a>\n";
+        print $htm_fh "<li><a href=\"#$_ destination volume\">Top $topcount
\l$_ destinations by volume</a>\n";
       }
       if (($local_league_table || $include_remote_users) &&
%delivered_messages_user) {
-        print $htm_fh "<li><a href=\"#local destination count\">Top $topcount
local destinations by message count</a>\n";
-        print $htm_fh "<li><a href=\"#local destination volume\">Top $topcount
local destinations by volume</a>\n";
+        print $htm_fh "<li><a href=\"#Local destination count\">Top $topcount
local destinations by message count</a>\n";
+        print $htm_fh "<li><a href=\"#Local destination volume\">Top $topcount
local destinations by volume</a>\n";
       }

-      print $htm_fh "<li><a href=\"#rejected ip count\">Top $topcount rejected
ips by message count</a>\n" if %rejected_count_by_ip;
-      print $htm_fh "<li><a href=\"#non-rejected spamming ip count\">Top
$topcount non-rejected spamming ips by message count</a>\n" if
%spam_count_by_ip;
+      print $htm_fh "<li><a href=\"#Rejected ip count\">Top $topcount rejected
ips by message count</a>\n" if %rejected_count_by_ip;
+      print $htm_fh "<li><a href=\"#Non-rejected spamming ip count\">Top
$topcount non-rejected spamming ips by message count</a>\n" if
%spam_count_by_ip;

     }
-    print $htm_fh "<li><a href=\"#errors\">List of errors</a>\n" if
%errors_count;
+    print $htm_fh "<li><a href=\"#Errors\">List of errors</a>\n" if
%errors_count;
     print $htm_fh "</ul>\n<hr>\n";
   }
   if ($xls_fh)
-snip-

-- 
Configure bugmail: http://www.exim.org/bugzilla/userprefs.cgi?tab=email

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-dev Exim details 
at http://www.exim.org/ ##

Reply via email to