Skip to content

Commit 9b776c9

Browse files
author
J. M. Becker
committed
Correct Extra Args
1 parent af11378 commit 9b776c9

File tree

7 files changed

+143
-33
lines changed

7 files changed

+143
-33
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
cmake_minimum_required(VERSION 3.5)
2-
project("check-snmp-extras" VERSION 0.0.1 LANGUAGES C)
2+
project("check-snmp-extras" VERSION 0.0.3 LANGUAGES C)
33

44
## Compiler Flags
55
set(CMAKE_C_STANDARD 11)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ MIB objects:
88
### Usage
99

1010

11-
./check_snmp_disk -v 2c -c <COMMUNITY> <HOSTNAME>
11+
./check_snmp_disk -v 2c -c <COMMUNITY> -Cw 85 -Cw 95 <HOSTNAME>
1212

1313

1414
### Prerequisites

conf/check_snmp_extras.conf

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,29 @@ template CheckCommand "snmp-extras-command" {
1111
value = "$snmp_community$"
1212
}
1313
"-p" = "$snmp_port$"
14+
"-t" = "$snmp_timeout$"
1415
"-v2c" = {
1516
set_if = "$snmp_v2$"
1617
}
1718
"-v3" = {
1819
set_if = "$snmp_v3$"
19-
value = "$snmp_login$"
2020
}
21-
"-X" = {
21+
"-u" = {
2222
set_if = "$snmp_v3$"
23-
value = "$snmp_password$"
23+
value = "$snmp_login$"
2424
}
2525
"-a" = {
2626
set_if = "$snmp_v3_use_authprotocol$"
2727
value = "$snmp_authprotocol$"
2828
}
29+
"-A" = {
30+
set_if = "$snmp_v3$"
31+
value = "$snmp_password$"
32+
}
33+
"-x" = {
34+
set_if = "$snmp_v3_use_privpass$"
35+
value = "$snmp_privprotocol$"
36+
}
2937
"-X" = {
3038
set_if = "$snmp_v3_use_privpass$"
3139
value = "$snmp_privpass$"
@@ -41,8 +49,11 @@ template CheckCommand "snmp-extras-command" {
4149
vars.snmp_login = "snmpuser"
4250
vars.snmp_v3_use_privpass = false
4351
vars.snmp_v3_use_authprotocol = false
44-
vars.snmp_authprotocol = "MD5,SHA"
52+
vars.snmp_authprotocol = "MD5"
53+
vars.snmp_privprotocol = "DES"
4554
vars.snmp_timeout = "5"
55+
vars.snmp_warn = "85"
56+
vars.snmp_crit = "95"
4657
}
4758

4859

@@ -63,8 +74,8 @@ object CheckCommand "snmp-extras-load" {
6374

6475
}
6576
object CheckCommand "snmp-extras-ram" {
66-
import "snmp-extras-command"
77+
import "snmp-extras-command"
6778

68-
command = [ PluginDir + "/check_snmp_ram", "$snmp_address$" ]
79+
command = [ PluginDir + "/check_snmp_ram", "$snmp_address$" ]
6980

7081
}

contrib/check_snmp_extras.spec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Name: check-snmp-extras
2-
Version: 0.0.1
2+
Version: 0.0.3
33
Release: 1%{?dist}
44
Summary: Extra SNMP check plugins
55

src/check_snmp_disk.c

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
#include <net-snmp/net-snmp-config.h>
1313
#include <net-snmp/net-snmp-includes.h>
1414

15-
int warning = 80;
16-
int critical = 90;
15+
int warning = 85;
16+
int critical = 95;
1717

1818
struct hrentry_t
1919
{
@@ -37,18 +37,51 @@ struct hrentry_t
3737
void
3838
usage(void)
3939
{
40-
fprintf(stderr, "USAGE: check_snmp_disk ");
40+
fprintf(stderr, "USAGE: check_snmp_disk");
4141
snmp_parse_args_usage(stderr);
42-
fprintf(stderr, " [OID]\n\n");
42+
fprintf(stderr, "\n\n");
4343
snmp_parse_args_descriptions(stderr);
4444
fprintf(stderr, "Application specific options.\n");
4545
fprintf(stderr, " -C APPOPTS\n");
46+
fprintf(stderr, "\t\t\t c: Set the critical threshold.\n");
47+
fprintf(stderr, "\t\t\t w: Set the warning threshold.\n");
4648
}
4749

48-
void
49-
optProc(int argc, char* const* argv, int opt)
50+
static void
51+
opt_proc(int argc, char* const* argv, int opt)
5052
{
51-
return;
53+
switch (opt) {
54+
case 'C':
55+
while (*optarg) {
56+
switch (*optarg++) {
57+
case 'w':
58+
optind++;
59+
if (optind < argc) {
60+
warning = atoi(argv[optind - 1]);
61+
} else {
62+
fprintf(stderr, "No number name passed to -Cw");
63+
exit(STATUS_UNKNOWN);
64+
}
65+
break;
66+
case 'c':
67+
optind++;
68+
if (optind < argc) {
69+
critical = atoi(argv[optind - 1]);
70+
} else {
71+
fprintf(stderr, "No number name passed to -Cc");
72+
exit(STATUS_UNKNOWN);
73+
}
74+
break;
75+
default:
76+
fprintf(stderr, "Unknown flag passed to -C: %c", optarg[-1]);
77+
exit(STATUS_UNKNOWN);
78+
break;
79+
}
80+
}
81+
break;
82+
default:
83+
break;
84+
}
5285
}
5386

5487
struct hrentry_t*
@@ -181,7 +214,7 @@ main(int argc, char** argv)
181214
init_snmp(argv[0]);
182215
snmp_sess_init(&session);
183216

184-
switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) {
217+
switch (arg = snmp_parse_args(argc, argv, &session, "C:", opt_proc)) {
185218
case NETSNMP_PARSE_ARGS_ERROR:
186219
exit(STATUS_UNKNOWN);
187220
case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:

src/check_snmp_load.c

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
#include <net-snmp/net-snmp-config.h>
1313
#include <net-snmp/net-snmp-includes.h>
1414

15-
int warning = 80;
16-
int critical = 90;
15+
int warning = 85;
16+
int critical = 95;
1717

1818
struct hrentry_t
1919
{
@@ -28,18 +28,51 @@ struct hrentry_t
2828
void
2929
usage(void)
3030
{
31-
fprintf(stderr, "USAGE: check_snmp_load ");
31+
fprintf(stderr, "USAGE: check_snmp_load");
3232
snmp_parse_args_usage(stderr);
33-
fprintf(stderr, " [OID]\n\n");
33+
fprintf(stderr, "\n\n");
3434
snmp_parse_args_descriptions(stderr);
3535
fprintf(stderr, "Application specific options.\n");
3636
fprintf(stderr, " -C APPOPTS\n");
37+
fprintf(stderr, "\t\t\t c: Set the critical threshold.\n");
38+
fprintf(stderr, "\t\t\t w: Set the warning threshold.\n");
3739
}
3840

39-
void
40-
optProc(int argc, char* const* argv, int opt)
41+
static void
42+
opt_proc(int argc, char* const* argv, int opt)
4143
{
42-
return;
44+
switch (opt) {
45+
case 'C':
46+
while (*optarg) {
47+
switch (*optarg++) {
48+
case 'w':
49+
optind++;
50+
if (optind < argc) {
51+
warning = atoi(argv[optind - 1]);
52+
} else {
53+
fprintf(stderr, "No number name passed to -Cw");
54+
exit(STATUS_UNKNOWN);
55+
}
56+
break;
57+
case 'c':
58+
optind++;
59+
if (optind < argc) {
60+
critical = atoi(argv[optind - 1]);
61+
} else {
62+
fprintf(stderr, "No number name passed to -Cc");
63+
exit(STATUS_UNKNOWN);
64+
}
65+
break;
66+
default:
67+
fprintf(stderr, "Unknown flag passed to -C: %c", optarg[-1]);
68+
exit(STATUS_UNKNOWN);
69+
break;
70+
}
71+
}
72+
break;
73+
default:
74+
break;
75+
}
4376
}
4477

4578
struct hrentry_t*
@@ -110,7 +143,7 @@ main(int argc, char** argv)
110143
init_snmp(argv[0]);
111144
snmp_sess_init(&session);
112145

113-
switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) {
146+
switch (arg = snmp_parse_args(argc, argv, &session, "C:", opt_proc)) {
114147
case NETSNMP_PARSE_ARGS_ERROR:
115148
exit(STATUS_UNKNOWN);
116149
case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:

src/check_snmp_ram.c

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
#include <net-snmp/net-snmp-config.h>
1313
#include <net-snmp/net-snmp-includes.h>
1414

15-
int warning = 80;
16-
int critical = 90;
15+
int warning = 85;
16+
int critical = 95;
1717

1818
struct hrentry_t
1919
{
@@ -34,18 +34,51 @@ struct hrentry_t
3434
void
3535
usage(void)
3636
{
37-
fprintf(stderr, "USAGE: check_snmp_ram ");
37+
fprintf(stderr, "USAGE: check_snmp_ram");
3838
snmp_parse_args_usage(stderr);
39-
fprintf(stderr, " [OID]\n\n");
39+
fprintf(stderr, "\n\n");
4040
snmp_parse_args_descriptions(stderr);
4141
fprintf(stderr, "Application specific options.\n");
4242
fprintf(stderr, " -C APPOPTS\n");
43+
fprintf(stderr, "\t\t\t c: Set the critical threshold.\n");
44+
fprintf(stderr, "\t\t\t w: Set the warning threshold.\n");
4345
}
4446

45-
void
46-
optProc(int argc, char* const* argv, int opt)
47+
static void
48+
opt_proc(int argc, char* const* argv, int opt)
4749
{
48-
return;
50+
switch (opt) {
51+
case 'C':
52+
while (*optarg) {
53+
switch (*optarg++) {
54+
case 'w':
55+
optind++;
56+
if (optind < argc) {
57+
warning = atoi(argv[optind - 1]);
58+
} else {
59+
fprintf(stderr, "No number name passed to -Cw");
60+
exit(STATUS_UNKNOWN);
61+
}
62+
break;
63+
case 'c':
64+
optind++;
65+
if (optind < argc) {
66+
critical = atoi(argv[optind - 1]);
67+
} else {
68+
fprintf(stderr, "No number name passed to -Cc");
69+
exit(STATUS_UNKNOWN);
70+
}
71+
break;
72+
default:
73+
fprintf(stderr, "Unknown flag passed to -C: %c", optarg[-1]);
74+
exit(STATUS_UNKNOWN);
75+
break;
76+
}
77+
}
78+
break;
79+
default:
80+
break;
81+
}
4982
}
5083

5184
struct hrentry_t*
@@ -133,7 +166,7 @@ main(int argc, char** argv)
133166
init_snmp(argv[0]);
134167
snmp_sess_init(&session);
135168

136-
switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) {
169+
switch (arg = snmp_parse_args(argc, argv, &session, "C:", opt_proc)) {
137170
case NETSNMP_PARSE_ARGS_ERROR:
138171
exit(STATUS_UNKNOWN);
139172
case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:

0 commit comments

Comments
 (0)