1 diff -ur amavis-stats-0.1.10.orig/amavis-stats amavis-stats-0.1.10/amavis-stats
2 --- amavis-stats-0.1.10.orig/amavis-stats 2004-02-08 19:43:59.000000000 +0100
3 +++ amavis-stats-0.1.10/amavis-stats 2004-03-15 15:41:44.000000000 +0100
6 use POSIX qw(strftime);
7 use POSIX qw(locale_h);
11 # ########################################################################
20 + my ($fname, $start) = @_;
21 + dbg("parseFilegz ($fname, $start)");
24 + # Open up the file we need to parse
26 + my $gz = gzopen ($fname, "rb");
29 + err("Couldn't open logfile $fname");
34 + # Loop each line until the current end of file
37 + while ($pos < $start) {
38 + $pos += $gz->gzreadline($line);
43 + $p = $gz->gzreadline($line);
48 + $lastepoch = $epoch;
50 + if ($line =~ /amavis.*?\[\d+\]:/) {
54 + # Save the current statistics every 1000 lines. This way
55 + # if the program dies we don't have to start again from the
56 + # beginning each time. Also good for monitoring the graphs
57 + # to see where we are up to.
59 + if (!($lineid % 1000)) {
69 # Find the previous (rotated) log file and parse that according to
74 if (-f "$logfile.0") {
75 $rotlogfile = $logfile . ".0";
76 + } elsif (-f "$logfile.0.gz") {
77 + $rotlogfile = $logfile . ".0.gz";
78 } elsif (-f "$logfile.1") {
79 $rotlogfile = $logfile . ".1";
80 + } elsif (-f "$logfile.1.gz") {
81 + $rotlogfile = $logfile . ".1.gz";
82 } elsif (-f "$logfile.01") {
83 $rotlogfile = $logfile . ".01";
84 + } elsif (-f "$logfile.01.gz") {
85 + $rotlogfile = $logfile . ".01.gz";
86 } elsif (-f "$logfile-$today") {
87 $rotlogfile = $logfile . "-$today";
88 + } elsif (-f "$logfile-$today.gz") {
89 + $rotlogfile = $logfile . "-$today.gz";
90 } elsif (-f "$logfile-$yesterday") {
91 $rotlogfile = $logfile . "-$yesterday";
92 + } elsif (-f "$logfile-$yesterday.gz") {
93 + $rotlogfile = $logfile . "-$yesterday.gz";
95 + $rotlogfile = $logfile;
96 +# $rotlogfile =~ s/(.*)\/([a-z]*)/$1\/archiv\/$2/g;
97 + $rotlogfile =~ s/\/var\/log\/(.*)/\/var\/log\/archiv\/$1/g;
98 + if ($rotlogfile eq $logfile) {
99 + $rotlogfile = "archiv/$logfile";
101 + if (-f "$rotlogfile.0") {
102 + $rotlogfile = $rotlogfile . ".0";
103 + } elsif (-f "$rotlogfile.0.gz") {
104 + $rotlogfile = $rotlogfile . ".0.gz";
105 + } elsif (-f "$rotlogfile.1") {
106 + $rotlogfile = $rotlogfile . ".1";
107 + } elsif (-f "$rotlogfile.1.gz") {
108 + $rotlogfile = $rotlogfile . ".1.gz";
109 + } elsif (-f "$rotlogfile.01") {
110 + $rotlogfile = $rotlogfile . ".01";
111 + } elsif (-f "$rotlogfile.01.gz") {
112 + $rotlogfile = $rotlogfile . ".01.gz";
113 + } elsif (-f "$rotlogfile-$today") {
114 + $rotlogfile = $rotlogfile . "-$today";
115 + } elsif (-f "$rotlogfile-$today.gz") {
116 + $rotlogfile = $rotlogfile . "-$today.gz";
117 + } elsif (-f "$rotlogfile-$yesterday") {
118 + $rotlogfile = $rotlogfile . "-$yesterday";
119 + } elsif (-f "$rotlogfile-$yesterday.gz") {
120 + $rotlogfile = $rotlogfile . "-$yesterday.gz";
122 + if (! -f $rotlogfile) {
123 + $rotlogfile = undef;
127 if (defined($rotlogfile)) {
128 - parseFile ($rotlogfile, $spos, (stat $rotlogfile)[7]);
129 + if ( $rotlogfile =~ /\.gz$/ ) {
130 + parseFilegz ($rotlogfile, $spos);
132 + parseFile ($rotlogfile, $spos, (stat $rotlogfile)[7]);
135 err("Could not open rotated logfile.");
136 err(" Tried extentions .0, .1, .01, -$today, -$yesterday");
138 $spos = 0; # reset to the start of the file
141 +if ( $logfile =~ /\.gz$/ ) {
142 +parseFilegz ($logfile, $spos);
144 parseFile ($logfile, $spos, $eof);