diff options
Diffstat (limited to 'plugins')
| -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 1c92534c..a19da909 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 | } |
