INN commit: trunk/scripts (inncheck.in)

INN Commit rra at isc.org
Tue Jan 25 18:46:13 UTC 2011


    Date: Tuesday, January 25, 2011 @ 10:46:13
  Author: iulius
Revision: 9173

inncheck:  run under 'use strict'.

Also don't use hashes with package names (e.g., %control'messages) as it's
an ancient form and prevents syntax checking.

Thanks to Florian Schlichting for the improvement.

Modified:
  trunk/scripts/inncheck.in

-------------+
 inncheck.in |  101 +++++++++++++++++++++++++++++++---------------------------
 1 file changed, 55 insertions(+), 46 deletions(-)

Modified: inncheck.in
===================================================================
--- inncheck.in	2011-01-25 18:40:26 UTC (rev 9172)
+++ inncheck.in	2011-01-25 18:46:13 UTC (rev 9173)
@@ -5,13 +5,15 @@
 ##  Sanity-check the configuration of an INN system
 ##  by Brendan Kehoe <brendan at cygnus.com> and Rich $alz.
 
-$ST_MODE = 2;
-$ST_UID  = 4;
-$ST_GID  = 5;
+use strict;
 
+my $ST_MODE = 2;
+my $ST_UID  = 4;
+my $ST_GID  = 5;
+
 ##  We use simple names, mapping them to the real filenames only when
 ##  we actually need a filename.
