Blob Blame History Raw
diff -up ./plugins-scripts/check_ntp.pl.fix_ipv6 ./plugins-scripts/check_ntp.pl
--- ./plugins-scripts/check_ntp.pl.fix_ipv6	2019-08-29 21:07:13.497504795 +0000
+++ ./plugins-scripts/check_ntp.pl	2019-08-29 21:11:48.626816686 +0000
@@ -112,13 +112,23 @@ if (defined $opt_j || defined $opt_k ) {
 }
 
 $opt_H = shift unless ($opt_H);
-my $host = $1 if ($opt_H && $opt_H =~ m/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+|[a-zA-Z][-a-zA-Z0-9]+(\.[a-zA-Z][-a-zA-Z0-9]+)*)$/);
+
+## From https://bugzilla.redhat.com/show_bug.cgi?id=1731468 
+my $host = $opt_H if ($opt_H &&
+		      ($opt_H =~ m/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/ ||      # IPv4
+		       $opt_H =~ m/^([0-9a-f]{1,4}:){7}([0-9a-f]{1,4})$/i || # IPv6 without ::
+		       $opt_H =~ m/^:(:[0-9a-f]{1,4})+$/i ||                 # IPv6 with leading ::
+		       $opt_H =~ m/^([0-9a-f]{1,4}:)+:$/i ||                 # IPv6 with trailing ::
+		       $opt_H =~ m/^([0-9a-f]{1,4}:)+(:[0-9a-f]{1,4})+$/i || # IPv6 with middle ::
+		       $opt_H =~ m/^[a-z0-9][-a-z0-9]*(\.[a-z0-9][-a-z0-9]*)*$/)); # hostnames
+
 unless ($host) {
 	print "No target host specified\n";
 	print_usage();
 	exit $ERRORS{'UNKNOWN'};
 }
 
+
 my ($timeout, $owarn, $ocrit, $jwarn, $jcrit);
 
 $timeout = $TIMEOUT;