check_snmp_win.pl: Add -o option (max message size) by adding d/p/16_check_snmp_win_max_message_size from upstream
This commit is contained in:
parent
c1ffe3e1b6
commit
ef233ba6df
178
debian/patches/16_check_snmp_win_max_message_size
vendored
Normal file
178
debian/patches/16_check_snmp_win_max_message_size
vendored
Normal file
|
@ -0,0 +1,178 @@
|
||||||
|
From dc67e601453a564db68d7921f16fb6ea875f68be Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Mathias=20V=C3=A9drines?= <mvedrines@capensis.fr>
|
||||||
|
Date: Fri, 21 Feb 2020 12:18:53 +0100
|
||||||
|
Subject: [PATCH] Add -o option (max message size) in check_snmp_win
|
||||||
|
|
||||||
|
---
|
||||||
|
plugins/check_snmp_win.pl | 121 +++++++++++++++++++++++---------------
|
||||||
|
1 file changed, 72 insertions(+), 49 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/check_snmp_win.pl b/plugins/check_snmp_win.pl
|
||||||
|
index 148d6eb..c5cb573 100755
|
||||||
|
--- a/plugins/check_snmp_win.pl
|
||||||
|
+++ b/plugins/check_snmp_win.pl
|
||||||
|
@@ -47,24 +47,25 @@
|
||||||
|
|
||||||
|
my $Name = 'check_snmp_win';
|
||||||
|
|
||||||
|
-my $o_host = undef; # hostname
|
||||||
|
-my $o_community = undef; # community
|
||||||
|
-my $o_port = 161; # port
|
||||||
|
-my $o_version2 = undef; #use snmp v2c
|
||||||
|
-my $o_descr = undef; # description filter
|
||||||
|
-my @o_descrL = undef; # Service descriprion list.
|
||||||
|
-my $o_showall = undef; # Show all services even if OK
|
||||||
|
-my $o_type = "service"; # Check type (service, ...)
|
||||||
|
-my $o_number = undef; # Number of service for warn and crit levels
|
||||||
|
-my $o_help = undef; # wan't some help ?
|
||||||
|
-my $o_verb = undef; # verbose mode
|
||||||
|
-my $o_version = undef; # print version
|
||||||
|
-my $o_noreg = undef; # Do not use Regexp for name
|
||||||
|
-my $o_timeout = 5; # Default 5s Timeout
|
||||||
|
+my $o_host = undef; # hostname
|
||||||
|
+my $o_community = undef; # community
|
||||||
|
+my $o_port = 161; # port
|
||||||
|
+my $o_version2 = undef; # use snmp v2c
|
||||||
|
+my $o_descr = undef; # description filter
|
||||||
|
+my @o_descrL = undef; # Service descriprion list.
|
||||||
|
+my $o_showall = undef; # Show all services even if OK
|
||||||
|
+my $o_type = "service"; # Check type (service, ...)
|
||||||
|
+my $o_number = undef; # Number of service for warn and crit levels
|
||||||
|
+my $o_help = undef; # wan't some help ?
|
||||||
|
+my $o_verb = undef; # verbose mode
|
||||||
|
+my $o_version = undef; # print version
|
||||||
|
+my $o_noreg = undef; # Do not use Regexp for name
|
||||||
|
+my $o_timeout = 5; # Default 5s Timeout
|
||||||
|
+my $o_octetlength = undef; # SNMP max message size
|
||||||
|
|
||||||
|
# SNMP V3 specific
|
||||||
|
-my $o_login = undef; # snmp v3 login
|
||||||
|
-my $o_passwd = undef; # snmp v3 passwd
|
||||||
|
+my $o_login = undef; # snmp v3 login
|
||||||
|
+my $o_passwd = undef; # snmp v3 passwd
|
||||||
|
|
||||||
|
# functions
|
||||||
|
|
||||||
|
@@ -72,7 +73,7 @@
|
||||||
|
|
||||||
|
sub print_usage {
|
||||||
|
print
|
||||||
|
-"Usage: $Name [-v] -H <host> -C <snmp_community> [-2] | (-l login -x passwd) [-p <port>] -n <name>[,<name2] [-T=service] [-r] [-s] [-N=<n>] [-t <timeout>] [-V]\n";
|
||||||
|
+"Usage: $Name [-v] -H <host> -C <snmp_community> [-2] | (-l login -x passwd) [-p <port>] -n <name>[,<name2] [-T=service] [-r] [-s] [-N=<n>] [-t <timeout>] [-o <octet_length>] [-V]\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
sub isnotnum { # Return true if arg is not a number
|
||||||
|
@@ -128,6 +129,8 @@ sub help {
|
||||||
|
Do not use regexp to match NAME in service description.
|
||||||
|
-t, --timeout=INTEGER
|
||||||
|
timeout for SNMP in seconds (Default: 5)
|
||||||
|
+-o, --octetlength=INTEGER
|
||||||
|
+ SNMP max message size (484-65535)
|
||||||
|
-V, --version
|
||||||
|
prints version number
|
||||||
|
Note :
|
||||||
|
@@ -162,36 +165,38 @@ sub decode_utf8 { # just replaces UFT8 caracters by "."
|
||||||
|
sub check_options {
|
||||||
|
Getopt::Long::Configure("bundling");
|
||||||
|
GetOptions(
|
||||||
|
- 'v' => \$o_verb,
|
||||||
|
- 'verbose' => \$o_verb,
|
||||||
|
- 'h' => \$o_help,
|
||||||
|
- 'help' => \$o_help,
|
||||||
|
- 'H:s' => \$o_host,
|
||||||
|
- 'hostname:s' => \$o_host,
|
||||||
|
- 'p:i' => \$o_port,
|
||||||
|
- 'port:i' => \$o_port,
|
||||||
|
- 'C:s' => \$o_community,
|
||||||
|
- 'community:s' => \$o_community,
|
||||||
|
- 'l:s' => \$o_login,
|
||||||
|
- 'login:s' => \$o_login,
|
||||||
|
- 'x:s' => \$o_passwd,
|
||||||
|
- 'passwd:s' => \$o_passwd,
|
||||||
|
- 't:i' => \$o_timeout,
|
||||||
|
- 'timeout:i' => \$o_timeout,
|
||||||
|
- 'n:s' => \$o_descr,
|
||||||
|
- 'name:s' => \$o_descr,
|
||||||
|
- 'r' => \$o_noreg,
|
||||||
|
- 'noregexp' => \$o_noreg,
|
||||||
|
- 'T:s' => \$o_type,
|
||||||
|
- 'type:s' => \$o_type,
|
||||||
|
- 'N:i' => \$o_number,
|
||||||
|
- 'number:i' => \$o_number,
|
||||||
|
- '2' => \$o_version2,
|
||||||
|
- 'v2c' => \$o_version2,
|
||||||
|
- 's' => \$o_showall,
|
||||||
|
- 'showall' => \$o_showall,
|
||||||
|
- 'V' => \$o_version,
|
||||||
|
- 'version' => \$o_version
|
||||||
|
+ 'v' => \$o_verb,
|
||||||
|
+ 'verbose' => \$o_verb,
|
||||||
|
+ 'h' => \$o_help,
|
||||||
|
+ 'help' => \$o_help,
|
||||||
|
+ 'H:s' => \$o_host,
|
||||||
|
+ 'hostname:s' => \$o_host,
|
||||||
|
+ 'p:i' => \$o_port,
|
||||||
|
+ 'port:i' => \$o_port,
|
||||||
|
+ 'C:s' => \$o_community,
|
||||||
|
+ 'community:s' => \$o_community,
|
||||||
|
+ 'l:s' => \$o_login,
|
||||||
|
+ 'login:s' => \$o_login,
|
||||||
|
+ 'x:s' => \$o_passwd,
|
||||||
|
+ 'passwd:s' => \$o_passwd,
|
||||||
|
+ 't:i' => \$o_timeout,
|
||||||
|
+ 'timeout:i' => \$o_timeout,
|
||||||
|
+ 'n:s' => \$o_descr,
|
||||||
|
+ 'name:s' => \$o_descr,
|
||||||
|
+ 'r' => \$o_noreg,
|
||||||
|
+ 'noregexp' => \$o_noreg,
|
||||||
|
+ 'T:s' => \$o_type,
|
||||||
|
+ 'type:s' => \$o_type,
|
||||||
|
+ 'N:i' => \$o_number,
|
||||||
|
+ 'number:i' => \$o_number,
|
||||||
|
+ '2' => \$o_version2,
|
||||||
|
+ 'v2c' => \$o_version2,
|
||||||
|
+ 'o:i' => \$o_octetlength,
|
||||||
|
+ 'octetlength:i' => \$o_octetlength,
|
||||||
|
+ 's' => \$o_showall,
|
||||||
|
+ 'showall' => \$o_showall,
|
||||||
|
+ 'V' => \$o_version,
|
||||||
|
+ 'version' => \$o_version
|
||||||
|
);
|
||||||
|
if (defined($o_help)) { help(); exit $ERRORS{"UNKNOWN"} }
|
||||||
|
if (defined($o_version)) { p_version(); exit $ERRORS{"UNKNOWN"} }
|
||||||
|
@@ -222,6 +227,13 @@ sub check_options {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ # Octet length check
|
||||||
|
+ if (defined($o_octetlength) && (isnotnum($o_octetlength) || $o_octetlength > 65535 || $o_octetlength < 484)) {
|
||||||
|
+ print "octet length must be in range 484 .. 65535\n";
|
||||||
|
+ print_usage();
|
||||||
|
+ exit $ERRORS{'UNKNOWN'};
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
||||||
|
########## MAIN #######
|
||||||
|
@@ -283,8 +295,19 @@ sub check_options {
|
||||||
|
exit $ERRORS{"UNKNOWN"};
|
||||||
|
}
|
||||||
|
|
||||||
|
-$session->max_msg_size(5000);
|
||||||
|
-verb($session->max_msg_size);
|
||||||
|
+if (defined($o_octetlength)) {
|
||||||
|
+ my $oct_resultat = undef;
|
||||||
|
+ my $oct_test = $session->max_msg_size();
|
||||||
|
+ verb(" actual max octets:: $oct_test");
|
||||||
|
+ $oct_resultat = $session->max_msg_size($o_octetlength);
|
||||||
|
+ if (!defined($oct_resultat)) {
|
||||||
|
+ printf("ERROR: Session settings : %s.\n", $session->error);
|
||||||
|
+ $session->close;
|
||||||
|
+ exit $ERRORS{"UNKNOWN"};
|
||||||
|
+ }
|
||||||
|
+ $oct_test = $session->max_msg_size();
|
||||||
|
+ verb(" new max octets:: $oct_test");
|
||||||
|
+}
|
||||||
|
|
||||||
|
# Look for process in name or path name table
|
||||||
|
my $resultat = undef;
|
1
debian/patches/series
vendored
1
debian/patches/series
vendored
|
@ -4,5 +4,6 @@
|
||||||
13_check_snmp_process_new_features
|
13_check_snmp_process_new_features
|
||||||
14_check_snmp_int_ign
|
14_check_snmp_int_ign
|
||||||
15_check_snmp_int_spaces
|
15_check_snmp_int_spaces
|
||||||
|
16_check_snmp_win_max_message_size
|
||||||
50_disable_epn
|
50_disable_epn
|
||||||
51_fix_privacy_doc
|
51_fix_privacy_doc
|
||||||
|
|
Loading…
Reference in a new issue