diff options
-rw-r--r-- | plugins/check_snmp.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index 1c92534..a19da90 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c | |||
@@ -43,6 +43,7 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; | |||
43 | #define DEFAULT_TIMEOUT 1 | 43 | #define DEFAULT_TIMEOUT 1 |
44 | #define DEFAULT_RETRIES 5 | 44 | #define DEFAULT_RETRIES 5 |
45 | #define DEFAULT_AUTH_PROTOCOL "MD5" | 45 | #define DEFAULT_AUTH_PROTOCOL "MD5" |
46 | #define DEFAULT_PRIV_PROTOCOL "DES" | ||
46 | #define DEFAULT_DELIMITER "=" | 47 | #define DEFAULT_DELIMITER "=" |
47 | #define DEFAULT_OUTPUT_DELIMITER " " | 48 | #define DEFAULT_OUTPUT_DELIMITER " " |
48 | 49 | ||
@@ -102,6 +103,7 @@ char *proto = NULL; | |||
102 | char *seclevel = NULL; | 103 | char *seclevel = NULL; |
103 | char *secname = NULL; | 104 | char *secname = NULL; |
104 | char *authproto = NULL; | 105 | char *authproto = NULL; |
106 | char *privproto = NULL; | ||
105 | char *authpasswd = NULL; | 107 | char *authpasswd = NULL; |
106 | char *privpasswd = NULL; | 108 | char *privpasswd = NULL; |
107 | char *oid; | 109 | char *oid; |
@@ -438,6 +440,7 @@ process_arguments (int argc, char **argv) | |||
438 | {"seclevel", required_argument, 0, 'L'}, | 440 | {"seclevel", required_argument, 0, 'L'}, |
439 | {"secname", required_argument, 0, 'U'}, | 441 | {"secname", required_argument, 0, 'U'}, |
440 | {"authproto", required_argument, 0, 'a'}, | 442 | {"authproto", required_argument, 0, 'a'}, |
443 | {"privproto", required_argument, 0, 'x'}, | ||
441 | {"authpasswd", required_argument, 0, 'A'}, | 444 | {"authpasswd", required_argument, 0, 'A'}, |
442 | {"privpasswd", required_argument, 0, 'X'}, | 445 | {"privpasswd", required_argument, 0, 'X'}, |
443 | {"next", no_argument, 0, 'n'}, | 446 | {"next", no_argument, 0, 'n'}, |
@@ -458,7 +461,7 @@ process_arguments (int argc, char **argv) | |||
458 | } | 461 | } |
459 | 462 | ||
460 | while (1) { | 463 | while (1) { |
461 | c = getopt_long (argc, argv, "nhvVt:c:w:H:C:o:e:E:d:D:s:t:R:r:l:u:p:m:P:L:U:a:A:X:", | 464 | c = getopt_long (argc, argv, "nhvVt:c:w:H:C:o:e:E:d:D:s:t:R:r:l:u:p:m:P:L:U:a:x:A:X:", |
462 | longopts, &option); | 465 | longopts, &option); |
463 | 466 | ||
464 | if (c == -1 || c == EOF) | 467 | if (c == -1 || c == EOF) |
@@ -505,6 +508,9 @@ process_arguments (int argc, char **argv) | |||
505 | case 'a': /* auth protocol */ | 508 | case 'a': /* auth protocol */ |
506 | authproto = optarg; | 509 | authproto = optarg; |
507 | break; | 510 | break; |
511 | case 'x': /* priv protocol */ | ||
512 | privproto = optarg; | ||
513 | break; | ||
508 | case 'A': /* auth passwd */ | 514 | case 'A': /* auth passwd */ |
509 | authpasswd = optarg; | 515 | authpasswd = optarg; |
510 | break; | 516 | break; |
@@ -717,7 +723,8 @@ validate_arguments () | |||
717 | if (authproto == NULL ) | 723 | if (authproto == NULL ) |
718 | asprintf(&authproto, DEFAULT_AUTH_PROTOCOL); | 724 | asprintf(&authproto, DEFAULT_AUTH_PROTOCOL); |
719 | 725 | ||
720 | 726 | if (privproto == NULL ) | |
727 | asprintf(&privproto, DEFAULT_PRIV_PROTOCOL); | ||
721 | 728 | ||
722 | if (proto == NULL || (strcmp(proto,DEFAULT_PROTOCOL) == 0) ) { /* default protocol version */ | 729 | if (proto == NULL || (strcmp(proto,DEFAULT_PROTOCOL) == 0) ) { /* default protocol version */ |
723 | asprintf(&proto, DEFAULT_PROTOCOL); | 730 | asprintf(&proto, DEFAULT_PROTOCOL); |
@@ -746,7 +753,7 @@ validate_arguments () | |||
746 | print_usage (); | 753 | print_usage (); |
747 | exit (STATE_UNKNOWN); | 754 | exit (STATE_UNKNOWN); |
748 | } | 755 | } |
749 | asprintf(&authpriv, "-l authPriv -a %s -u %s -A %s -x DES -X %s ", authproto, secname, authpasswd, privpasswd); | 756 | asprintf(&authpriv, "-l authPriv -a %s -u %s -A %s -x %s -X %s ", authproto, secname, authpasswd, privproto, privpasswd); |
750 | } | 757 | } |
751 | 758 | ||
752 | } | 759 | } |
@@ -948,6 +955,8 @@ print_help (void) | |||
948 | printf (" %s\n", _("SNMPv3 securityLevel")); | 955 | printf (" %s\n", _("SNMPv3 securityLevel")); |
949 | printf (" %s\n", "-a, --authproto=[MD5|SHA]"); | 956 | printf (" %s\n", "-a, --authproto=[MD5|SHA]"); |
950 | printf (" %s\n", _("SNMPv3 auth proto")); | 957 | printf (" %s\n", _("SNMPv3 auth proto")); |
958 | printf (" %s\n", "-x, --privproto=[DES|AES]"); | ||
959 | printf (" %s\n", _("SNMPv3 priv proto (default DES)")); | ||
951 | 960 | ||
952 | /* Authentication Tokens*/ | 961 | /* Authentication Tokens*/ |
953 | printf (" %s\n", "-C, --community=STRING"); | 962 | printf (" %s\n", "-C, --community=STRING"); |
@@ -1038,5 +1047,5 @@ print_usage (void) | |||
1038 | printf ("[-C community] [-s string] [-r regex] [-R regexi] [-t timeout] [-e retries]\n"); | 1047 | printf ("[-C community] [-s string] [-r regex] [-R regexi] [-t timeout] [-e retries]\n"); |
1039 | printf ("[-l label] [-u units] [-p port-number] [-d delimiter] [-D output-delimiter]\n"); | 1048 | printf ("[-l label] [-u units] [-p port-number] [-d delimiter] [-D output-delimiter]\n"); |
1040 | printf ("[-m miblist] [-P snmp version] [-L seclevel] [-U secname] [-a authproto]\n"); | 1049 | printf ("[-m miblist] [-P snmp version] [-L seclevel] [-U secname] [-a authproto]\n"); |
1041 | printf ("[-A authpasswd] [-X privpasswd]\n"); | 1050 | printf ("[-A authpasswd] [-x privproto] [-X privpasswd]\n"); |
1042 | } | 1051 | } |