浏览代码

Fixed regression where hostnames with hyphens were rejected (1581402 - Holger Weiss)

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1528 f882894a-f735-0410-b71e-b25c423dba1c
Ton Voon 19 年之前
父节点
当前提交
6728e60669
共有 3 个文件被更改,包括 39 次插入27 次删除
  1. 1 0
      plugins-scripts/Makefile.am
  2. 34 0
      plugins-scripts/t/utils.t
  3. 4 27
      plugins-scripts/utils.pm.in

+ 1 - 0
plugins-scripts/Makefile.am

@@ -20,6 +20,7 @@ TESTS = @SCRIPT_TEST@
 
 
 test:
 test:
 	perl -I $(top_builddir) -I $(top_srcdir) ../test.pl
 	perl -I $(top_builddir) -I $(top_srcdir) ../test.pl
+	perl -I $(top_builddir) -I $(top_srcdir) ../test.pl t/utils.t	# utils.t is excluded from above, so manually ask to test
 
 
 CLEANFILES=$(libexec_SCRIPTS)
 CLEANFILES=$(libexec_SCRIPTS)
 
 

+ 34 - 0
plugins-scripts/t/utils.t

@@ -0,0 +1,34 @@
+#!/usr/bin/perl -w -I ..
+#
+# utils.pm tests
+#
+# $Id$
+#
+
+#use strict;
+use Test::More;
+use NPTest;
+
+use lib "..";
+use utils;
+
+my $hostname_checks = {
+	"www.altinity.com" => 1,
+	"www.888.com" => 1,
+	"888.com" => 1,
+	"host-hyphened.com" => 1,
+	"rubbish" => 1,
+	"-start.com" => 0,
+	"endsindot." => 0,
+	"lots.of.dots.dot.org" => 1,
+	"10.20.30.40" => 1,
+	"10.20.30.40.50" => 0,
+	"10.20.30" => 0,
+	};
+
+plan tests => scalar keys %$hostname_checks;
+
+foreach my $h (sort keys %$hostname_checks) {
+	is (utils::is_hostname($h), $hostname_checks->{$h}, "$h should return ".$hostname_checks->{$h});
+}
+

+ 4 - 27
plugins-scripts/utils.pm.in

@@ -1,32 +1,9 @@
 # Utility drawer for Nagios plugins.
 # Utility drawer for Nagios plugins.
 # $Id$
 # $Id$
 #
 #
-# $Log$
-# Revision 1.9  2006/10/19 18:44:53  tonvoon
-# Allow hostnames beginning with digits (O'Shaughnessy Evans - 1567390)
-#
-# Revision 1.8  2006/06/07 14:23:12  seanius
-# removed stale references to PATH_TO_NTPFOO, as it's no longer used.
-#
-# Revision 1.7  2003/04/13 04:25:36  sghosh
-# update for check_mailq - qmail support
-#
-# Revision 1.6  2003/02/03 20:29:55  sghosh
-# change ntpdc to ntpq (Jonathan Rozes,Thomas Schimpke, bug-656237 )
-#
-# Revision 1.5  2002/10/30 05:07:29  sghosh
-# monitor mailq
-#
-# Revision 1.4  2002/05/27 02:01:09  sghosh
-#  new var - smbclient
-#
-# Revision 1.3  2002/05/10 03:49:22  sghosh
-# added programs to autoconf
-#
-# Revision 1.2  2002/05/08 05:10:35  sghosh
-#  is_hostname added, update CODES to POSIX
-#
-# 
+# This will be deprecated soon. Please use Nagios::Plugin from CPAN
+# for new plugins
+
 package utils;
 package utils;
 
 
 require Exporter;
 require Exporter;
@@ -76,7 +53,7 @@ sub usage {
 
 
 sub is_hostname {
 sub is_hostname {
 	my $host1 = shift;
 	my $host1 = shift;
-	if ($host1 && $host1 =~ m/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+|[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)*)$/) {
+	if ($host1 && $host1 =~ m/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+|[a-zA-Z0-9][-a-zA-Z0-9]+(\.[a-zA-Z0-9][-a-zA-Z0-9]+)*)$/) {
 		return 1;
 		return 1;
 	}else{
 	}else{
 		return 0;
 		return 0;