-%paths = (
+my %paths = (
     'active',		"$INN::Config::active",
     'archive',		"$INN::Config::patharchive",
     'badnews',		"$INN::Config::badnews",
@@ -47,7 +49,7 @@
 );
 
 ##  The sub's that check the config files.
-%checklist = (
+my %checklist = (
     'active',		'active',
     'control.ctl',	'control_ctl',
     'control.ctl.local','control_ctl',
@@ -65,7 +67,7 @@
 ##  Min and max values, by bit:  between 0400 and 0640,
 ##  0600 is allowed, but not 0500 for instance (not executable).
 ##  0660 is used when the file can contain passwords.
-%modes = (
+my %modes = (
     'active',		[0600, $INN::Config::filemode],
     'incoming.conf',	[0400, 0660],
     'inn.conf',		[0400, 0664],
@@ -74,11 +76,21 @@
     'passwd.nntp',	[0400, 0660],
 );
 
+## The file and line we're currently at.
+my ($file, $line);
 
+## Command line arguments.
+my ($all, $verbose, $pedantic, $fix, $perms, $noperms, $pfx, @todo);
+
+my $program = $0;
+$program =~ s at .*/@@;
+$| = 1;
+
+
 sub
 spacious
 {
-    local ($i);
+    my ($i);
 
     chop;
     study;
@@ -91,7 +103,7 @@
 	print "$file:$line: ends with whitespace\n";
 	$i = 1;
     }
-    $i;
+    return $i;
 }
 
 ##
@@ -107,7 +119,7 @@
 sub
 active
 {
-    local ($group, $hi, $lo, $f, $alias, %groups, %aliases);
+    my ($group, $hi, $lo, $f, $alias, %groups, %aliases);
 
     input: while ( <IN> ) {
 	$line++;
@@ -133,7 +145,7 @@
 	$aliases{$alias} = $line
 	    unless defined $groups{$alias};
     }
-    foreach $key ( keys %aliases ) {
+    foreach my $key ( keys %aliases ) {
 	print "$file:$aliases{$key} aliased to unknown group `$key'.\n"
 	    unless defined $groups{$key};
     }
@@ -144,7 +156,7 @@
 ##
 ##  The control.ctl and control.ctl.local files.
 ##
-%control'messages = (
+my %control_messages = (
     '/encoding/',	1,
     '/localencoding/',	1,
     '/maxdocheckgroups/', 1,
@@ -158,7 +170,7 @@
     'senduuname',	1,
     'version',		1,
 );
-%control'actions = (
+my %control_actions = (
     'drop',		1,
     'log',		1,
     'mail',		1,
@@ -170,7 +182,7 @@
 sub
 control_ctl
 {
-    local ($msg, $from, $ng, $act);
+    my ($msg, $from, $ng, $act);
 
     input: while ( <IN> ) {
 	next input if &spacious($file, ++$line);
@@ -188,7 +200,7 @@
 	    print "$file:$line: malformed line.\n";
 	    next input;
 	}
-	if ( !defined $control'messages{$msg} ) {
+	if ( !defined $control_messages{$msg} ) {
 	    print "$file:$line: unknown control message `$msg'.\n";
 	    next input;
 	}
@@ -210,7 +222,7 @@
 	$act =~ s/=.*//;
 	$act = "verify" if ($act =~ /^verify-.+/) ;
 	print "$file:$line: unknown action `$act'\n"
-	    if !defined $control'actions{$act} and $msg !~ /^\//;
+	    if !defined $control_actions{$act} and $msg !~ /^\//;
     }
     1;
 }
@@ -222,7 +234,7 @@
 sub
 expire_ctl
 {
-    local ($rem, $v, $def, $class, $pat, $flag, $keep, $default, $purge, $groupbaseexpiry);
+    my ($rem, $v, $def, $class, $pat, $flag, $keep, $default, $purge, $groupbaseexpiry);
 
     $groupbaseexpiry = $INN::Config::groupbaseexpiry;
     $groupbaseexpiry =~ tr/A-Z/a-z/;
@@ -335,7 +347,7 @@
 sub
 moderators
 {
-    local ($k, $v);
+    my ($k, $v);
 
     input: while ( <IN> ) {
 	next input if &spacious($file, ++$line);
@@ -363,7 +375,7 @@
 ##
 ##  newsfeeds
 ##
-%newsfeeds'flags = (
+my %newsfeeds_flags = (
     '<',	'^\d+$',
     '>',	'^\d+$',
     'A',	'^[cCdefjoOp]+$',
@@ -386,10 +398,10 @@
 sub
 newsfeeds
 {
-    local ($next, $start, $me_empty, @muxes, %sites);
-    local ($site, $pats, $dists, $flags, $param, $type, $k, $v, $defsub);
-    local ($bang, $nobang, $prog, $dir);
-    local (%variables, $key);
+    my ($next, $start, $me_empty, @muxes, %sites);
+    my ($site, $pats, $dists, $flags, $param, $type, $k, $v, $defsub);
+    my ($bang, $nobang, $prog, $dir);
+    my (%variables, $key);
 
     input: while ( <IN> ) {
 	$line++;
@@ -476,7 +488,7 @@
 	##  Check distributions.
 	if ( ($dists) = $pats =~ m at .*/(.*)@ ) {
 	    $bang = $nobang = 0;
-	    dist: foreach $d ( split(/,/, $dists) ) {
+	    dist: foreach my $d ( split(/,/, $dists) ) {
 		if ( $d =~ /^!/ ) {
 		    $bang++;
 		}
@@ -490,13 +502,13 @@
 		if $bang && $nobang;
 	}
 	$type = "f";
-	flag: foreach $flag ( split(/,/, $flags) ) {
+	flag: foreach my $flag ( split(/,/, $flags) ) {
 	    ($k, $v) = $flag =~ /(.)(.*)/;
-	    if ( !defined $newsfeeds'flags{$k} ) {
+	    if ( !defined $newsfeeds_flags{$k} ) {
 		print "$file:$start: unknown flag `$flag'\n";
 		next flag;
 	    }
-	    if ( $v !~ /$newsfeeds'flags{$k}/ ) {
+	    if ( $v !~ /$newsfeeds_flags{$k}/ ) {
 		print "$file:$start: bad value `$v' for flag `$k'\n";
 		next flag;
 	    }
@@ -553,7 +565,7 @@
 sub
 nntpsend_ctl
 {
-    local ($site, $fqdn, $flags, $f, $v);
+    my ($site, $fqdn, $flags, $f, $v);
 
     input: while ( <IN> ) {
 	next input if &spacious($file, ++$line);
@@ -588,7 +600,7 @@
 sub
 passwd_nntp
 {
-    local ($name, $pass);
+    my ($name, $pass);
 
     input: while ( <IN> ) {
 	next input if &spacious($file, ++$line);
@@ -623,8 +635,8 @@
 sub
 checkperm
 {
-    local ($f, $m, $u, $g) = ( @_, $INN::Config::runasuser, $INN::Config::runasgroup);
-    local (@sb, $owner, $group, $mode);
+    my ($f, $m, $u, $g) = ( @_, $INN::Config::runasuser, $INN::Config::runasgroup);
+    my (@sb, $owner, $group, $mode);
 
     die "Internal error, undefined name in perm from ", (caller(0))[2], "\n"
 	if !defined $f;
@@ -670,8 +682,8 @@
 sub
 intersect
 {
-    local ($dir, @files) = @_;
-    local (@in, %dummy, $i);
+    my ($dir, @files) = @_;
+    my (@in, %dummy, $i);
 
     if ( !opendir(DH, $dir) ) {
 	print "$pfx$dir:0: can't open directory\n";
@@ -693,30 +705,30 @@
             }
         }
     }
-    $i;
+    return $i;
 }
 
- at directories = (
+my @directories = (
     'archive', 'badnews', 'batchdir', 'ctlprogs', 'most_logs', 'newsbin',
     'newsetc', 'newslib', 'oldlogs', 'rnewsprogs', 'spooltemp', 'spool', 'spoolnews'
 );
- at rnews_programs = (
+my @rnews_programs = (
     'bunbatch', 'c7unbatch', 'decode', 'encode', 'gunbatch'
 );
- at newsbin_public = (
+my @newsbin_public = (
     'archive', 'batcher', 'buffchan', 'convdate', 'cvtbatch',
     'filechan', 'getlist', 'grephistory', 'innconfval', 'innxmit',
     'nntpget', 'nntpsend', 'sendxbatches', 'send-ihave', 'send-nntp', 'send-uucp',
     'shlock', 'shrinkfile'
 );
- at newsbin_private = (
+my @newsbin_private = (
     'ctlinnd', 'expire', 'expirerm', 'inncheck', 'innstat', 'innwatch',
     'makehistory', 'news.daily', 'overchan', 'prunehistory', 'scanlogs', 
     'tally.control', 'writelog'
 );
 
 ## The modes (min and max) for the various programs.
-%prog_modes = (
+my %prog_modes = (
     'inews',		 [0500, $INN::Config::inewsmode],
     'innd',		 [0500, 0550],
     'newsboot',		 [0500, 0550],
@@ -728,8 +740,8 @@
 sub
 check_all_perms
 {
-    local ($rnewsprogs) = $paths{'rnewsprogs'};
-    local ($newsbin) = $paths{'newsbin'};
+    my ($rnewsprogs) = $paths{'rnewsprogs'};
+    my ($newsbin) = $paths{'newsbin'};
 
     foreach ( @directories ) {
 	&checkperm($paths{$_}, [0755, 0775]);
@@ -773,7 +785,7 @@
 sub
 Usage
 {
-    local ($i) = 0;
+    my ($i) = 0;
 
     print "Usage error: @_.\n";
     print
@@ -833,7 +845,7 @@
 	if ( /^-/ ) {
 	    &Usage("Unknown flag `$_'");
 	}
-	if ( ($k, $v) = /(.*)=(.*)/ ) {
+	if ( my ($k, $v) = /(.*)=(.*)/ ) {
 	    &Usage("Can't check `$k'")
 		if !defined $checklist{$k};
 	    push(@todo, $k);
@@ -856,11 +868,8 @@
 }
 
 
-$program = $0;
-$program =~ s at .*/@@;
-$| = 1;
 &parse_flags();
-action: foreach $workfile ( @todo ) {
+action: foreach my $workfile ( @todo ) {
     $file = $paths{$workfile};
     if ( ! -f $file ) {
 	print "$file:0: file missing\n";




More information about the inn-committers mailing list