1 |
slords |
1.1 |
diff -Nur -x '*.orig' -x '*.rej' smeserver-mailstats-0.0.2/root/usr/bin/spamfilter-stats-7.pl mezzanine_patched_smeserver-mailstats-0.0.2/root/usr/bin/spamfilter-stats-7.pl |
2 |
|
|
--- smeserver-mailstats-0.0.2/root/usr/bin/spamfilter-stats-7.pl 2007-10-11 17:25:50.000000000 -0400 |
3 |
|
|
+++ mezzanine_patched_smeserver-mailstats-0.0.2/root/usr/bin/spamfilter-stats-7.pl 2007-10-11 17:25:24.000000000 -0400 |
4 |
|
|
@@ -76,6 +76,8 @@ |
5 |
|
|
# - sort out domains when more that one email address in recipient field |
6 |
|
|
# 0.6.16 - cb - fix date range bug (http://bugs.contribs.org/show_bug.cgi?id=3366) |
7 |
|
|
# 0.6.17 - cb - avoid numerous re-openings of config db |
8 |
|
|
+# 0.6.18 - cb - tidy up options configuration section |
9 |
|
|
+# 0.6.19 - cb - rename parse_args => analysis_period, and simplify |
10 |
|
|
# |
11 |
|
|
# TODO |
12 |
|
|
# ---- |
13 |
|
|
@@ -121,16 +123,19 @@ |
14 |
|
|
use Switch; |
15 |
|
|
|
16 |
|
|
my $hostname = hostname(); |
17 |
|
|
+my $cdb = esmith::ConfigDB->open_ro or die "Couldn't open ConfigDB : $!\n"; |
18 |
|
|
|
19 |
|
|
#Configuration section |
20 |
|
|
-my %opt = (); |
21 |
|
|
+my %opt = ( |
22 |
|
|
+ version => '0.6.19', # please update at each change. |
23 |
|
|
+ debug => 0, # guess what ? |
24 |
|
|
+ sendmail => '/usr/sbin/sendmail', # Path to sendmail stub |
25 |
|
|
+ from => 'spamfilter-stats', # Who is the mail from |
26 |
|
|
+ mail => # mailstats email recipient |
27 |
|
|
+ $cdb->get('mailstats')->prop('Email') || 'admin', |
28 |
|
|
+ timezone => `date +%z`, |
29 |
|
|
+); |
30 |
|
|
|
31 |
|
|
-$opt{'version'} = '0.6.16'; # please update at each change. |
32 |
|
|
-$opt{'debug'} = 0; # guess what ? |
33 |
|
|
-$opt{'sendmail'} = '/usr/sbin/sendmail'; # Path to sendmail stub |
34 |
|
|
-$opt{'from'} = 'spamfilter-stats'; # Who is the mail from |
35 |
|
|
-#$opt{'mail'} = "admin"; - set from db now... |
36 |
|
|
-$opt{'timezone'} = `date +%z`; |
37 |
|
|
Date_Init("TZ=$opt{'timezone'}"); |
38 |
|
|
|
39 |
|
|
my $FetchmailIP = '127.0.0.200'; #Apparent Ip address of fetchmail deliveries |
40 |
|
|
@@ -232,7 +237,6 @@ |
41 |
|
|
|
42 |
|
|
# store the domain of interest. Every other records are stored in a 'Other' zone |
43 |
|
|
my $ddb = esmith::DomainsDB->open_ro or die "Couldn't open DomainsDB : $!\n"; |
44 |
|
|
-my $cdb = esmith::ConfigDB->open_ro or die "Couldn't open ConfigDB : $!\n"; |
45 |
|
|
|
46 |
|
|
foreach my $domain( $ddb->get_all_by_prop( type => "domain" ) ) { |
47 |
|
|
$byrcptdomain{ $domain->key }{ 'type' }='local'; |
48 |
|
|
@@ -253,7 +257,7 @@ |
49 |
|
|
} |
50 |
|
|
} |
51 |
|
|
|
52 |
|
|
-my ( $start, $end ) = parse_arg(); |
53 |
|
|
+my ( $start, $end ) = analysis_period(); |
54 |
|
|
|
55 |
|
|
# |
56 |
|
|
# First check current configuration for logging, DNS enable and Max threshold for spamassassin |
57 |
|
|
@@ -283,9 +287,6 @@ |
58 |
|
|
my $db = esmith::ConfigDB->open; my $record = $db->new_record('mailstats', { type => 'report', Status => 'enabled' }); |
59 |
|
|
$disabled = $false; |
60 |
|
|
} |
61 |
|
|
-# check mailstats email recipient |
62 |
|
|
-my $email = $cdb->get('mailstats')->prop('Email') || 'admin'; |
63 |
|
|
-$opt{'mail'} = $email; |
64 |
|
|
|
65 |
|
|
|
66 |
|
|
if ( !$RHSenabled || !$DNSenabled ) { |
67 |
|
|
@@ -942,10 +943,10 @@ |
68 |
|
|
############################################################################# |
69 |
|
|
|
70 |
|
|
|
71 |
|
|
-######################################## |
72 |
|
|
-# Process parms # |
73 |
|
|
-######################################## |
74 |
|
|
-sub parse_arg { |
75 |
|
|
+################################################ |
76 |
|
|
+# Determine analysis period (start and end time) |
77 |
|
|
+################################################ |
78 |
|
|
+sub analysis_period { |
79 |
|
|
my $startdate = shift; |
80 |
|
|
my $enddate = shift; |
81 |
|
|
|
82 |
|
|
@@ -953,30 +954,11 @@ |
83 |
|
|
my $time = 0; |
84 |
|
|
|
85 |
|
|
my $start = UnixDate( $startdate, "%s" ); |
86 |
|
|
- my $end = UnixDate( $enddate, "%s" ); |
87 |
|
|
- |
88 |
|
|
- if ( !$start && !$end ) { |
89 |
|
|
- $end = time; |
90 |
|
|
- $start = $end - $secsinday; |
91 |
|
|
- return ( $start, $end ); |
92 |
|
|
- } |
93 |
|
|
- |
94 |
|
|
- if ( !$start ) { |
95 |
|
|
- $start = $end - $secsinday; |
96 |
|
|
- return ( $start, $end ); |
97 |
|
|
- } |
98 |
|
|
- |
99 |
|
|
- if ( !$end ) { |
100 |
|
|
- $end = $start + $secsinday; |
101 |
|
|
- return ( $start, $end ); |
102 |
|
|
- } |
103 |
|
|
- |
104 |
|
|
- if ( $start > $end ) { |
105 |
|
|
- return ( $end, $start ); |
106 |
|
|
- } |
107 |
|
|
- |
108 |
|
|
- return ( $start, $end ); |
109 |
|
|
+ my $end = $enddate ? UnixDate( $enddate, "%s" ) : |
110 |
|
|
+ $startdate ? $start + $secsinday : time; |
111 |
|
|
+ $start = $startdate ? $start : $end - $secsinday; |
112 |
|
|
|
113 |
|
|
+ return ( $start > $end ) ? ( $end, $start ) : ( $start, $end ); |
114 |
|
|
} |
115 |
|
|
|
116 |
|
|
sub dbg { |