andykimpe / rpms / 389-ds-base

Forked from rpms/389-ds-base 4 months ago
Clone
Blob Blame History Raw
From f2d2ce977345edd9cd61eb8857c0ce527cee11d2 Mon Sep 17 00:00:00 2001
From: Mark Reynolds <mreynolds@redhat.com>
Date: Tue, 27 May 2014 10:57:32 -0400
Subject: [PATCH 215/225] Ticket 47713 - Logconv.pl with an empty access log
 gives lots of errors

Description:  Was missing a check to see if a log file was empty,
              also fixed some "experimental" warnings in perl 5.18
              caused by the use of "my $_".

https://fedorahosted.org/389/ticket/47713

Reviewed by: nhosoi(Thanks!)

(cherry picked from commit c476d41935397f250f6d942dc653851b82019953)
(cherry picked from commit 147238158be0a0a2303d90235ab62b6c6e1f2e4b)
(cherry picked from commit 8155bea1a706fb1870036c6be2202c6a01dd6dde)
---
 ldap/admin/src/logconv.pl | 35 ++++++++++++++++++++++++-----------
 1 file changed, 24 insertions(+), 11 deletions(-)

diff --git a/ldap/admin/src/logconv.pl b/ldap/admin/src/logconv.pl
index 99e0efd..ea33544 100755
--- a/ldap/admin/src/logconv.pl
+++ b/ldap/admin/src/logconv.pl
@@ -196,8 +196,8 @@ if ($sizeCount eq "all"){$sizeCount = "100000";}
 #                                     #
 #######################################
 
-print "\nAccess Log Analyzer $logversion\n";
-print "\nCommand: logconv.pl @ARGV\n\n";
+print "Access Log Analyzer $logversion\n";
+print "Command: logconv.pl @ARGV\n";
 
 my $rootDNBindCount = 0;
 my $anonymousBindCount = 0;
@@ -414,19 +414,27 @@ for (my $count=0; $count < $file_count; $count++){
         if($file_count > 1 && $count == 0 && $skipFirstFile == 1){
                 next;
         }
-        $linesProcessed = 0; $lineBlockCount = 0;
+	if($file_count > 1 && $count == 0 && $skipFirstFile == 1){
+		next;
+	}
+	if (-z $files[$count]){
+		# access log is empty
+		print "Skipping empty access log ($files[$count])...\n";
+		next;
+	}
+	$linesProcessed = 0; $lineBlockCount = 0;
+	my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$atime,$mtime,$ctime,$blksize,$blocks);
+	($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$cursize,
+	 $atime,$mtime,$ctime,$blksize,$blocks) = stat($files[$count]);
+	print sprintf "[%03d] %-30s\tsize (bytes): %12s\n",$logCount, $files[$count], $cursize;
 	$logCount--;
-		my $logCountStr;
+	my $logCountStr;
 	if($logCount < 10 ){ 
 		# add a zero for formatting purposes
 		$logCountStr = "0" . $logCount;
 	} else {
 		$logCountStr = $logCount;
 	}
-		my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$atime,$mtime,$ctime,$blksize,$blocks);
-		($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$cursize,
-		 $atime,$mtime,$ctime,$blksize,$blocks) = stat($files[$count]);
-		print sprintf "[%s] %-30s\tsize (bytes): %12s\n",$logCountStr, $files[$count], $cursize;
 	
 	open(LOG,"$files[$count]") or do { openFailed($!, $files[$count]) };
 	my $firstline = "yes";
@@ -452,7 +460,12 @@ for (my $count=0; $count < $file_count; $count++){
 	print_stats_block( $s_stats );
 	print_stats_block( $m_stats );
 	$totalLineCount = $totalLineCount + $linesProcessed;
-		statusreport();
+	statusreport();
+}
+
+if ($totalLineCount eq "0"){
+	print "There was no logging to process, exiting...\n";
+	exit 1;
 }
 
 print "\n\nTotal Log Lines Analysed:  " . ($totalLineCount - 1) . "\n";
@@ -1366,7 +1379,7 @@ sub displayUsage {
 
 	print "Usage:\n\n";
 
-	print " ./logconv.pl [-h] [-d|--rootdn <rootDN>] [-s|--sizeLimit <size limit>] [-v|verison] [-Vi|verbose]\n";
+	print " ./logconv.pl [-h] [-d|--rootdn <rootDN>] [-s|--sizeLimit <size limit>] [-v|verison] [-V|verbose]\n";
 	print " [-S|--startTime <start time>] [-E|--endTime <end time>] \n";
 	print " [-efcibaltnxrgjuyp] [ access log ... ... ]\n\n";
 
@@ -2440,7 +2453,7 @@ removeDataFiles
 	$needCleanup = 0;
 }
 
-END { print "Cleaning up temp files . . .\n"; removeDataFiles(); print "Done\n"; }
+END { print "Cleaning up temp files...\n"; removeDataFiles(); print "Done.\n"; }
 
 sub
 getIPfromConn
-- 
1.8.1.4