4
0

utils.pm.in 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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_SUDO = "@PATH_TO_SUDO@";
  17. $PATH_TO_RPCINFO = "@PATH_TO_RPCINFO@" ;
  18. $PATH_TO_LMSTAT = "@PATH_TO_LMSTAT@" ;
  19. $PATH_TO_SMBCLIENT = "@PATH_TO_SMBCLIENT@" ;
  20. $PATH_TO_MAILQ = "@PATH_TO_MAILQ@";
  21. $PATH_TO_QMAIL_QSTAT = "@PATH_TO_QMAIL_QSTAT@";
  22. ## common variables
  23. $TIMEOUT = 15;
  24. %ERRORS=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
  25. ## utility subroutines
  26. sub print_revision ($$) {
  27. my $commandName = shift;
  28. my $pluginRevision = shift;
  29. print "$commandName v$pluginRevision (@PACKAGE@ @VERSION@)\n";
  30. print "@WARRANTY@";
  31. }
  32. sub support () {
  33. my $support='@SUPPORT@';
  34. $support =~ s/@/\@/g;
  35. $support =~ s/\\n/\n/g;
  36. print $support;
  37. }
  38. sub usage {
  39. my $format=shift;
  40. printf($format,@_);
  41. exit $ERRORS{'UNKNOWN'};
  42. }
  43. sub is_hostname {
  44. my $host1 = shift;
  45. return 0 unless defined $host1;
  46. if ($host1 =~ m/^[\d\.]+$/ && $host1 !~ /\.$/) {
  47. if ($host1 =~ m/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/) {
  48. return 1;
  49. } else {
  50. return 0;
  51. }
  52. } elsif ($host1 =~ m/^[a-zA-Z0-9][-a-zA-Z0-9]*(\.[a-zA-Z0-9][-a-zA-Z0-9]*)*\.?$/) {
  53. return 1;
  54. } else {
  55. return 0;
  56. }
  57. }
  58. 1;