utils.pm.in 1.4 KB

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