1 --- amavis-stats-0.1.13-rc6/amavis-stats.orig 2004-05-17 08:07:51.000000000 +0000
2 +++ amavis-stats-0.1.13-rc6/amavis-stats 2004-08-06 07:27:08.849931336 +0000
5 use POSIX qw(strftime);
6 use POSIX qw(locale_h);
10 # ########################################################################
19 + my ($fname, $start) = @_;
20 + dbg("parseFilegz ($fname, $start)");
23 + # Open up the file we need to parse
25 + my $gz = gzopen ($fname, "rb");
28 + err("Couldn't open logfile $fname");
33 + # Loop each line until the current end of file
36 + while ($pos < $start) {
37 + $pos += $gz->gzreadline($line);
42 + $p = $gz->gzreadline($line);
47 + $lastepoch = $epoch;
49 + if ($line =~ /amavis.*?\[\d+\]:/) {
53 + # Save the current statistics every 1000 lines. This way
54 + # if the program dies we don't have to start again from the
55 + # beginning each time. Also good for monitoring the graphs
56 + # to see where we are up to.
58 + if (!($lineid % 1000)) {
68 # Find the previous (rotated) log file and parse that according to
73 if (-f "$logfile.0") {
74 $rotlogfile = $logfile . ".0";
75 + } elsif (-f "$logfile.0.gz") {
76 + $rotlogfile = $logfile . ".0.gz";
77 } elsif (-f "$logfile.1") {
78 $rotlogfile = $logfile . ".1";
79 + } elsif (-f "$logfile.1.gz") {
80 + $rotlogfile = $logfile . ".1.gz";
81 } elsif (-f "$logfile.01") {
82 $rotlogfile = $logfile . ".01";
83 + } elsif (-f "$logfile.01.gz") {
84 + $rotlogfile = $logfile . ".01.gz";
85 } elsif (-f "$logfile-$today") {
86 $rotlogfile = $logfile . "-$today";
87 + } elsif (-f "$logfile-$today.gz") {
88 + $rotlogfile = $logfile . "-$today.gz";
89 } elsif (-f "$logfile-$yesterday") {
90 $rotlogfile = $logfile . "-$yesterday";
91 + } elsif (-f "$logfile-$yesterday.gz") {
92 + $rotlogfile = $logfile . "-$yesterday.gz";
94 + $rotlogfile = $logfile;
95 +# $rotlogfile =~ s/(.*)\/([a-z]*)/$1\/archiv\/$2/g;
96 + $rotlogfile =~ s/\/var\/log\/(.*)/\/var\/log\/archiv\/$1/g;
97 + if ($rotlogfile eq $logfile) {
98 + $rotlogfile = "archiv/$logfile";
100 + if (-f "$rotlogfile.0") {
101 + $rotlogfile = $rotlogfile . ".0";
102 + } elsif (-f "$rotlogfile.0.gz") {
103 + $rotlogfile = $rotlogfile . ".0.gz";
104 + } elsif (-f "$rotlogfile.1") {
105 + $rotlogfile = $rotlogfile . ".1";
106 + } elsif (-f "$rotlogfile.1.gz") {
107 + $rotlogfile = $rotlogfile . ".1.gz";
108 + } elsif (-f "$rotlogfile.01") {
109 + $rotlogfile = $rotlogfile . ".01";
110 + } elsif (-f "$rotlogfile.01.gz") {
111 + $rotlogfile = $rotlogfile . ".01.gz";
112 + } elsif (-f "$rotlogfile-$today") {
113 + $rotlogfile = $rotlogfile . "-$today";
114 + } elsif (-f "$rotlogfile-$today.gz") {
115 + $rotlogfile = $rotlogfile . "-$today.gz";
116 + } elsif (-f "$rotlogfile-$yesterday") {
117 + $rotlogfile = $rotlogfile . "-$yesterday";
118 + } elsif (-f "$rotlogfile-$yesterday.gz") {
119 + $rotlogfile = $rotlogfile . "-$yesterday.gz";
121 + if (! -f $rotlogfile) {
122 + $rotlogfile = undef;
126 if (defined $rotlogfile) {
127 - parseFile ($rotlogfile, $spos, (stat $rotlogfile)[7]);
128 + if ( $rotlogfile =~ /\.gz$/ ) {
129 + parseFilegz ($rotlogfile, $spos);
131 + parseFile ($rotlogfile, $spos, (stat $rotlogfile)[7]);
134 err("Could not open rotated logfile.");
135 err(" Tried extentions .0, .1, .01, -$today, -$yesterday");
137 $spos = 0; # reset to the start of the file
140 +if ( $logfile =~ /\.gz$/ ) {
141 +parseFilegz ($logfile, $spos);
143 parseFile ($logfile, $spos, $eof);