Merge pull request #1563 from jacobbaungard/ipv6_check_icmp
[monitoring-plugins.git] / plugins-scripts / utils.pm.in
blob386831eb4368798e764ffa50f874a2f404ef4358
1 # Utility drawer for Monitoring Plugins.
3 # This will be deprecated soon. Please use Monitoring::Plugin from CPAN
4 # for new plugins
6 package utils;
8 require Exporter;
9 @ISA = qw(Exporter);
10 @EXPORT_OK = qw($TIMEOUT %ERRORS &print_revision &support &usage);
12 #use strict;
13 #use vars($TIMEOUT %ERRORS);
14 sub print_revision ($$);
15 sub usage;
16 sub support();
17 sub is_hostname;
19 ## updated by autoconf
20 $PATH_TO_SUDO = "@PATH_TO_SUDO@";
21 $PATH_TO_RPCINFO = "@PATH_TO_RPCINFO@" ;
22 $PATH_TO_LMSTAT = "@PATH_TO_LMSTAT@" ;
23 $PATH_TO_SMBCLIENT = "@PATH_TO_SMBCLIENT@" ;
24 $PATH_TO_MAILQ = "@PATH_TO_MAILQ@";
25 $PATH_TO_QMAIL_QSTAT = "@PATH_TO_QMAIL_QSTAT@";
27 ## common variables
28 $TIMEOUT = 15;
29 %ERRORS=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
31 ## utility subroutines
32 sub print_revision ($$) {
33 my $commandName = shift;
34 my $pluginRevision = shift;
35 print "$commandName v$pluginRevision (@PACKAGE@ @VERSION@)\n";
36 print "@WARRANTY@";
39 sub support () {
40 my $support='@SUPPORT@';
41 $support =~ s/@/\@/g;
42 $support =~ s/\\n/\n/g;
43 print $support;
46 sub usage {
47 my $format=shift;
48 printf($format,@_);
49 exit $ERRORS{'UNKNOWN'};
52 sub is_hostname {
53 my $host1 = shift;
54 return 0 unless defined $host1;
55 if ($host1 =~ m/^[\d\.]+$/ && $host1 !~ /\.$/) {
56 if ($host1 =~ m/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/) {
57 return 1;
58 } else {
59 return 0;
61 } elsif ($host1 =~ m/^[a-zA-Z0-9][-a-zA-Z0-9]*(\.[a-zA-Z0-9][-a-zA-Z0-9]*)*\.?$/) {
62 return 1;
63 } else {
64 return 0;