12
12
#include <net-snmp/net-snmp-config.h>
13
13
#include <net-snmp/net-snmp-includes.h>
14
14
15
- int warning = 80 ;
16
- int critical = 90 ;
15
+ int warning = 85 ;
16
+ int critical = 95 ;
17
17
18
18
struct hrentry_t
19
19
{
@@ -37,18 +37,51 @@ struct hrentry_t
37
37
void
38
38
usage (void )
39
39
{
40
- fprintf (stderr , "USAGE: check_snmp_disk " );
40
+ fprintf (stderr , "USAGE: check_snmp_disk" );
41
41
snmp_parse_args_usage (stderr );
42
- fprintf (stderr , " [OID] \n\n" );
42
+ fprintf (stderr , "\n\n" );
43
43
snmp_parse_args_descriptions (stderr );
44
44
fprintf (stderr , "Application specific options.\n" );
45
45
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" );
46
48
}
47
49
48
- void
49
- optProc (int argc , char * const * argv , int opt )
50
+ static void
51
+ opt_proc (int argc , char * const * argv , int opt )
50
52
{
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
+ }
52
85
}
53
86
54
87
struct hrentry_t *
@@ -181,7 +214,7 @@ main(int argc, char** argv)
181
214
init_snmp (argv [0 ]);
182
215
snmp_sess_init (& session );
183
216
184
- switch (arg = snmp_parse_args (argc , argv , & session , "C:" , optProc )) {
217
+ switch (arg = snmp_parse_args (argc , argv , & session , "C:" , opt_proc )) {
185
218
case NETSNMP_PARSE_ARGS_ERROR :
186
219
exit (STATUS_UNKNOWN );
187
220
case NETSNMP_PARSE_ARGS_SUCCESS_EXIT :
0 commit comments