andykimpe / rpms / 389-ds-base

Forked from rpms/389-ds-base 5 months ago
Clone
Blob Blame History Raw
From cd76af1ec2581cf4eaf57c3a92c17a57b5afcef8 Mon Sep 17 00:00:00 2001
From: Rich Megginson <rmeggins@redhat.com>
Date: Fri, 31 Jan 2014 16:49:58 -0700
Subject: [PATCH 160/225] Ticket #471 logconv.pl tool removes the access logs
 contents if "-M" is not correctly used

https://fedorahosted.org/389/ticket/471
Reviewed by: nhosoi (Thanks!)
Branch: 389-ds-base-1.2.11
Fix Description: Do not call new_stats_block() until we verify that it is safe
to call it.  It will wipe out the file.
Platforms tested: RHEL6 x86_64
Flag Day: no
Doc impact: no
(cherry picked from commit 7447050f572fb8865145d020e9eab64032f667be)
(cherry picked from commit cfbda421535451d99d3ee774a49fc099cfb902f0)
(cherry picked from commit 811300f30264a82b6cd9d0e1d7594a066458912c)
(cherry picked from commit af85853d0a9bf429a365a2c1723ac0758046899a)
(cherry picked from commit fd065f1a2b5cc4bad4aecb14135943dbca8296d8)
---
 ldap/admin/src/logconv.pl | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/ldap/admin/src/logconv.pl b/ldap/admin/src/logconv.pl
index e7d7507..99e0efd 100755
--- a/ldap/admin/src/logconv.pl
+++ b/ldap/admin/src/logconv.pl
@@ -104,6 +104,8 @@ my $reportBinds = "no";
 my $rootDN = "";
 my $needCleanup = 0;
 my @scopeTxt = ("0 (base)", "1 (one)", "2 (subtree)");
+my $reportStatsSecFile;
+my $reportStatsMinFile;
 
 GetOptions(
 	'd|rootDN=s' => \$rootDN,
@@ -115,8 +117,8 @@ GetOptions(
 	'S|startTime=s' => \$startTime,
 	'E|endTime=s' => \$endTime,
 	'B|bind=s' => sub { $reportBinds = "yes"; $bindReportDN=($_[1]) },
-	'm|reportFileSecs=s' => sub { my ($opt,$value) = @_; $s_stats = new_stats_block($value); $reportStats = "-m";},
-	'M|reportFileMins=s' =>  sub { my ($opt,$value) = @_; $m_stats = new_stats_block($value); $reportStats = "-M";},
+	'm|reportFileSecs=s' => \$reportStatsSecFile,
+	'M|reportFileMins=s' =>  \$reportStatsMinFile,
 	'h|help' => sub { displayUsage() },
 	# usage options '-efcibaltnxgjuiryp'
 	'e' => sub { $usage = $usage . "e"; },
@@ -169,14 +171,23 @@ while($arg_count <= $#ARGV){
 }
 
 if($file_count == 0){
-	if($reportStats){
-		print "Usage error for option $reportStats, either the output file or access log is missing!\n\n";
+	if($reportStatsSecFile or $reportStatsMinFile){
+		print "Usage error for option -m or -M, either the output file or access log is missing!\n\n";
 	} else {
 		print "There are no access logs specified!\n\n";
 	}
 	exit 1;
 }
 
+if ($reportStatsSecFile) {
+	$s_stats = new_stats_block($reportStatsSecFile);
+	$reportStats = "-m";
+}
+if ($reportStatsMinFile) {
+	$m_stats = new_stats_block($reportStatsMinFile);
+	$reportStats = "-M";
+}
+
 if ($sizeCount eq "all"){$sizeCount = "100000";}
 
 #######################################
-- 
1.8.1.4