From cd76af1ec2581cf4eaf57c3a92c17a57b5afcef8 Mon Sep 17 00:00:00 2001 From: Rich Megginson 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