summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/check_nagios.c42
1 files changed, 27 insertions, 15 deletions
diff --git a/plugins/check_nagios.c b/plugins/check_nagios.c
index 48629be3..72613f97 100644
--- a/plugins/check_nagios.c
+++ b/plugins/check_nagios.c
@@ -87,8 +87,9 @@ int main(int argc, char **argv) {
87 /* Parse extra opts if any */ 87 /* Parse extra opts if any */
88 argv = np_extra_opts(&argc, argv, progname); 88 argv = np_extra_opts(&argc, argv, progname);
89 89
90 if (process_arguments(argc, argv) == ERROR) 90 if (process_arguments(argc, argv) == ERROR) {
91 usage_va(_("Could not parse arguments")); 91 usage_va(_("Could not parse arguments"));
92 }
92 93
93 /* Set signal handling and alarm timeout */ 94 /* Set signal handling and alarm timeout */
94 if (signal(SIGALRM, timeout_alarm_handler) == SIG_ERR) { 95 if (signal(SIGALRM, timeout_alarm_handler) == SIG_ERR) {
@@ -113,18 +114,21 @@ int main(int argc, char **argv) {
113 } 114 }
114 if ((temp_ptr = strtok(input_buffer, "]")) != NULL) { 115 if ((temp_ptr = strtok(input_buffer, "]")) != NULL) {
115 temp_entry_time = strtoul(temp_ptr + 1, NULL, 10); 116 temp_entry_time = strtoul(temp_ptr + 1, NULL, 10);
116 if (temp_entry_time > latest_entry_time) 117 if (temp_entry_time > latest_entry_time) {
117 latest_entry_time = temp_entry_time; 118 latest_entry_time = temp_entry_time;
119 }
118 } 120 }
119 } 121 }
120 fclose(fp); 122 fclose(fp);
121 123
122 if (verbose >= 2) 124 if (verbose >= 2) {
123 printf("command: %s\n", PS_COMMAND); 125 printf("command: %s\n", PS_COMMAND);
126 }
124 127
125 /* run the command to check for the Nagios process.. */ 128 /* run the command to check for the Nagios process.. */
126 if ((result = np_runcmd(PS_COMMAND, &chld_out, &chld_err, 0)) != 0) 129 if ((result = np_runcmd(PS_COMMAND, &chld_out, &chld_err, 0)) != 0) {
127 result = STATE_WARNING; 130 result = STATE_WARNING;
131 }
128 132
129 /* count the number of matching Nagios processes... */ 133 /* count the number of matching Nagios processes... */
130 for (i = 0; i < chld_out.lines; i++) { 134 for (i = 0; i < chld_out.lines; i++) {
@@ -159,8 +163,9 @@ int main(int argc, char **argv) {
159 } 163 }
160 164
161 /* If we get anything on stderr, at least set warning */ 165 /* If we get anything on stderr, at least set warning */
162 if (chld_err.buflen) 166 if (chld_err.buflen) {
163 result = max_state(result, STATE_WARNING); 167 result = max_state(result, STATE_WARNING);
168 }
164 169
165 /* reset the alarm handler */ 170 /* reset the alarm handler */
166 alarm(0); 171 alarm(0);
@@ -200,15 +205,17 @@ int process_arguments(int argc, char **argv) {
200 {"version", no_argument, 0, 'V'}, {"help", no_argument, 0, 'h'}, 205 {"version", no_argument, 0, 'V'}, {"help", no_argument, 0, 'h'},
201 {"verbose", no_argument, 0, 'v'}, {0, 0, 0, 0}}; 206 {"verbose", no_argument, 0, 'v'}, {0, 0, 0, 0}};
202 207
203 if (argc < 2) 208 if (argc < 2) {
204 return ERROR; 209 return ERROR;
210 }
205 211
206 if (!is_option(argv[1])) { 212 if (!is_option(argv[1])) {
207 status_log = argv[1]; 213 status_log = argv[1];
208 if (is_intnonneg(argv[2])) 214 if (is_intnonneg(argv[2])) {
209 expire_minutes = atoi(argv[2]); 215 expire_minutes = atoi(argv[2]);
210 else 216 } else {
211 die(STATE_UNKNOWN, _("Expiration time must be an integer (seconds)\n")); 217 die(STATE_UNKNOWN, _("Expiration time must be an integer (seconds)\n"));
218 }
212 process_string = argv[3]; 219 process_string = argv[3];
213 return OK; 220 return OK;
214 } 221 }
@@ -216,8 +223,9 @@ int process_arguments(int argc, char **argv) {
216 while (1) { 223 while (1) {
217 c = getopt_long(argc, argv, "+hVvF:C:e:t:", longopts, &option); 224 c = getopt_long(argc, argv, "+hVvF:C:e:t:", longopts, &option);
218 225
219 if (c == -1 || c == EOF || c == 1) 226 if (c == -1 || c == EOF || c == 1) {
220 break; 227 break;
228 }
221 229
222 switch (c) { 230 switch (c) {
223 case 'h': /* help */ 231 case 'h': /* help */
@@ -233,16 +241,18 @@ int process_arguments(int argc, char **argv) {
233 process_string = optarg; 241 process_string = optarg;
234 break; 242 break;
235 case 'e': /* expiry time */ 243 case 'e': /* expiry time */
236 if (is_intnonneg(optarg)) 244 if (is_intnonneg(optarg)) {
237 expire_minutes = atoi(optarg); 245 expire_minutes = atoi(optarg);
238 else 246 } else {
239 die(STATE_UNKNOWN, _("Expiration time must be an integer (seconds)\n")); 247 die(STATE_UNKNOWN, _("Expiration time must be an integer (seconds)\n"));
248 }
240 break; 249 break;
241 case 't': /* timeout */ 250 case 't': /* timeout */
242 if (is_intnonneg(optarg)) 251 if (is_intnonneg(optarg)) {
243 timeout_interval = atoi(optarg); 252 timeout_interval = atoi(optarg);
244 else 253 } else {
245 die(STATE_UNKNOWN, _("Timeout must be an integer (seconds)\n")); 254 die(STATE_UNKNOWN, _("Timeout must be an integer (seconds)\n"));
255 }
246 break; 256 break;
247 case 'v': 257 case 'v':
248 verbose++; 258 verbose++;
@@ -252,11 +262,13 @@ int process_arguments(int argc, char **argv) {
252 } 262 }
253 } 263 }
254 264
255 if (status_log == NULL) 265 if (status_log == NULL) {
256 die(STATE_UNKNOWN, _("You must provide the status_log\n")); 266 die(STATE_UNKNOWN, _("You must provide the status_log\n"));
267 }
257 268
258 if (process_string == NULL) 269 if (process_string == NULL) {
259 die(STATE_UNKNOWN, _("You must provide a process string\n")); 270 die(STATE_UNKNOWN, _("You must provide a process string\n"));
271 }
260 272
261 return OK; 273 return OK;
262} 274}