diff options
author | Holger Weiss <hweiss@users.sourceforge.net> | 2009-04-22 00:44:15 +0200 |
---|---|---|
committer | Holger Weiss <hweiss@users.sourceforge.net> | 2009-04-22 00:47:47 +0200 |
commit | ff8b447e14451b01d3823393c74e1521e5d4cf9f (patch) | |
tree | 1a68718ff109dfcbdc01c97e543870293040e24e | |
parent | 92bb86c484c3d52c5ffdfa790f7a5acf68edcc36 (diff) | |
download | monitoring-plugins-hw/output/plugins.tar.gz |
Convert plugins to use the new output functionshw/output/plugins
*** THIS COMMIT WILL BE MODIFIED IN THE FUTURE! ****
Convert some of the C plugins to use the new "configurable output
functions".
-rw-r--r-- | plugins/check_apt.c | 70 | ||||
-rw-r--r-- | plugins/check_by_ssh.c | 13 | ||||
-rw-r--r-- | plugins/check_cluster.c | 27 | ||||
-rw-r--r-- | plugins/check_dig.c | 25 | ||||
-rw-r--r-- | plugins/check_disk.c | 49 | ||||
-rw-r--r-- | plugins/check_dns.c | 13 | ||||
-rw-r--r-- | plugins/check_fping.c | 53 | ||||
-rw-r--r-- | plugins/check_game.c | 44 | ||||
-rw-r--r-- | plugins/check_hpjd.c | 28 | ||||
-rw-r--r-- | plugins/check_http.c | 173 |
10 files changed, 199 insertions, 296 deletions
diff --git a/plugins/check_apt.c b/plugins/check_apt.c index f67ebf9b..f72b9b5f 100644 --- a/plugins/check_apt.c +++ b/plugins/check_apt.c | |||
@@ -43,6 +43,7 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; | |||
43 | #include "common.h" | 43 | #include "common.h" |
44 | #include "runcmd.h" | 44 | #include "runcmd.h" |
45 | #include "utils.h" | 45 | #include "utils.h" |
46 | #include "utils.h" | ||
46 | #include "regex.h" | 47 | #include "regex.h" |
47 | 48 | ||
48 | /* some constants */ | 49 | /* some constants */ |
@@ -74,7 +75,6 @@ int run_upgrade(int *pkgcount, int *secpkgcount); | |||
74 | char* add_to_regexp(char *expr, const char *next); | 75 | char* add_to_regexp(char *expr, const char *next); |
75 | 76 | ||
76 | /* configuration variables */ | 77 | /* configuration variables */ |
77 | static int verbose = 0; /* -v */ | ||
78 | static int do_update = 0; /* whether to call apt-get update */ | 78 | static int do_update = 0; /* whether to call apt-get update */ |
79 | static upgrade_type upgrade = UPGRADE; /* which type of upgrade to do */ | 79 | static upgrade_type upgrade = UPGRADE; /* which type of upgrade to do */ |
80 | static char *upgrade_opts = NULL; /* options to override defaults for upgrade */ | 80 | static char *upgrade_opts = NULL; /* options to override defaults for upgrade */ |
@@ -90,6 +90,7 @@ static int exec_warning = 0; /* if a cmd exited non-zero */ | |||
90 | int main (int argc, char **argv) { | 90 | int main (int argc, char **argv) { |
91 | int result=STATE_UNKNOWN, packages_available=0, sec_count=0; | 91 | int result=STATE_UNKNOWN, packages_available=0, sec_count=0; |
92 | 92 | ||
93 | np_set_mynames(argv[0], "APT"); | ||
93 | if (process_arguments(argc, argv) == ERROR) | 94 | if (process_arguments(argc, argv) == ERROR) |
94 | usage_va(_("Could not parse arguments")); | 95 | usage_va(_("Could not parse arguments")); |
95 | 96 | ||
@@ -115,8 +116,8 @@ int main (int argc, char **argv) { | |||
115 | result = max_state(result, STATE_OK); | 116 | result = max_state(result, STATE_OK); |
116 | } | 117 | } |
117 | 118 | ||
118 | printf(_("APT %s: %d packages available for %s (%d critical updates). %s%s%s%s\n"), | 119 | np_die(result, |
119 | state_text(result), | 120 | _("%d packages available for %s (%d critical updates). %s%s%s%s"), |
120 | packages_available, | 121 | packages_available, |
121 | (upgrade==DIST_UPGRADE)?"dist-upgrade":"upgrade", | 122 | (upgrade==DIST_UPGRADE)?"dist-upgrade":"upgrade", |
122 | sec_count, | 123 | sec_count, |
@@ -125,8 +126,6 @@ int main (int argc, char **argv) { | |||
125 | (exec_warning)?" errors detected":"", | 126 | (exec_warning)?" errors detected":"", |
126 | (stderr_warning||exec_warning)?". run with -v for information.":"" | 127 | (stderr_warning||exec_warning)?". run with -v for information.":"" |
127 | ); | 128 | ); |
128 | |||
129 | return result; | ||
130 | } | 129 | } |
131 | 130 | ||
132 | /* process command-line arguments */ | 131 | /* process command-line arguments */ |
@@ -161,7 +160,7 @@ int process_arguments (int argc, char **argv) { | |||
161 | print_revision(progname, revision); | 160 | print_revision(progname, revision); |
162 | exit(STATE_OK); | 161 | exit(STATE_OK); |
163 | case 'v': | 162 | case 'v': |
164 | verbose++; | 163 | np_increase_verbosity(1); |
165 | break; | 164 | break; |
166 | case 't': | 165 | case 't': |
167 | timeout_interval=atoi(optarg); | 166 | timeout_interval=atoi(optarg); |
@@ -170,14 +169,14 @@ int process_arguments (int argc, char **argv) { | |||
170 | upgrade=DIST_UPGRADE; | 169 | upgrade=DIST_UPGRADE; |
171 | if(optarg!=NULL){ | 170 | if(optarg!=NULL){ |
172 | upgrade_opts=strdup(optarg); | 171 | upgrade_opts=strdup(optarg); |
173 | if(upgrade_opts==NULL) die(STATE_UNKNOWN, "strdup failed"); | 172 | if(upgrade_opts==NULL) np_die(STATE_UNKNOWN, "strdup failed: %m"); |
174 | } | 173 | } |
175 | break; | 174 | break; |
176 | case 'U': | 175 | case 'U': |
177 | upgrade=UPGRADE; | 176 | upgrade=UPGRADE; |
178 | if(optarg!=NULL){ | 177 | if(optarg!=NULL){ |
179 | upgrade_opts=strdup(optarg); | 178 | upgrade_opts=strdup(optarg); |
180 | if(upgrade_opts==NULL) die(STATE_UNKNOWN, "strdup failed"); | 179 | if(upgrade_opts==NULL) np_die(STATE_UNKNOWN, "strdup failed: %m"); |
181 | } | 180 | } |
182 | break; | 181 | break; |
183 | case 'n': | 182 | case 'n': |
@@ -187,7 +186,7 @@ int process_arguments (int argc, char **argv) { | |||
187 | do_update=1; | 186 | do_update=1; |
188 | if(optarg!=NULL){ | 187 | if(optarg!=NULL){ |
189 | update_opts=strdup(optarg); | 188 | update_opts=strdup(optarg); |
190 | if(update_opts==NULL) die(STATE_UNKNOWN, "strdup failed"); | 189 | if(update_opts==NULL) np_die(STATE_UNKNOWN, "strdup failed: %m"); |
191 | } | 190 | } |
192 | break; | 191 | break; |
193 | case 'i': | 192 | case 'i': |
@@ -228,22 +227,22 @@ int run_upgrade(int *pkgcount, int *secpkgcount){ | |||
228 | regres=regcomp(&ireg, include_ptr, REG_EXTENDED); | 227 | regres=regcomp(&ireg, include_ptr, REG_EXTENDED); |
229 | if(regres!=0) { | 228 | if(regres!=0) { |
230 | regerror(regres, &ireg, rerrbuf, 64); | 229 | regerror(regres, &ireg, rerrbuf, 64); |
231 | die(STATE_UNKNOWN, _("%s: Error compiling regexp: %s"), progname, rerrbuf); | 230 | np_die(STATE_UNKNOWN, _("Error compiling regexp: %s"), rerrbuf); |
232 | } | 231 | } |
233 | 232 | ||
234 | if(do_exclude!=NULL){ | 233 | if(do_exclude!=NULL){ |
235 | regres=regcomp(&ereg, do_exclude, REG_EXTENDED); | 234 | regres=regcomp(&ereg, do_exclude, REG_EXTENDED); |
236 | if(regres!=0) { | 235 | if(regres!=0) { |
237 | regerror(regres, &ereg, rerrbuf, 64); | 236 | regerror(regres, &ereg, rerrbuf, 64); |
238 | die(STATE_UNKNOWN, _("%s: Error compiling regexp: %s"), | 237 | np_die(STATE_UNKNOWN, _("Error compiling regexp: %s"), |
239 | progname, rerrbuf); | 238 | rerrbuf); |
240 | } | 239 | } |
241 | } | 240 | } |
242 | regres=regcomp(&sreg, crit_ptr, REG_EXTENDED); | 241 | regres=regcomp(&sreg, crit_ptr, REG_EXTENDED); |
243 | if(regres!=0) { | 242 | if(regres!=0) { |
244 | regerror(regres, &ereg, rerrbuf, 64); | 243 | regerror(regres, &ereg, rerrbuf, 64); |
245 | die(STATE_UNKNOWN, _("%s: Error compiling regexp: %s"), | 244 | np_die(STATE_UNKNOWN, _("Error compiling regexp: %s"), |
246 | progname, rerrbuf); | 245 | rerrbuf); |
247 | } | 246 | } |
248 | 247 | ||
249 | cmdline=construct_cmdline(upgrade, upgrade_opts); | 248 | cmdline=construct_cmdline(upgrade, upgrade_opts); |
@@ -255,8 +254,7 @@ int run_upgrade(int *pkgcount, int *secpkgcount){ | |||
255 | if(result != 0){ | 254 | if(result != 0){ |
256 | exec_warning=1; | 255 | exec_warning=1; |
257 | result = STATE_UNKNOWN; | 256 | result = STATE_UNKNOWN; |
258 | fprintf(stderr, _("'%s' exited with non-zero status.\n"), | 257 | np_verbose(_("'%s' exited with non-zero status."), cmdline); |
259 | cmdline); | ||
260 | } | 258 | } |
261 | 259 | ||
262 | /* parse the output, which should only consist of lines like | 260 | /* parse the output, which should only consist of lines like |
@@ -269,9 +267,7 @@ int run_upgrade(int *pkgcount, int *secpkgcount){ | |||
269 | * in which case the logic here will slightly change. | 267 | * in which case the logic here will slightly change. |
270 | */ | 268 | */ |
271 | for(i = 0; i < chld_out.lines; i++) { | 269 | for(i = 0; i < chld_out.lines; i++) { |
272 | if(verbose){ | 270 | np_verbatim(chld_out.line[i]); |
273 | printf("%s\n", chld_out.line[i]); | ||
274 | } | ||
275 | /* if it is a package we care about */ | 271 | /* if it is a package we care about */ |
276 | if(regexec(&ireg, chld_out.line[i], 0, NULL, 0)==0){ | 272 | if(regexec(&ireg, chld_out.line[i], 0, NULL, 0)==0){ |
277 | /* if we're not excluding, or it's not in the | 273 | /* if we're not excluding, or it's not in the |
@@ -281,11 +277,9 @@ int run_upgrade(int *pkgcount, int *secpkgcount){ | |||
281 | pc++; | 277 | pc++; |
282 | if(regexec(&sreg, chld_out.line[i], 0, NULL, 0)==0){ | 278 | if(regexec(&sreg, chld_out.line[i], 0, NULL, 0)==0){ |
283 | spc++; | 279 | spc++; |
284 | if(verbose) printf("*"); | 280 | np_debug(1, "*"); |
285 | } | ||
286 | if(verbose){ | ||
287 | printf("*%s\n", chld_out.line[i]); | ||
288 | } | 281 | } |
282 | np_verbose("*%s", chld_out.line[i]); | ||
289 | } | 283 | } |
290 | } | 284 | } |
291 | } | 285 | } |
@@ -296,11 +290,8 @@ int run_upgrade(int *pkgcount, int *secpkgcount){ | |||
296 | if(chld_err.buflen){ | 290 | if(chld_err.buflen){ |
297 | stderr_warning=1; | 291 | stderr_warning=1; |
298 | result = max_state(result, STATE_WARNING); | 292 | result = max_state(result, STATE_WARNING); |
299 | if(verbose){ | 293 | for(i = 0; i < chld_err.lines; i++) |
300 | for(i = 0; i < chld_err.lines; i++) { | 294 | np_verbatim(chld_err.line[i]); |
301 | fprintf(stderr, "%s\n", chld_err.line[i]); | ||
302 | } | ||
303 | } | ||
304 | } | 295 | } |
305 | regfree(&ireg); | 296 | regfree(&ireg); |
306 | regfree(&sreg); | 297 | regfree(&sreg); |
@@ -324,25 +315,18 @@ int run_update(void){ | |||
324 | if(result != 0){ | 315 | if(result != 0){ |
325 | exec_warning=1; | 316 | exec_warning=1; |
326 | result = STATE_CRITICAL; | 317 | result = STATE_CRITICAL; |
327 | fprintf(stderr, _("'%s' exited with non-zero status.\n"), | 318 | np_verbose(_("'%s' exited with non-zero status."), cmdline); |
328 | cmdline); | ||
329 | } | 319 | } |
330 | 320 | ||
331 | if(verbose){ | 321 | for(i = 0; i < chld_out.lines; i++) |
332 | for(i = 0; i < chld_out.lines; i++) { | 322 | np_verbatim(chld_out.line[i]); |
333 | printf("%s\n", chld_out.line[i]); | ||
334 | } | ||
335 | } | ||
336 | 323 | ||
337 | /* If we get anything on stderr, at least set warning */ | 324 | /* If we get anything on stderr, at least set warning */ |
338 | if(chld_err.buflen){ | 325 | if(chld_err.buflen){ |
339 | stderr_warning=1; | 326 | stderr_warning=1; |
340 | result = max_state(result, STATE_WARNING); | 327 | result = max_state(result, STATE_WARNING); |
341 | if(verbose){ | 328 | for(i = 0; i < chld_err.lines; i++) |
342 | for(i = 0; i < chld_err.lines; i++) { | 329 | np_verbatim(chld_err.line[i]); |
343 | fprintf(stderr, "%s\n", chld_err.line[i]); | ||
344 | } | ||
345 | } | ||
346 | } | 330 | } |
347 | free(cmdline); | 331 | free(cmdline); |
348 | return result; | 332 | return result; |
@@ -353,12 +337,12 @@ char* add_to_regexp(char *expr, const char *next){ | |||
353 | 337 | ||
354 | if(expr==NULL){ | 338 | if(expr==NULL){ |
355 | re=malloc(sizeof(char)*(strlen("^Inst () ")+strlen(next)+1)); | 339 | re=malloc(sizeof(char)*(strlen("^Inst () ")+strlen(next)+1)); |
356 | if(!re) die(STATE_UNKNOWN, "malloc failed!\n"); | 340 | if(!re) np_die(STATE_UNKNOWN, "malloc failed: %m"); |
357 | sprintf(re, "^Inst (%s) ", next); | 341 | sprintf(re, "^Inst (%s) ", next); |
358 | } else { | 342 | } else { |
359 | /* resize it, adding an extra char for the new '|' separator */ | 343 | /* resize it, adding an extra char for the new '|' separator */ |
360 | re=realloc(expr, sizeof(char)*strlen(expr)+1+strlen(next)+1); | 344 | re=realloc(expr, sizeof(char)*strlen(expr)+1+strlen(next)+1); |
361 | if(!re) die(STATE_UNKNOWN, "realloc failed!\n"); | 345 | if(!re) np_die(STATE_UNKNOWN, "realloc failed: %m"); |
362 | /* append it starting at ')' in the old re */ | 346 | /* append it starting at ')' in the old re */ |
363 | sprintf((char*)(re+strlen(re)-2), "|%s) ", next); | 347 | sprintf((char*)(re+strlen(re)-2), "|%s) ", next); |
364 | } | 348 | } |
@@ -394,7 +378,7 @@ char* construct_cmdline(upgrade_type u, const char *opts){ | |||
394 | len+=strlen(aptcmd)+1; /* "upgrade\0" */ | 378 | len+=strlen(aptcmd)+1; /* "upgrade\0" */ |
395 | 379 | ||
396 | cmd=(char*)malloc(sizeof(char)*len); | 380 | cmd=(char*)malloc(sizeof(char)*len); |
397 | if(cmd==NULL) die(STATE_UNKNOWN, "malloc failed"); | 381 | if(cmd==NULL) np_die(STATE_UNKNOWN, "malloc failed: %m"); |
398 | sprintf(cmd, "%s %s %s", PATH_TO_APTGET, opts_ptr, aptcmd); | 382 | sprintf(cmd, "%s %s %s", PATH_TO_APTGET, opts_ptr, aptcmd); |
399 | return cmd; | 383 | return cmd; |
400 | } | 384 | } |
diff --git a/plugins/check_by_ssh.c b/plugins/check_by_ssh.c index 46d1297f..55940876 100644 --- a/plugins/check_by_ssh.c +++ b/plugins/check_by_ssh.c | |||
@@ -57,7 +57,6 @@ char *outputfile = NULL; | |||
57 | char *host_shortname = NULL; | 57 | char *host_shortname = NULL; |
58 | char **service; | 58 | char **service; |
59 | int passive = FALSE; | 59 | int passive = FALSE; |
60 | int verbose = FALSE; | ||
61 | 60 | ||
62 | int | 61 | int |
63 | main (int argc, char **argv) | 62 | main (int argc, char **argv) |
@@ -71,6 +70,7 @@ main (int argc, char **argv) | |||
71 | FILE *fp = NULL; | 70 | FILE *fp = NULL; |
72 | struct output chld_out, chld_err; | 71 | struct output chld_out, chld_err; |
73 | 72 | ||
73 | np_set_mynames(argv[0], "BY-SSH"); | ||
74 | remotecmd = ""; | 74 | remotecmd = ""; |
75 | comm = strdup (SSH_COMMAND); | 75 | comm = strdup (SSH_COMMAND); |
76 | 76 | ||
@@ -89,8 +89,7 @@ main (int argc, char **argv) | |||
89 | alarm (timeout_interval); | 89 | alarm (timeout_interval); |
90 | 90 | ||
91 | /* run the command */ | 91 | /* run the command */ |
92 | if (verbose) | 92 | np_verbatim(comm); |
93 | printf ("%s\n", comm); | ||
94 | 93 | ||
95 | result = np_runcmd(comm, &chld_out, &chld_err, 0); | 94 | result = np_runcmd(comm, &chld_out, &chld_err, 0); |
96 | 95 | ||
@@ -206,7 +205,7 @@ process_arguments (int argc, char **argv) | |||
206 | print_help (); | 205 | print_help (); |
207 | exit (STATE_OK); | 206 | exit (STATE_OK); |
208 | case 'v': /* help */ | 207 | case 'v': /* help */ |
209 | verbose = TRUE; | 208 | np_increase_verbosity(1); |
210 | break; | 209 | break; |
211 | case 't': /* timeout period */ | 210 | case 't': /* timeout period */ |
212 | if (!is_integer (optarg)) | 211 | if (!is_integer (optarg)) |
@@ -292,7 +291,7 @@ process_arguments (int argc, char **argv) | |||
292 | c = optind; | 291 | c = optind; |
293 | if (hostname == NULL) { | 292 | if (hostname == NULL) { |
294 | if (c <= argc) { | 293 | if (c <= argc) { |
295 | die (STATE_UNKNOWN, _("%s: You must provide a host name\n"), progname); | 294 | np_die(STATE_UNKNOWN, _("You must provide a host name")); |
296 | } | 295 | } |
297 | host_or_die(argv[c]); | 296 | host_or_die(argv[c]); |
298 | hostname = argv[c++]; | 297 | hostname = argv[c++]; |
@@ -326,10 +325,10 @@ validate_arguments (void) | |||
326 | return ERROR; | 325 | return ERROR; |
327 | 326 | ||
328 | if (passive && commands != services) | 327 | if (passive && commands != services) |
329 | die (STATE_UNKNOWN, _("%s: In passive mode, you must provide a service name for each command.\n"), progname); | 328 | np_die(STATE_UNKNOWN, _("In passive mode, you must provide a service name for each command.")); |
330 | 329 | ||
331 | if (passive && host_shortname == NULL) | 330 | if (passive && host_shortname == NULL) |
332 | die (STATE_UNKNOWN, _("%s: In passive mode, you must provide the host short name from the nagios configs.\n"), progname); | 331 | np_die(STATE_UNKNOWN, _("In passive mode, you must provide the host short name from the nagios configs.")); |
333 | 332 | ||
334 | return OK; | 333 | return OK; |
335 | } | 334 | } |
diff --git a/plugins/check_cluster.c b/plugins/check_cluster.c index 703fff97..031f8334 100644 --- a/plugins/check_cluster.c +++ b/plugins/check_cluster.c | |||
@@ -59,8 +59,6 @@ int check_type=CHECK_SERVICES; | |||
59 | char *data_vals=NULL; | 59 | char *data_vals=NULL; |
60 | char *label=NULL; | 60 | char *label=NULL; |
61 | 61 | ||
62 | int verbose=0; | ||
63 | |||
64 | int process_arguments(int,char **); | 62 | int process_arguments(int,char **); |
65 | 63 | ||
66 | 64 | ||
@@ -71,12 +69,13 @@ int main(int argc, char **argv){ | |||
71 | int return_code=STATE_OK; | 69 | int return_code=STATE_OK; |
72 | thresholds *thresholds = NULL; | 70 | thresholds *thresholds = NULL; |
73 | 71 | ||
72 | np_set_mynames(argv[0], "CLUSTER"); | ||
74 | if(process_arguments(argc,argv)==ERROR) | 73 | if(process_arguments(argc,argv)==ERROR) |
75 | usage(_("Could not parse arguments")); | 74 | usage(_("Could not parse arguments")); |
76 | 75 | ||
77 | /* Initialize the thresholds */ | 76 | /* Initialize the thresholds */ |
78 | set_thresholds(&thresholds, warn_threshold, crit_threshold); | 77 | set_thresholds(&thresholds, warn_threshold, crit_threshold); |
79 | if(verbose) | 78 | if(np_get_verbosity()>0) |
80 | print_thresholds("check_cluster", thresholds); | 79 | print_thresholds("check_cluster", thresholds); |
81 | 80 | ||
82 | /* check the data values */ | 81 | /* check the data values */ |
@@ -121,21 +120,17 @@ int main(int argc, char **argv){ | |||
121 | 120 | ||
122 | 121 | ||
123 | /* return the status of the cluster */ | 122 | /* return the status of the cluster */ |
124 | if(check_type==CHECK_SERVICES){ | 123 | if(check_type==CHECK_SERVICES) |
125 | return_code=get_status(total_services_warning+total_services_unknown+total_services_critical, thresholds); | 124 | np_die(get_status(total_services_warning+total_services_unknown+total_services_critical, thresholds), |
126 | printf("CLUSTER %s: %s: %d ok, %d warning, %d unknown, %d critical\n", | 125 | "%s: %d ok, %d warning, %d unknown, %d critical\n", |
127 | state_text(return_code), (label==NULL)?"Service cluster":label, | 126 | (label==NULL)?"Service cluster":label, |
128 | total_services_ok,total_services_warning, | 127 | total_services_ok,total_services_warning, |
129 | total_services_unknown,total_services_critical); | 128 | total_services_unknown,total_services_critical); |
130 | } | 129 | else |
131 | else{ | 130 | np_die(get_status(total_services_warning+total_services_unknown+total_services_critical, thresholds), |
132 | return_code=get_status(total_hosts_down+total_hosts_unreachable, thresholds); | 131 | "%s: %d up, %d down, %d unreachable\n", |
133 | printf("CLUSTER %s: %s: %d up, %d down, %d unreachable\n", | 132 | (label==NULL)?"Host cluster":label, |
134 | state_text(return_code), (label==NULL)?"Host cluster":label, | ||
135 | total_hosts_up,total_hosts_down,total_hosts_unreachable); | 133 | total_hosts_up,total_hosts_down,total_hosts_unreachable); |
136 | } | ||
137 | |||
138 | return return_code; | ||
139 | } | 134 | } |
140 | 135 | ||
141 | 136 | ||
@@ -198,7 +193,7 @@ int process_arguments(int argc, char **argv){ | |||
198 | break; | 193 | break; |
199 | 194 | ||
200 | case 'v': /* verbose */ | 195 | case 'v': /* verbose */ |
201 | verbose++; | 196 | np_increase_verbosity(1); |
202 | break; | 197 | break; |
203 | 198 | ||
204 | case 'V': /* version */ | 199 | case 'V': /* version */ |
diff --git a/plugins/check_dig.c b/plugins/check_dig.c index e850337b..77bc9b79 100644 --- a/plugins/check_dig.c +++ b/plugins/check_dig.c | |||
@@ -59,7 +59,6 @@ char *query_address = NULL; | |||
59 | char *record_type = "A"; | 59 | char *record_type = "A"; |
60 | char *expected_address = NULL; | 60 | char *expected_address = NULL; |
61 | char *dns_server = NULL; | 61 | char *dns_server = NULL; |
62 | int verbose = FALSE; | ||
63 | int server_port = DEFAULT_PORT; | 62 | int server_port = DEFAULT_PORT; |
64 | double warning_interval = UNDEFINED; | 63 | double warning_interval = UNDEFINED; |
65 | double critical_interval = UNDEFINED; | 64 | double critical_interval = UNDEFINED; |
@@ -77,6 +76,7 @@ main (int argc, char **argv) | |||
77 | double elapsed_time; | 76 | double elapsed_time; |
78 | int result = STATE_UNKNOWN; | 77 | int result = STATE_UNKNOWN; |
79 | 78 | ||
79 | np_set_mynames(argv[0], "DNS"); | ||
80 | setlocale (LC_ALL, ""); | 80 | setlocale (LC_ALL, ""); |
81 | bindtextdomain (PACKAGE, LOCALEDIR); | 81 | bindtextdomain (PACKAGE, LOCALEDIR); |
82 | textdomain (PACKAGE); | 82 | textdomain (PACKAGE); |
@@ -95,13 +95,11 @@ main (int argc, char **argv) | |||
95 | alarm (timeout_interval); | 95 | alarm (timeout_interval); |
96 | gettimeofday (&tv, NULL); | 96 | gettimeofday (&tv, NULL); |
97 | 97 | ||
98 | if (verbose) { | 98 | np_verbatim(command_line); |
99 | printf ("%s\n", command_line); | 99 | if(expected_address != NULL) { |
100 | if(expected_address != NULL) { | 100 | np_verbose(_("Looking for: '%s'"), expected_address); |
101 | printf (_("Looking for: '%s'\n"), expected_address); | 101 | } else { |
102 | } else { | 102 | np_verbose(_("Looking for: '%s'"), query_address); |
103 | printf (_("Looking for: '%s'\n"), query_address); | ||
104 | } | ||
105 | } | 103 | } |
106 | 104 | ||
107 | /* run the command */ | 105 | /* run the command */ |
@@ -117,8 +115,7 @@ main (int argc, char **argv) | |||
117 | /* loop through the whole 'ANSWER SECTION' */ | 115 | /* loop through the whole 'ANSWER SECTION' */ |
118 | for(; i < chld_out.lines; i++) { | 116 | for(; i < chld_out.lines; i++) { |
119 | /* get the host address */ | 117 | /* get the host address */ |
120 | if (verbose) | 118 | np_verbatim(chld_out.line[i]); |
121 | printf ("%s\n", chld_out.line[i]); | ||
122 | 119 | ||
123 | if (strstr (chld_out.line[i], (expected_address == NULL ? query_address : expected_address)) != NULL) { | 120 | if (strstr (chld_out.line[i], (expected_address == NULL ? query_address : expected_address)) != NULL) { |
124 | msg = chld_out.line[i]; | 121 | msg = chld_out.line[i]; |
@@ -165,8 +162,9 @@ main (int argc, char **argv) | |||
165 | else if (warning_interval > UNDEFINED && elapsed_time > warning_interval) | 162 | else if (warning_interval > UNDEFINED && elapsed_time > warning_interval) |
166 | result = STATE_WARNING; | 163 | result = STATE_WARNING; |
167 | 164 | ||
168 | printf ("DNS %s - %.3f seconds response time (%s)|%s\n", | 165 | np_die(result, |
169 | state_text (result), elapsed_time, | 166 | "%.3f seconds response time (%s)|%s\n", |
167 | elapsed_time, | ||
170 | msg ? msg : _("Probably a non-existent host/domain"), | 168 | msg ? msg : _("Probably a non-existent host/domain"), |
171 | fperfdata("time", elapsed_time, "s", | 169 | fperfdata("time", elapsed_time, "s", |
172 | (warning_interval>UNDEFINED?TRUE:FALSE), | 170 | (warning_interval>UNDEFINED?TRUE:FALSE), |
@@ -174,7 +172,6 @@ main (int argc, char **argv) | |||
174 | (critical_interval>UNDEFINED?TRUE:FALSE), | 172 | (critical_interval>UNDEFINED?TRUE:FALSE), |
175 | critical_interval, | 173 | critical_interval, |
176 | TRUE, 0, FALSE, 0)); | 174 | TRUE, 0, FALSE, 0)); |
177 | return result; | ||
178 | } | 175 | } |
179 | 176 | ||
180 | 177 | ||
@@ -257,7 +254,7 @@ process_arguments (int argc, char **argv) | |||
257 | } | 254 | } |
258 | break; | 255 | break; |
259 | case 'v': /* verbose */ | 256 | case 'v': /* verbose */ |
260 | verbose = TRUE; | 257 | np_increase_verbosity(1); |
261 | break; | 258 | break; |
262 | case 'T': | 259 | case 'T': |
263 | record_type = optarg; | 260 | record_type = optarg; |
diff --git a/plugins/check_disk.c b/plugins/check_disk.c index 03f09494..91cc097a 100644 --- a/plugins/check_disk.c +++ b/plugins/check_disk.c | |||
@@ -134,7 +134,6 @@ char *path; | |||
134 | char *exclude_device; | 134 | char *exclude_device; |
135 | char *units; | 135 | char *units; |
136 | uintmax_t mult = 1024 * 1024; | 136 | uintmax_t mult = 1024 * 1024; |
137 | int verbose = 0; | ||
138 | int erronly = FALSE; | 137 | int erronly = FALSE; |
139 | int display_mntp = FALSE; | 138 | int display_mntp = FALSE; |
140 | int exact_match = FALSE; | 139 | int exact_match = FALSE; |
@@ -178,7 +177,8 @@ main (int argc, char **argv) | |||
178 | struct name_list *seen = NULL; | 177 | struct name_list *seen = NULL; |
179 | struct stat *stat_buf; | 178 | struct stat *stat_buf; |
180 | 179 | ||
181 | preamble = strdup (" - free space:"); | 180 | np_set_mynames(argv[0], "DISK"); |
181 | preamble = strdup (" free space:"); | ||
182 | output = strdup (""); | 182 | output = strdup (""); |
183 | details = strdup (""); | 183 | details = strdup (""); |
184 | perf = strdup (""); | 184 | perf = strdup (""); |
@@ -228,12 +228,12 @@ main (int argc, char **argv) | |||
228 | /* Process for every path in list */ | 228 | /* Process for every path in list */ |
229 | for (path = path_select_list; path; path=path->name_next) { | 229 | for (path = path_select_list; path; path=path->name_next) { |
230 | 230 | ||
231 | if (verbose > 3 && path->freespace_percent->warning != NULL && path->freespace_percent->critical != NULL) | 231 | if (path->freespace_percent->warning != NULL && path->freespace_percent->critical != NULL) |
232 | printf("Thresholds(pct) for %s warn: %f crit %f\n",path->name, path->freespace_percent->warning->end, | 232 | np_debug(4, "Thresholds(pct) for %s warn: %f crit %f\n",path->name, path->freespace_percent->warning->end, |
233 | path->freespace_percent->critical->end); | 233 | path->freespace_percent->critical->end); |
234 | 234 | ||
235 | if (verbose > 3 && path->group != NULL) | 235 | if (path->group != NULL) |
236 | printf("Group of %s: %s\n",path->name,path->group); | 236 | np_debug(4, "Group of %s: %s\n",path->name,path->group); |
237 | 237 | ||
238 | /* reset disk result */ | 238 | /* reset disk result */ |
239 | disk_result = STATE_UNKNOWN; | 239 | disk_result = STATE_UNKNOWN; |
@@ -270,8 +270,7 @@ main (int argc, char **argv) | |||
270 | fsp.fsu_files += tmpfsp.fsu_files; /* Total file nodes. */ | 270 | fsp.fsu_files += tmpfsp.fsu_files; /* Total file nodes. */ |
271 | fsp.fsu_ffree += tmpfsp.fsu_ffree; /* Free file nodes. */ | 271 | fsp.fsu_ffree += tmpfsp.fsu_ffree; /* Free file nodes. */ |
272 | 272 | ||
273 | if (verbose > 3) | 273 | np_debug(4, "Group %s: add %llu blocks (%s) \n", path->group, tmpfsp.fsu_bavail, temp_list->name); |
274 | printf("Group %s: add %llu blocks (%s) \n", path->group, tmpfsp.fsu_bavail, temp_list->name); | ||
275 | /* printf("Group %s: add %u blocks (%s)\n", temp_list->name); // path->group, tmpfsp.fsu_bavail, temp_list->name); */ | 274 | /* printf("Group %s: add %u blocks (%s)\n", temp_list->name); // path->group, tmpfsp.fsu_bavail, temp_list->name); */ |
276 | 275 | ||
277 | np_add_name(&seen, temp_list->best_match->me_mountdir); | 276 | np_add_name(&seen, temp_list->best_match->me_mountdir); |
@@ -318,35 +317,33 @@ main (int argc, char **argv) | |||
318 | dused_inodes_percent = calculate_percent(fsp.fsu_files - fsp.fsu_ffree, fsp.fsu_files); | 317 | dused_inodes_percent = calculate_percent(fsp.fsu_files - fsp.fsu_ffree, fsp.fsu_files); |
319 | dfree_inodes_percent = 100 - dused_inodes_percent; | 318 | dfree_inodes_percent = 100 - dused_inodes_percent; |
320 | 319 | ||
321 | if (verbose >= 3) { | 320 | np_debug(3, "For %s, used_pct=%g free_pct=%g used_units=%g free_units=%g total_units=%g used_inodes_pct=%g free_inodes_pct=%g\n", |
322 | printf ("For %s, used_pct=%g free_pct=%g used_units=%g free_units=%g total_units=%g used_inodes_pct=%g free_inodes_pct=%g\n", | ||
323 | me->me_mountdir, dused_pct, dfree_pct, dused_units, dfree_units, dtotal_units, dused_inodes_percent, dfree_inodes_percent); | 321 | me->me_mountdir, dused_pct, dfree_pct, dused_units, dfree_units, dtotal_units, dused_inodes_percent, dfree_inodes_percent); |
324 | } | ||
325 | 322 | ||
326 | /* Threshold comparisons */ | 323 | /* Threshold comparisons */ |
327 | 324 | ||
328 | temp_result = get_status(dfree_units, path->freespace_units); | 325 | temp_result = get_status(dfree_units, path->freespace_units); |
329 | if (verbose >=3) printf("Freespace_units result=%d\n", temp_result); | 326 | np_debug(3, "Freespace_units result=%d\n", temp_result); |
330 | disk_result = max_state( disk_result, temp_result ); | 327 | disk_result = max_state( disk_result, temp_result ); |
331 | 328 | ||
332 | temp_result = get_status(dfree_pct, path->freespace_percent); | 329 | temp_result = get_status(dfree_pct, path->freespace_percent); |
333 | if (verbose >=3) printf("Freespace%% result=%d\n", temp_result); | 330 | np_debug(3, "Freespace%% result=%d\n", temp_result); |
334 | disk_result = max_state( disk_result, temp_result ); | 331 | disk_result = max_state( disk_result, temp_result ); |
335 | 332 | ||
336 | temp_result = get_status(dused_units, path->usedspace_units); | 333 | temp_result = get_status(dused_units, path->usedspace_units); |
337 | if (verbose >=3) printf("Usedspace_units result=%d\n", temp_result); | 334 | np_debug(3, "Usedspace_units result=%d\n", temp_result); |
338 | disk_result = max_state( disk_result, temp_result ); | 335 | disk_result = max_state( disk_result, temp_result ); |
339 | 336 | ||
340 | temp_result = get_status(dused_pct, path->usedspace_percent); | 337 | temp_result = get_status(dused_pct, path->usedspace_percent); |
341 | if (verbose >=3) printf("Usedspace_percent result=%d\n", temp_result); | 338 | np_debug(3, "Usedspace_percent result=%d\n", temp_result); |
342 | disk_result = max_state( disk_result, temp_result ); | 339 | disk_result = max_state( disk_result, temp_result ); |
343 | 340 | ||
344 | temp_result = get_status(dused_inodes_percent, path->usedinodes_percent); | 341 | temp_result = get_status(dused_inodes_percent, path->usedinodes_percent); |
345 | if (verbose >=3) printf("Usedinodes_percent result=%d\n", temp_result); | 342 | np_debug(3, "Usedinodes_percent result=%d\n", temp_result); |
346 | disk_result = max_state( disk_result, temp_result ); | 343 | disk_result = max_state( disk_result, temp_result ); |
347 | 344 | ||
348 | temp_result = get_status(dfree_inodes_percent, path->freeinodes_percent); | 345 | temp_result = get_status(dfree_inodes_percent, path->freeinodes_percent); |
349 | if (verbose >=3) printf("Freeinodes_percent result=%d\n", temp_result); | 346 | np_debug(3, "Freeinodes_percent result=%d\n", temp_result); |
350 | disk_result = max_state( disk_result, temp_result ); | 347 | disk_result = max_state( disk_result, temp_result ); |
351 | 348 | ||
352 | result = max_state(result, disk_result); | 349 | result = max_state(result, disk_result); |
@@ -381,10 +378,10 @@ main (int argc, char **argv) | |||
381 | TRUE, 0, | 378 | TRUE, 0, |
382 | TRUE, dtotal_units)); | 379 | TRUE, dtotal_units)); |
383 | 380 | ||
384 | if (disk_result==STATE_OK && erronly && !verbose) | 381 | if (disk_result==STATE_OK && erronly && np_get_verbosity()<=0) |
385 | continue; | 382 | continue; |
386 | 383 | ||
387 | if (disk_result!=STATE_OK || verbose>=0) { | 384 | if (disk_result!=STATE_OK || np_get_verbosity()>=0) { |
388 | asprintf (&output, "%s %s %.0f %s (%.0f%%", | 385 | asprintf (&output, "%s %s %.0f %s (%.0f%%", |
389 | output, | 386 | output, |
390 | (!strcmp(me->me_mountdir, "none") || display_mntp) ? me->me_devname : me->me_mountdir, | 387 | (!strcmp(me->me_mountdir, "none") || display_mntp) ? me->me_devname : me->me_mountdir, |
@@ -410,12 +407,11 @@ main (int argc, char **argv) | |||
410 | 407 | ||
411 | } | 408 | } |
412 | 409 | ||
413 | if (verbose > 2) | 410 | if (np_get_verbosity()>=3) |
414 | asprintf (&output, "%s%s", output, details); | 411 | asprintf (&output, "%s%s", output, details); |
415 | 412 | ||
416 | 413 | ||
417 | printf ("DISK %s%s%s|%s\n", state_text (result), (erronly && result==STATE_OK) ? "" : preamble, output, perf); | 414 | np_die(result, "%s%s|%s", (erronly && result==STATE_OK) ? "" : preamble, output, perf); |
418 | return result; | ||
419 | } | 415 | } |
420 | 416 | ||
421 | 417 | ||
@@ -635,10 +631,10 @@ process_arguments (int argc, char **argv) | |||
635 | np_add_name(&fs_exclude_list, optarg); | 631 | np_add_name(&fs_exclude_list, optarg); |
636 | break; | 632 | break; |
637 | case 'v': /* verbose */ | 633 | case 'v': /* verbose */ |
638 | verbose++; | 634 | np_increase_verbosity(1); |
639 | break; | 635 | break; |
640 | case 'q': /* verbose */ | 636 | case 'q': /* verbose */ |
641 | verbose--; | 637 | np_decrease_verbosity(1); |
642 | break; | 638 | break; |
643 | case 'e': | 639 | case 'e': |
644 | erronly = TRUE; | 640 | erronly = TRUE; |
@@ -670,8 +666,7 @@ process_arguments (int argc, char **argv) | |||
670 | for (me = mount_list; me; me = me->me_next) { | 666 | for (me = mount_list; me; me = me->me_next) { |
671 | if (np_regex_match_mount_entry(me, &re)) { | 667 | if (np_regex_match_mount_entry(me, &re)) { |
672 | fnd = true; | 668 | fnd = true; |
673 | if (verbose > 3) | 669 | np_debug(4, "%s %s matching expression %s\n", me->me_devname, me->me_mountdir, optarg); |
674 | printf("%s %s matching expression %s\n", me->me_devname, me->me_mountdir, optarg); | ||
675 | 670 | ||
676 | /* add parameter if not found. overwrite thresholds if path has already been added */ | 671 | /* add parameter if not found. overwrite thresholds if path has already been added */ |
677 | if (! (se = np_find_parameter(path_select_list, me->me_mountdir))) { | 672 | if (! (se = np_find_parameter(path_select_list, me->me_mountdir))) { |
diff --git a/plugins/check_dns.c b/plugins/check_dns.c index 454f813b..d81536a1 100644 --- a/plugins/check_dns.c +++ b/plugins/check_dns.c | |||
@@ -56,7 +56,6 @@ void print_usage (void); | |||
56 | char query_address[ADDRESS_LENGTH] = ""; | 56 | char query_address[ADDRESS_LENGTH] = ""; |
57 | char dns_server[ADDRESS_LENGTH] = ""; | 57 | char dns_server[ADDRESS_LENGTH] = ""; |
58 | char ptr_server[ADDRESS_LENGTH] = ""; | 58 | char ptr_server[ADDRESS_LENGTH] = ""; |
59 | int verbose = FALSE; | ||
60 | char expected_address[ADDRESS_LENGTH] = ""; | 59 | char expected_address[ADDRESS_LENGTH] = ""; |
61 | int match_expected_address = FALSE; | 60 | int match_expected_address = FALSE; |
62 | int expect_authority = FALSE; | 61 | int expect_authority = FALSE; |
@@ -80,6 +79,7 @@ main (int argc, char **argv) | |||
80 | output chld_out, chld_err; | 79 | output chld_out, chld_err; |
81 | size_t i; | 80 | size_t i; |
82 | 81 | ||
82 | np_set_mynames(argv[0], "DNS"); | ||
83 | setlocale (LC_ALL, ""); | 83 | setlocale (LC_ALL, ""); |
84 | bindtextdomain (PACKAGE, LOCALEDIR); | 84 | bindtextdomain (PACKAGE, LOCALEDIR); |
85 | textdomain (PACKAGE); | 85 | textdomain (PACKAGE); |
@@ -99,8 +99,7 @@ main (int argc, char **argv) | |||
99 | alarm (timeout_interval); | 99 | alarm (timeout_interval); |
100 | gettimeofday (&tv, NULL); | 100 | gettimeofday (&tv, NULL); |
101 | 101 | ||
102 | if (verbose) | 102 | np_verbatim(command_line); |
103 | printf ("%s\n", command_line); | ||
104 | 103 | ||
105 | /* run the command */ | 104 | /* run the command */ |
106 | if((np_runcmd(command_line, &chld_out, &chld_err, 0)) != 0) { | 105 | if((np_runcmd(command_line, &chld_out, &chld_err, 0)) != 0) { |
@@ -110,8 +109,7 @@ main (int argc, char **argv) | |||
110 | 109 | ||
111 | /* scan stdout */ | 110 | /* scan stdout */ |
112 | for(i = 0; i < chld_out.lines; i++) { | 111 | for(i = 0; i < chld_out.lines; i++) { |
113 | if (verbose) | 112 | np_verbatim(chld_out.line[i]); |
114 | puts(chld_out.line[i]); | ||
115 | 113 | ||
116 | if (strstr (chld_out.line[i], ".in-addr.arpa")) { | 114 | if (strstr (chld_out.line[i], ".in-addr.arpa")) { |
117 | if ((temp_buffer = strstr (chld_out.line[i], "name = "))) | 115 | if ((temp_buffer = strstr (chld_out.line[i], "name = "))) |
@@ -161,8 +159,7 @@ main (int argc, char **argv) | |||
161 | 159 | ||
162 | /* scan stderr */ | 160 | /* scan stderr */ |
163 | for(i = 0; i < chld_err.lines; i++) { | 161 | for(i = 0; i < chld_err.lines; i++) { |
164 | if (verbose) | 162 | np_verbatim(chld_err.line[i]); |
165 | puts(chld_err.line[i]); | ||
166 | 163 | ||
167 | if (error_scan (chld_err.line[i]) != STATE_OK) { | 164 | if (error_scan (chld_err.line[i]) != STATE_OK) { |
168 | result = max_state (result, error_scan (chld_err.line[i])); | 165 | result = max_state (result, error_scan (chld_err.line[i])); |
@@ -329,7 +326,7 @@ process_arguments (int argc, char **argv) | |||
329 | print_revision (progname, revision); | 326 | print_revision (progname, revision); |
330 | exit (STATE_OK); | 327 | exit (STATE_OK); |
331 | case 'v': /* version */ | 328 | case 'v': /* version */ |
332 | verbose = TRUE; | 329 | np_increase_verbosity(1); |
333 | break; | 330 | break; |
334 | case 't': /* timeout period */ | 331 | case 't': /* timeout period */ |
335 | timeout_interval = atoi (optarg); | 332 | timeout_interval = atoi (optarg); |
diff --git a/plugins/check_fping.c b/plugins/check_fping.c index 4dc48b77..8114b36f 100644 --- a/plugins/check_fping.c +++ b/plugins/check_fping.c | |||
@@ -60,7 +60,6 @@ void print_usage (void); | |||
60 | char *server_name = NULL; | 60 | char *server_name = NULL; |
61 | int packet_size = PACKET_SIZE; | 61 | int packet_size = PACKET_SIZE; |
62 | int packet_count = PACKET_COUNT; | 62 | int packet_count = PACKET_COUNT; |
63 | int verbose = FALSE; | ||
64 | int cpl; | 63 | int cpl; |
65 | int wpl; | 64 | int wpl; |
66 | double crta; | 65 | double crta; |
@@ -81,6 +80,7 @@ main (int argc, char **argv) | |||
81 | char *input_buffer = NULL; | 80 | char *input_buffer = NULL; |
82 | input_buffer = malloc (MAX_INPUT_BUFFER); | 81 | input_buffer = malloc (MAX_INPUT_BUFFER); |
83 | 82 | ||
83 | np_set_mynames(argv[0], "FPING"); | ||
84 | setlocale (LC_ALL, ""); | 84 | setlocale (LC_ALL, ""); |
85 | bindtextdomain (PACKAGE, LOCALEDIR); | 85 | bindtextdomain (PACKAGE, LOCALEDIR); |
86 | textdomain (PACKAGE); | 86 | textdomain (PACKAGE); |
@@ -94,32 +94,26 @@ main (int argc, char **argv) | |||
94 | asprintf (&command_line, "%s -b %d -c %d %s", PATH_TO_FPING, | 94 | asprintf (&command_line, "%s -b %d -c %d %s", PATH_TO_FPING, |
95 | packet_size, packet_count, server); | 95 | packet_size, packet_count, server); |
96 | 96 | ||
97 | if (verbose) | 97 | np_verbatim(command_line); |
98 | printf ("%s\n", command_line); | ||
99 | 98 | ||
100 | /* run the command */ | 99 | /* run the command */ |
101 | child_process = spopen (command_line); | 100 | child_process = spopen (command_line); |
102 | if (child_process == NULL) { | 101 | if (child_process == NULL) |
103 | printf (_("Could not open pipe: %s\n"), command_line); | 102 | np_die(STATE_UNKNOWN, _("Could not open pipe: %s"), command_line); |
104 | return STATE_UNKNOWN; | ||
105 | } | ||
106 | 103 | ||
107 | child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r"); | 104 | child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r"); |
108 | if (child_stderr == NULL) { | 105 | if (child_stderr == NULL) |
109 | printf (_("Could not open stderr for %s\n"), command_line); | 106 | printf (_("Could not open stderr for %s\n"), command_line); |
110 | } | ||
111 | 107 | ||
112 | while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) { | 108 | while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) { |
113 | if (verbose) | 109 | np_verbatim(input_buffer); |
114 | printf ("%s", input_buffer); | ||
115 | status = max_state (status, textscan (input_buffer)); | 110 | status = max_state (status, textscan (input_buffer)); |
116 | } | 111 | } |
117 | 112 | ||
118 | /* If we get anything on STDERR, at least set warning */ | 113 | /* If we get anything on STDERR, at least set warning */ |
119 | while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_stderr)) { | 114 | while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_stderr)) { |
120 | status = max_state (status, STATE_WARNING); | 115 | status = max_state (status, STATE_WARNING); |
121 | if (verbose) | 116 | np_verbatim(input_buffer); |
122 | printf ("%s", input_buffer); | ||
123 | status = max_state (status, textscan (input_buffer)); | 117 | status = max_state (status, textscan (input_buffer)); |
124 | } | 118 | } |
125 | (void) fclose (child_stderr); | 119 | (void) fclose (child_stderr); |
@@ -129,9 +123,7 @@ main (int argc, char **argv) | |||
129 | /* need to use max_state not max */ | 123 | /* need to use max_state not max */ |
130 | status = max_state (status, STATE_WARNING); | 124 | status = max_state (status, STATE_WARNING); |
131 | 125 | ||
132 | printf ("FPING %s - %s\n", state_text (status), server_name); | 126 | np_die("%s", server_name); |
133 | |||
134 | return status; | ||
135 | } | 127 | } |
136 | 128 | ||
137 | 129 | ||
@@ -146,16 +138,15 @@ textscan (char *buf) | |||
146 | int status = STATE_UNKNOWN; | 138 | int status = STATE_UNKNOWN; |
147 | 139 | ||
148 | if (strstr (buf, "not found")) { | 140 | if (strstr (buf, "not found")) { |
149 | die (STATE_CRITICAL, _("FPING UNKNOW - %s not found\n"), server_name); | 141 | np_die(STATE_UNKNOWN, _("%s not found"), server_name); |
150 | 142 | ||
151 | } | 143 | } |
152 | else if (strstr (buf, "is unreachable") || strstr (buf, "Unreachable")) { | 144 | else if (strstr (buf, "is unreachable") || strstr (buf, "Unreachable")) { |
153 | die (STATE_CRITICAL, _("FPING CRITICAL - %s is unreachable\n"), | 145 | np_die(STATE_CRITICAL, _("%s is unreachable"), "host"); |
154 | "host"); | ||
155 | 146 | ||
156 | } | 147 | } |
157 | else if (strstr (buf, "is down")) { | 148 | else if (strstr (buf, "is down")) { |
158 | die (STATE_CRITICAL, _("FPING CRITICAL - %s is down\n"), server_name); | 149 | np_die(STATE_CRITICAL, _("%s is down"), server_name); |
159 | 150 | ||
160 | } | 151 | } |
161 | else if (strstr (buf, "is alive")) { | 152 | else if (strstr (buf, "is alive")) { |
@@ -181,9 +172,9 @@ textscan (char *buf) | |||
181 | status = STATE_WARNING; | 172 | status = STATE_WARNING; |
182 | else | 173 | else |
183 | status = STATE_OK; | 174 | status = STATE_OK; |
184 | die (status, | 175 | np_die(status, |
185 | _("FPING %s - %s (loss=%.0f%%, rta=%f ms)|%s %s\n"), | 176 | _("- %s (loss=%.0f%%, rta=%f ms)|%s %s\n"), |
186 | state_text (status), server_name, loss, rta, | 177 | server_name, loss, rta, |
187 | perfdata ("loss", (long int)loss, "%", wpl_p, wpl, cpl_p, cpl, TRUE, 0, TRUE, 100), | 178 | perfdata ("loss", (long int)loss, "%", wpl_p, wpl, cpl_p, cpl, TRUE, 0, TRUE, 100), |
188 | fperfdata ("rta", rta/1.0e3, "s", wrta_p, wrta/1.0e3, crta_p, crta/1.0e3, TRUE, 0, FALSE, 0)); | 179 | fperfdata ("rta", rta/1.0e3, "s", wrta_p, wrta/1.0e3, crta_p, crta/1.0e3, TRUE, 0, FALSE, 0)); |
189 | 180 | ||
@@ -203,8 +194,8 @@ textscan (char *buf) | |||
203 | else | 194 | else |
204 | status = STATE_OK; | 195 | status = STATE_OK; |
205 | /* loss=%.0f%%;%d;%d;0;100 */ | 196 | /* loss=%.0f%%;%d;%d;0;100 */ |
206 | die (status, _("FPING %s - %s (loss=%.0f%% )|%s\n"), | 197 | np_die(status, _("%s (loss=%.0f%% )|%s"), |
207 | state_text (status), server_name, loss , | 198 | server_name, loss, |
208 | perfdata ("loss", (long int)loss, "%", wpl_p, wpl, cpl_p, cpl, TRUE, 0, TRUE, 100)); | 199 | perfdata ("loss", (long int)loss, "%", wpl_p, wpl, cpl_p, cpl, TRUE, 0, TRUE, 100)); |
209 | 200 | ||
210 | } | 201 | } |
@@ -266,7 +257,7 @@ process_arguments (int argc, char **argv) | |||
266 | print_revision (progname, revision); | 257 | print_revision (progname, revision); |
267 | exit (STATE_OK); | 258 | exit (STATE_OK); |
268 | case 'v': /* verbose mode */ | 259 | case 'v': /* verbose mode */ |
269 | verbose = TRUE; | 260 | np_increase_verbosity(1); |
270 | break; | 261 | break; |
271 | case 'H': /* hostname */ | 262 | case 'H': /* hostname */ |
272 | if (is_host (optarg) == FALSE) { | 263 | if (is_host (optarg) == FALSE) { |
@@ -335,13 +326,11 @@ get_threshold (char *arg, char *rv[2]) | |||
335 | if (arg2) { | 326 | if (arg2) { |
336 | arg1[strcspn (arg1, ",:")] = 0; | 327 | arg1[strcspn (arg1, ",:")] = 0; |
337 | if (strstr (arg1, "%") && strstr (arg2, "%")) | 328 | if (strstr (arg1, "%") && strstr (arg2, "%")) |
338 | die (STATE_UNKNOWN, | 329 | np_die(STATE_UNKNOWN, |
339 | _("%s: Only one threshold may be packet loss (%s)\n"), progname, | 330 | _("Only one threshold may be packet loss (%s)\n"), arg); |
340 | arg); | ||
341 | if (!strstr (arg1, "%") && !strstr (arg2, "%")) | 331 | if (!strstr (arg1, "%") && !strstr (arg2, "%")) |
342 | die (STATE_UNKNOWN, | 332 | np_die(STATE_UNKNOWN, |
343 | _("%s: Only one threshold must be packet loss (%s)\n"), | 333 | _("Only one threshold must be packet loss (%s)\n"), arg); |
344 | progname, arg); | ||
345 | } | 334 | } |
346 | 335 | ||
347 | if (arg2 && strstr (arg2, "%")) { | 336 | if (arg2 && strstr (arg2, "%")) { |
diff --git a/plugins/check_game.c b/plugins/check_game.c index 79abec33..f53e7a38 100644 --- a/plugins/check_game.c +++ b/plugins/check_game.c | |||
@@ -58,8 +58,6 @@ char *server_ip; | |||
58 | char *game_type; | 58 | char *game_type; |
59 | int port = 0; | 59 | int port = 0; |
60 | 60 | ||
61 | int verbose; | ||
62 | |||
63 | int qstat_game_players_max = -1; | 61 | int qstat_game_players_max = -1; |
64 | int qstat_game_players = -1; | 62 | int qstat_game_players = -1; |
65 | int qstat_game_field = -1; | 63 | int qstat_game_field = -1; |
@@ -76,6 +74,7 @@ main (int argc, char **argv) | |||
76 | size_t i = 0; | 74 | size_t i = 0; |
77 | output chld_out; | 75 | output chld_out; |
78 | 76 | ||
77 | np_set_mymanes(argv[0], "GAME"); | ||
79 | setlocale (LC_ALL, ""); | 78 | setlocale (LC_ALL, ""); |
80 | bindtextdomain (PACKAGE, LOCALEDIR); | 79 | bindtextdomain (PACKAGE, LOCALEDIR); |
81 | textdomain (PACKAGE); | 80 | textdomain (PACKAGE); |
@@ -92,8 +91,7 @@ main (int argc, char **argv) | |||
92 | if (port) | 91 | if (port) |
93 | asprintf (&command_line, "%s:%-d", command_line, port); | 92 | asprintf (&command_line, "%s:%-d", command_line, port); |
94 | 93 | ||
95 | if (verbose > 0) | 94 | np_verbatim(command_line); |
96 | printf ("%s\n", command_line); | ||
97 | 95 | ||
98 | /* run the command. historically, this plugin ignores output on stderr, | 96 | /* run the command. historically, this plugin ignores output on stderr, |
99 | * as well as return status of the qstat program */ | 97 | * as well as return status of the qstat program */ |
@@ -109,11 +107,8 @@ main (int argc, char **argv) | |||
109 | In the end, I figured I'd simply let an error occur & then trap it | 107 | In the end, I figured I'd simply let an error occur & then trap it |
110 | */ | 108 | */ |
111 | 109 | ||
112 | if (!strncmp (chld_out.line[0], "unknown option", 14)) { | 110 | if (!strncmp (chld_out.line[0], "unknown option", 14)) |
113 | printf (_("CRITICAL - Host type parameter incorrect!\n")); | 111 | np_die(STATE_CRITICAL, _("CRITICAL - Host type parameter incorrect!")); |
114 | result = STATE_CRITICAL; | ||
115 | return result; | ||
116 | } | ||
117 | 112 | ||
118 | p = (char *) strtok (chld_out.line[0], QSTAT_DATA_DELIMITER); | 113 | p = (char *) strtok (chld_out.line[0], QSTAT_DATA_DELIMITER); |
119 | while (p != NULL) { | 114 | while (p != NULL) { |
@@ -124,20 +119,14 @@ main (int argc, char **argv) | |||
124 | break; | 119 | break; |
125 | } | 120 | } |
126 | 121 | ||
127 | if (strstr (ret[2], QSTAT_HOST_ERROR)) { | 122 | if (strstr (ret[2], QSTAT_HOST_ERROR)) |
128 | printf (_("CRITICAL - Host not found\n")); | 123 | np_die(STATE_CRITICAL, _("CRITICAL - Host not found")); |
129 | result = STATE_CRITICAL; | 124 | else if (strstr (ret[2], QSTAT_HOST_DOWN)) |
130 | } | 125 | np_die(STATE_CRITICAL, _("CRITICAL - Game server down or unavailable")); |
131 | else if (strstr (ret[2], QSTAT_HOST_DOWN)) { | 126 | else if (strstr (ret[2], QSTAT_HOST_TIMEOUT)) |
132 | printf (_("CRITICAL - Game server down or unavailable\n")); | 127 | np_die(STATE_CRITICAL, _("CRITICAL - Game server timeout\n")); |
133 | result = STATE_CRITICAL; | 128 | else |
134 | } | 129 | np_die(STATE_OK, "%s/%s %s (%s), Ping: %s ms|%s %s\n", |
135 | else if (strstr (ret[2], QSTAT_HOST_TIMEOUT)) { | ||
136 | printf (_("CRITICAL - Game server timeout\n")); | ||
137 | result = STATE_CRITICAL; | ||
138 | } | ||
139 | else { | ||
140 | printf ("OK: %s/%s %s (%s), Ping: %s ms|%s %s\n", | ||
141 | ret[qstat_game_players], | 130 | ret[qstat_game_players], |
142 | ret[qstat_game_players_max], | 131 | ret[qstat_game_players_max], |
143 | ret[qstat_game_field], | 132 | ret[qstat_game_field], |
@@ -149,9 +138,6 @@ main (int argc, char **argv) | |||
149 | fperfdata ("ping", strtod(ret[qstat_ping_field], NULL), "", | 138 | fperfdata ("ping", strtod(ret[qstat_ping_field], NULL), "", |
150 | FALSE, 0, FALSE, 0, | 139 | FALSE, 0, FALSE, 0, |
151 | TRUE, 0, FALSE, 0)); | 140 | TRUE, 0, FALSE, 0)); |
152 | } | ||
153 | |||
154 | return result; | ||
155 | } | 141 | } |
156 | 142 | ||
157 | 143 | ||
@@ -203,14 +189,14 @@ process_arguments (int argc, char **argv) | |||
203 | print_revision (progname, revision); | 189 | print_revision (progname, revision); |
204 | exit (STATE_OK); | 190 | exit (STATE_OK); |
205 | case 'v': /* version */ | 191 | case 'v': /* version */ |
206 | verbose = TRUE; | 192 | np_increase_verbosity(1); |
207 | break; | 193 | break; |
208 | case 't': /* timeout period */ | 194 | case 't': /* timeout period */ |
209 | timeout_interval = atoi (optarg); | 195 | timeout_interval = atoi (optarg); |
210 | break; | 196 | break; |
211 | case 'H': /* hostname */ | 197 | case 'H': /* hostname */ |
212 | if (strlen (optarg) >= MAX_HOST_ADDRESS_LENGTH) | 198 | if (strlen (optarg) >= MAX_HOST_ADDRESS_LENGTH) |
213 | die (STATE_UNKNOWN, _("Input buffer overflow\n")); | 199 | np_die(STATE_UNKNOWN, _("Input buffer overflow")); |
214 | server_ip = optarg; | 200 | server_ip = optarg; |
215 | break; | 201 | break; |
216 | case 'P': /* port */ | 202 | case 'P': /* port */ |
@@ -218,7 +204,7 @@ process_arguments (int argc, char **argv) | |||
218 | break; | 204 | break; |
219 | case 'G': /* hostname */ | 205 | case 'G': /* hostname */ |
220 | if (strlen (optarg) >= MAX_INPUT_BUFFER) | 206 | if (strlen (optarg) >= MAX_INPUT_BUFFER) |
221 | die (STATE_UNKNOWN, _("Input buffer overflow\n")); | 207 | np_die(STATE_UNKNOWN, _("Input buffer overflow")); |
222 | game_type = optarg; | 208 | game_type = optarg; |
223 | break; | 209 | break; |
224 | case 'p': /* index of ping field */ | 210 | case 'p': /* index of ping field */ |
diff --git a/plugins/check_hpjd.c b/plugins/check_hpjd.c index 8a60ce8c..f37b2ba4 100644 --- a/plugins/check_hpjd.c +++ b/plugins/check_hpjd.c | |||
@@ -98,6 +98,7 @@ main (int argc, char **argv) | |||
98 | 98 | ||
99 | errmsg = malloc(MAX_INPUT_BUFFER); | 99 | errmsg = malloc(MAX_INPUT_BUFFER); |
100 | 100 | ||
101 | np_set_mynames(argv[0], "HPJD"); | ||
101 | setlocale (LC_ALL, ""); | 102 | setlocale (LC_ALL, ""); |
102 | bindtextdomain (PACKAGE, LOCALEDIR); | 103 | bindtextdomain (PACKAGE, LOCALEDIR); |
103 | textdomain (PACKAGE); | 104 | textdomain (PACKAGE); |
@@ -127,15 +128,12 @@ main (int argc, char **argv) | |||
127 | 128 | ||
128 | /* run the command */ | 129 | /* run the command */ |
129 | child_process = spopen (command_line); | 130 | child_process = spopen (command_line); |
130 | if (child_process == NULL) { | 131 | if (child_process == NULL) |
131 | printf (_("Could not open pipe: %s\n"), command_line); | 132 | np_die(STATE_UNKNOWN, _("Could not open pipe: %s"), command_line); |
132 | return STATE_UNKNOWN; | ||
133 | } | ||
134 | 133 | ||
135 | child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r"); | 134 | child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r"); |
136 | if (child_stderr == NULL) { | 135 | if (child_stderr == NULL) |
137 | printf (_("Could not open stderr for %s\n"), command_line); | 136 | printf (_("Could not open stderr for %s\n"), command_line); |
138 | } | ||
139 | 137 | ||
140 | result = STATE_OK; | 138 | result = STATE_OK; |
141 | 139 | ||
@@ -286,21 +284,13 @@ main (int argc, char **argv) | |||
286 | } | 284 | } |
287 | 285 | ||
288 | if (result == STATE_OK) | 286 | if (result == STATE_OK) |
289 | printf (_("Printer ok - (%s)\n"), display_message); | 287 | np_die(STATE_OK, _("Printer ok - (%s)"), display_message); |
290 | |||
291 | else if (result == STATE_UNKNOWN) { | ||
292 | |||
293 | printf ("%s\n", errmsg); | ||
294 | |||
295 | /* if printer could not be reached, escalate to critical */ | ||
296 | if (strstr (errmsg, "Timeout")) | ||
297 | result = STATE_CRITICAL; | ||
298 | } | ||
299 | |||
300 | else if (result == STATE_WARNING) | 288 | else if (result == STATE_WARNING) |
301 | printf ("%s (%s)\n", errmsg, display_message); | 289 | np_die(STATE_WARNING, "%s (%s)\n", errmsg, display_message); |
302 | 290 | ||
303 | return result; | 291 | /* if printer could not be reached, escalate to critical */ |
292 | np_die(strstr(errmsg, "Timeout") ? STATE_CRITICAL : STATE_UNKNOWN, | ||
293 | "%s", errmsg); | ||
304 | } | 294 | } |
305 | 295 | ||
306 | 296 | ||
diff --git a/plugins/check_http.c b/plugins/check_http.c index b371cd64..3b93795d 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c | |||
@@ -113,7 +113,6 @@ char **http_opt_headers; | |||
113 | int http_opt_headers_count = 0; | 113 | int http_opt_headers_count = 0; |
114 | int onredirect = STATE_OK; | 114 | int onredirect = STATE_OK; |
115 | int use_ssl = FALSE; | 115 | int use_ssl = FALSE; |
116 | int verbose = FALSE; | ||
117 | int sd; | 116 | int sd; |
118 | int min_page_len = 0; | 117 | int min_page_len = 0; |
119 | int max_page_len = 0; | 118 | int max_page_len = 0; |
@@ -140,6 +139,8 @@ main (int argc, char **argv) | |||
140 | { | 139 | { |
141 | int result = STATE_UNKNOWN; | 140 | int result = STATE_UNKNOWN; |
142 | 141 | ||
142 | np_set_mynames(argv[0], "HTTP"); | ||
143 | |||
143 | /* Set default URL. Must be malloced for subsequent realloc if --onredirect=follow */ | 144 | /* Set default URL. Must be malloced for subsequent realloc if --onredirect=follow */ |
144 | server_url = strdup(HTTP_URL); | 145 | server_url = strdup(HTTP_URL); |
145 | server_url_length = strlen(server_url); | 146 | server_url_length = strlen(server_url); |
@@ -307,8 +308,7 @@ process_arguments (int argc, char **argv) | |||
307 | onredirect = STATE_WARNING; | 308 | onredirect = STATE_WARNING; |
308 | if (!strcmp (optarg, "critical")) | 309 | if (!strcmp (optarg, "critical")) |
309 | onredirect = STATE_CRITICAL; | 310 | onredirect = STATE_CRITICAL; |
310 | if (verbose) | 311 | np_verbose (_("option f:%d"), onredirect); |
311 | printf(_("option f:%d \n"), onredirect); | ||
312 | break; | 312 | break; |
313 | /* Note: H, I, and u must be malloc'd or will fail on redirects */ | 313 | /* Note: H, I, and u must be malloc'd or will fail on redirects */ |
314 | case 'H': /* Host Name (virtual host) */ | 314 | case 'H': /* Host Name (virtual host) */ |
@@ -381,7 +381,7 @@ process_arguments (int argc, char **argv) | |||
381 | #endif | 381 | #endif |
382 | break; | 382 | break; |
383 | case 'v': /* verbose */ | 383 | case 'v': /* verbose */ |
384 | verbose = TRUE; | 384 | np_increase_verbosity(1); |
385 | break; | 385 | break; |
386 | case 'm': /* min_page_length */ | 386 | case 'm': /* min_page_length */ |
387 | { | 387 | { |
@@ -389,17 +389,15 @@ process_arguments (int argc, char **argv) | |||
389 | if (strchr(optarg, ':') != (char *)NULL) { | 389 | if (strchr(optarg, ':') != (char *)NULL) { |
390 | /* range, so get two values, min:max */ | 390 | /* range, so get two values, min:max */ |
391 | tmp = strtok(optarg, ":"); | 391 | tmp = strtok(optarg, ":"); |
392 | if (tmp == NULL) { | 392 | if (tmp == NULL) |
393 | printf("Bad format: try \"-m min:max\"\n"); | 393 | np_die (STATE_UNKNOWN, "Bad format: try \"-m min:max\""); |
394 | exit (STATE_WARNING); | 394 | else |
395 | } else | ||
396 | min_page_len = atoi(tmp); | 395 | min_page_len = atoi(tmp); |
397 | 396 | ||
398 | tmp = strtok(NULL, ":"); | 397 | tmp = strtok(NULL, ":"); |
399 | if (tmp == NULL) { | 398 | if (tmp == NULL) |
400 | printf("Bad format: try \"-m min:max\"\n"); | 399 | np_die (STATE_UNKNOWN, "Bad format: try \"-m min:max\""); |
401 | exit (STATE_WARNING); | 400 | else |
402 | } else | ||
403 | max_page_len = atoi(tmp); | 401 | max_page_len = atoi(tmp); |
404 | } else | 402 | } else |
405 | min_page_len = atoi (optarg); | 403 | min_page_len = atoi (optarg); |
@@ -420,10 +418,8 @@ process_arguments (int argc, char **argv) | |||
420 | else if (L && (optarg[L-1] == 's' || | 418 | else if (L && (optarg[L-1] == 's' || |
421 | isdigit (optarg[L-1]))) | 419 | isdigit (optarg[L-1]))) |
422 | maximum_age = atoi (optarg); | 420 | maximum_age = atoi (optarg); |
423 | else { | 421 | else |
424 | fprintf (stderr, "unparsable max-age: %s\n", optarg); | 422 | np_die (STATE_UNKNOWN, _("Unparsable max-age: %s"), optarg); |
425 | exit (STATE_WARNING); | ||
426 | } | ||
427 | } | 423 | } |
428 | break; | 424 | break; |
429 | } | 425 | } |
@@ -593,7 +589,7 @@ parse_time_string (const char *string) | |||
593 | t = mktime (&tm); | 589 | t = mktime (&tm); |
594 | if (t == (time_t) -1) t = 0; | 590 | if (t == (time_t) -1) t = 0; |
595 | 591 | ||
596 | if (verbose) { | 592 | if (np_get_verbosity() > 0) { |
597 | const char *s = string; | 593 | const char *s = string; |
598 | while (*s && *s != '\r' && *s != '\n') | 594 | while (*s && *s != '\r' && *s != '\n') |
599 | fputc (*s++, stdout); | 595 | fputc (*s++, stdout); |
@@ -665,28 +661,27 @@ check_document_dates (const char *headers) | |||
665 | 661 | ||
666 | /* Done parsing the body. Now check the dates we (hopefully) parsed. */ | 662 | /* Done parsing the body. Now check the dates we (hopefully) parsed. */ |
667 | if (!server_date || !*server_date) { | 663 | if (!server_date || !*server_date) { |
668 | die (STATE_UNKNOWN, _("HTTP UNKNOWN - Server date unknown\n")); | 664 | np_die (STATE_UNKNOWN, _("Server date unknown")); |
669 | } else if (!document_date || !*document_date) { | 665 | } else if (!document_date || !*document_date) { |
670 | die (STATE_CRITICAL, _("HTTP CRITICAL - Document modification date unknown\n")); | 666 | np_die (STATE_CRITICAL, _("Document modification date unknown")); |
671 | } else { | 667 | } else { |
672 | time_t srv_data = parse_time_string (server_date); | 668 | time_t srv_data = parse_time_string (server_date); |
673 | time_t doc_data = parse_time_string (document_date); | 669 | time_t doc_data = parse_time_string (document_date); |
674 | 670 | ||
675 | if (srv_data <= 0) { | 671 | if (srv_data <= 0) { |
676 | die (STATE_CRITICAL, _("HTTP CRITICAL - Server date \"%100s\" unparsable"), server_date); | 672 | np_die (STATE_CRITICAL, _("Server date \"%100s\" unparsable"), server_date); |
677 | } else if (doc_data <= 0) { | 673 | } else if (doc_data <= 0) { |
678 | die (STATE_CRITICAL, _("HTTP CRITICAL - Document date \"%100s\" unparsable"), document_date); | 674 | np_die (STATE_CRITICAL, _("Document date \"%100s\" unparsable"), document_date); |
679 | } else if (doc_data > srv_data + 30) { | 675 | } else if (doc_data > srv_data + 30) { |
680 | die (STATE_CRITICAL, _("HTTP CRITICAL - Document is %d seconds in the future\n"), (int)doc_data - (int)srv_data); | 676 | np_die (STATE_CRITICAL, _("Document is %d seconds in the future"), |
677 | (int)doc_data - (int)srv_data); | ||
681 | } else if (doc_data < srv_data - maximum_age) { | 678 | } else if (doc_data < srv_data - maximum_age) { |
682 | int n = (srv_data - doc_data); | 679 | int n = (srv_data - doc_data); |
683 | if (n > (60 * 60 * 24 * 2)) | 680 | if (n > (60 * 60 * 24 * 2)) |
684 | die (STATE_CRITICAL, | 681 | np_die (STATE_CRITICAL, _("Last modified %.1f days ago"), |
685 | _("HTTP CRITICAL - Last modified %.1f days ago\n"), | ||
686 | ((float) n) / (60 * 60 * 24)); | 682 | ((float) n) / (60 * 60 * 24)); |
687 | else | 683 | else |
688 | die (STATE_CRITICAL, | 684 | np_die (STATE_CRITICAL, _("Last modified %d:%02d:%02d ago"), |
689 | _("HTTP CRITICAL - Last modified %d:%02d:%02d ago\n"), | ||
690 | n / (60 * 60), (n / 60) % 60, n % 60); | 685 | n / (60 * 60), (n / 60) % 60, n % 60); |
691 | } | 686 | } |
692 | 687 | ||
@@ -767,7 +762,7 @@ check_http (void) | |||
767 | 762 | ||
768 | /* try to connect to the host at the given port number */ | 763 | /* try to connect to the host at the given port number */ |
769 | if (my_tcp_connect (server_address, server_port, &sd) != STATE_OK) | 764 | if (my_tcp_connect (server_address, server_port, &sd) != STATE_OK) |
770 | die (STATE_CRITICAL, _("HTTP CRITICAL - Unable to open TCP socket\n")); | 765 | np_die (STATE_CRITICAL, _("Unable to open TCP socket")); |
771 | #ifdef HAVE_SSL | 766 | #ifdef HAVE_SSL |
772 | if (use_ssl == TRUE) { | 767 | if (use_ssl == TRUE) { |
773 | np_net_ssl_init(sd); | 768 | np_net_ssl_init(sd); |
@@ -820,7 +815,7 @@ check_http (void) | |||
820 | asprintf (&buf, "%s%s", buf, CRLF); | 815 | asprintf (&buf, "%s%s", buf, CRLF); |
821 | } | 816 | } |
822 | 817 | ||
823 | if (verbose) printf ("%s\n", buf); | 818 | np_verbatim (buf); |
824 | my_send (buf, strlen (buf)); | 819 | my_send (buf, strlen (buf)); |
825 | 820 | ||
826 | /* fetch the page */ | 821 | /* fetch the page */ |
@@ -842,15 +837,15 @@ check_http (void) | |||
842 | if (use_ssl) { | 837 | if (use_ssl) { |
843 | sslerr=SSL_get_error(ssl, i); | 838 | sslerr=SSL_get_error(ssl, i); |
844 | if ( sslerr == SSL_ERROR_SSL ) { | 839 | if ( sslerr == SSL_ERROR_SSL ) { |
845 | die (STATE_WARNING, _("HTTP WARNING - Client Certificate Required\n")); | 840 | np_die (STATE_WARNING, _("Client Certificate Required")); |
846 | } else { | 841 | } else { |
847 | die (STATE_CRITICAL, _("HTTP CRITICAL - Error on receive\n")); | 842 | np_die (STATE_CRITICAL, _("Error on receive")); |
848 | } | 843 | } |
849 | } | 844 | } |
850 | else { | 845 | else { |
851 | */ | 846 | */ |
852 | #endif | 847 | #endif |
853 | die (STATE_CRITICAL, _("HTTP CRITICAL - Error on receive\n")); | 848 | np_die (STATE_CRITICAL, _("HTTP CRITICAL - Error on receive")); |
854 | #ifdef HAVE_SSL | 849 | #ifdef HAVE_SSL |
855 | /* XXX | 850 | /* XXX |
856 | } | 851 | } |
@@ -860,7 +855,7 @@ check_http (void) | |||
860 | 855 | ||
861 | /* return a CRITICAL status if we couldn't read any data */ | 856 | /* return a CRITICAL status if we couldn't read any data */ |
862 | if (pagesize == (size_t) 0) | 857 | if (pagesize == (size_t) 0) |
863 | die (STATE_CRITICAL, _("HTTP CRITICAL - No data received from host\n")); | 858 | np_die (STATE_CRITICAL, _("HTTP CRITICAL - No data received from host")); |
864 | 859 | ||
865 | /* close the connection */ | 860 | /* close the connection */ |
866 | #ifdef HAVE_SSL | 861 | #ifdef HAVE_SSL |
@@ -874,8 +869,7 @@ check_http (void) | |||
874 | /* leave full_page untouched so we can free it later */ | 869 | /* leave full_page untouched so we can free it later */ |
875 | page = full_page; | 870 | page = full_page; |
876 | 871 | ||
877 | if (verbose) | 872 | np_verbose ("%s://%s:%d%s is %d characters", |
878 | printf ("%s://%s:%d%s is %d characters\n", | ||
879 | use_ssl ? "https" : "http", server_address, | 873 | use_ssl ? "https" : "http", server_address, |
880 | server_port, server_url, (int)pagesize); | 874 | server_port, server_url, (int)pagesize); |
881 | 875 | ||
@@ -886,8 +880,7 @@ check_http (void) | |||
886 | page += (size_t) strspn (page, "\r\n"); | 880 | page += (size_t) strspn (page, "\r\n"); |
887 | status_line[strcspn(status_line, "\r\n")] = 0; | 881 | status_line[strcspn(status_line, "\r\n")] = 0; |
888 | strip (status_line); | 882 | strip (status_line); |
889 | if (verbose) | 883 | np_verbose ("STATUS: %s", status_line); |
890 | printf ("STATUS: %s\n", status_line); | ||
891 | 884 | ||
892 | /* find header info and null-terminate it */ | 885 | /* find header info and null-terminate it */ |
893 | header = page; | 886 | header = page; |
@@ -902,29 +895,27 @@ check_http (void) | |||
902 | } | 895 | } |
903 | page += (size_t) strspn (page, "\r\n"); | 896 | page += (size_t) strspn (page, "\r\n"); |
904 | header[pos - header] = 0; | 897 | header[pos - header] = 0; |
905 | if (verbose) | 898 | np_verbose ("**** HEADER ****\n%s\n**** CONTENT ****\n%s", header, |
906 | printf ("**** HEADER ****\n%s\n**** CONTENT ****\n%s\n", header, | ||
907 | (no_body ? " [[ skipped ]]" : page)); | 899 | (no_body ? " [[ skipped ]]" : page)); |
908 | 900 | ||
909 | /* make sure the status line matches the response we are looking for */ | 901 | /* make sure the status line matches the response we are looking for */ |
910 | if (!strstr (status_line, server_expect)) { | 902 | if (!strstr (status_line, server_expect)) { |
911 | if (server_port == HTTP_PORT) | 903 | if (server_port == HTTP_PORT) |
912 | asprintf (&msg, | 904 | asprintf (&msg, |
913 | _("Invalid HTTP response received from host\n")); | 905 | _("Invalid HTTP response received from host")); |
914 | else | 906 | else |
915 | asprintf (&msg, | 907 | asprintf (&msg, |
916 | _("Invalid HTTP response received from host on port %d\n"), | 908 | _("Invalid HTTP response received from host on port %d"), |
917 | server_port); | 909 | server_port); |
918 | die (STATE_CRITICAL, "HTTP CRITICAL - %s", msg); | 910 | np_die (STATE_CRITICAL, "%s", msg); |
919 | } | 911 | } |
920 | 912 | ||
921 | /* Exit here if server_expect was set by user and not default */ | 913 | /* Exit here if server_expect was set by user and not default */ |
922 | if ( server_expect_yn ) { | 914 | if ( server_expect_yn ) { |
923 | asprintf (&msg, | 915 | asprintf (&msg, |
924 | _("HTTP OK: Status line output matched \"%s\"\n"), | 916 | _("Status line output matched \"%s\""), |
925 | server_expect); | 917 | server_expect); |
926 | if (verbose) | 918 | np_verbatim (msg); |
927 | printf ("%s\n",msg); | ||
928 | } | 919 | } |
929 | else { | 920 | else { |
930 | /* Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF */ | 921 | /* Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF */ |
@@ -933,40 +924,32 @@ check_http (void) | |||
933 | 924 | ||
934 | status_code = strchr (status_line, ' ') + sizeof (char); | 925 | status_code = strchr (status_line, ' ') + sizeof (char); |
935 | if (strspn (status_code, "1234567890") != 3) | 926 | if (strspn (status_code, "1234567890") != 3) |
936 | die (STATE_CRITICAL, _("HTTP CRITICAL: Invalid Status Line (%s)\n"), status_line); | 927 | np_die (STATE_CRITICAL, _("Invalid Status Line (%s)"), status_line); |
937 | 928 | ||
938 | http_status = atoi (status_code); | 929 | http_status = atoi (status_code); |
939 | 930 | ||
940 | /* check the return code */ | 931 | /* check the return code */ |
941 | 932 | ||
942 | if (http_status >= 600 || http_status < 100) | 933 | if (http_status >= 600 || http_status < 100) |
943 | die (STATE_CRITICAL, _("HTTP CRITICAL: Invalid Status (%s)\n"), status_line); | 934 | np_die (STATE_CRITICAL, _("Invalid Status (%s)"), status_line); |
944 | 935 | ||
945 | /* server errors result in a critical state */ | 936 | /* server errors result in a critical state */ |
946 | else if (http_status >= 500) | 937 | else if (http_status >= 500) |
947 | die (STATE_CRITICAL, _("HTTP CRITICAL: %s\n"), status_line); | 938 | np_die (STATE_CRITICAL, _("%s"), status_line); |
948 | 939 | ||
949 | /* client errors result in a warning state */ | 940 | /* client errors result in a warning state */ |
950 | else if (http_status >= 400) | 941 | else if (http_status >= 400) |
951 | die (STATE_WARNING, _("HTTP WARNING: %s\n"), status_line); | 942 | np_die (STATE_WARNING, _("%s"), status_line); |
952 | 943 | ||
953 | /* check redirected page if specified */ | 944 | /* check redirected page if specified */ |
954 | else if (http_status >= 300) { | 945 | else if (http_status >= 300) { |
955 | 946 | ||
956 | if (onredirect == STATE_DEPENDENT) | 947 | if (onredirect == STATE_DEPENDENT) |
957 | redir (header, status_line); | 948 | redir (header, status_line); |
958 | else if (onredirect == STATE_UNKNOWN) | ||
959 | printf (_("HTTP UNKNOWN")); | ||
960 | else if (onredirect == STATE_OK) | ||
961 | printf (_("HTTP OK")); | ||
962 | else if (onredirect == STATE_WARNING) | ||
963 | printf (_("HTTP WARNING")); | ||
964 | else if (onredirect == STATE_CRITICAL) | ||
965 | printf (_("HTTP CRITICAL")); | ||
966 | microsec = deltime (tv); | 949 | microsec = deltime (tv); |
967 | elapsed_time = (double)microsec / 1.0e6; | 950 | elapsed_time = (double)microsec / 1.0e6; |
968 | die (onredirect, | 951 | np_die (onredirect, |
969 | _(" - %s - %.3f second response time %s|%s %s\n"), | 952 | _("%s - %.3f second response time %s|%s %s"), |
970 | status_line, elapsed_time, | 953 | status_line, elapsed_time, |
971 | (display_html ? "</A>" : ""), | 954 | (display_html ? "</A>" : ""), |
972 | perfd_time (elapsed_time), perfd_size (pagesize)); | 955 | perfd_time (elapsed_time), perfd_size (pagesize)); |
@@ -982,59 +965,50 @@ check_http (void) | |||
982 | microsec = deltime (tv); | 965 | microsec = deltime (tv); |
983 | elapsed_time = (double)microsec / 1.0e6; | 966 | elapsed_time = (double)microsec / 1.0e6; |
984 | asprintf (&msg, | 967 | asprintf (&msg, |
985 | _("HTTP WARNING: %s - %.3f second response time %s|%s %s\n"), | 968 | _("%s - %.3f second response time %s|%s %s"), |
986 | status_line, elapsed_time, | 969 | status_line, elapsed_time, |
987 | (display_html ? "</A>" : ""), | 970 | (display_html ? "</A>" : ""), |
988 | perfd_time (elapsed_time), perfd_size (pagesize)); | 971 | perfd_time (elapsed_time), perfd_size (pagesize)); |
989 | if (check_critical_time == TRUE && elapsed_time > critical_time) | 972 | if (check_critical_time == TRUE && elapsed_time > critical_time) |
990 | die (STATE_CRITICAL, "%s", msg); | 973 | np_die (STATE_CRITICAL, "%s", msg); |
991 | if (check_warning_time == TRUE && elapsed_time > warning_time) | 974 | if (check_warning_time == TRUE && elapsed_time > warning_time) |
992 | die (STATE_WARNING, "%s", msg); | 975 | np_die (STATE_WARNING, "%s", msg); |
993 | 976 | ||
994 | /* Page and Header content checks go here */ | 977 | /* Page and Header content checks go here */ |
995 | /* these checks should be last */ | 978 | /* these checks should be last */ |
996 | 979 | ||
997 | if (strlen (string_expect)) { | 980 | if (strlen (string_expect)) { |
998 | if (strstr (page, string_expect)) { | 981 | if (strstr (page, string_expect)) |
999 | printf (_("HTTP OK %s - %.3f second response time %s|%s %s\n"), | 982 | np_die (STATE_OK, _("%s - %.3f second response time %s|%s %s"), |
1000 | status_line, elapsed_time, | 983 | status_line, elapsed_time, |
1001 | (display_html ? "</A>" : ""), | 984 | (display_html ? "</A>" : ""), |
1002 | perfd_time (elapsed_time), perfd_size (pagesize)); | 985 | perfd_time (elapsed_time), perfd_size (pagesize)); |
1003 | exit (STATE_OK); | 986 | else |
1004 | } | 987 | np_die (STATE_CRITICAL, _("string not found%s|%s %s"), |
1005 | else { | ||
1006 | printf (_("HTTP CRITICAL - string not found%s|%s %s\n"), | ||
1007 | (display_html ? "</A>" : ""), | 988 | (display_html ? "</A>" : ""), |
1008 | perfd_time (elapsed_time), perfd_size (pagesize)); | 989 | perfd_time (elapsed_time), perfd_size (pagesize)); |
1009 | exit (STATE_CRITICAL); | ||
1010 | } | ||
1011 | } | 990 | } |
1012 | 991 | ||
1013 | if (strlen (regexp)) { | 992 | if (strlen (regexp)) { |
1014 | errcode = regexec (&preg, page, REGS, pmatch, 0); | 993 | errcode = regexec (&preg, page, REGS, pmatch, 0); |
1015 | if ((errcode == 0 && invert_regex == 0) || (errcode == REG_NOMATCH && invert_regex == 1)) { | 994 | if ((errcode == 0 && invert_regex == 0) || (errcode == REG_NOMATCH && invert_regex == 1)) |
1016 | printf (_("HTTP OK %s - %.3f second response time %s|%s %s\n"), | 995 | np_die (STATE_OK, _("%s - %.3f second response time %s|%s %s"), |
1017 | status_line, elapsed_time, | 996 | status_line, elapsed_time, |
1018 | (display_html ? "</A>" : ""), | 997 | (display_html ? "</A>" : ""), |
1019 | perfd_time (elapsed_time), perfd_size (pagesize)); | 998 | perfd_time (elapsed_time), perfd_size (pagesize)); |
1020 | exit (STATE_OK); | ||
1021 | } | ||
1022 | else if ((errcode == REG_NOMATCH && invert_regex == 0) || (errcode == 0 && invert_regex == 1)) { | 999 | else if ((errcode == REG_NOMATCH && invert_regex == 0) || (errcode == 0 && invert_regex == 1)) { |
1023 | if (invert_regex == 0) | 1000 | if (invert_regex == 0) |
1024 | msg = strdup(_("pattern not found")); | 1001 | msg = strdup(_("pattern not found")); |
1025 | else | 1002 | else |
1026 | msg = strdup(_("pattern found")); | 1003 | msg = strdup(_("pattern found")); |
1027 | printf (("%s - %s%s|%s %s\n"), | 1004 | np_die (STATE_CRITICAL, "%s%s|%s %s", |
1028 | _("HTTP CRITICAL"), | ||
1029 | msg, | 1005 | msg, |
1030 | (display_html ? "</A>" : ""), | 1006 | (display_html ? "</A>" : ""), |
1031 | perfd_time (elapsed_time), perfd_size (pagesize)); | 1007 | perfd_time (elapsed_time), perfd_size (pagesize)); |
1032 | exit (STATE_CRITICAL); | ||
1033 | } | 1008 | } |
1034 | else { | 1009 | else { |
1035 | regerror (errcode, &preg, errbuf, MAX_INPUT_BUFFER); | 1010 | regerror (errcode, &preg, errbuf, MAX_INPUT_BUFFER); |
1036 | printf (_("HTTP CRITICAL - Execute Error: %s\n"), errbuf); | 1011 | np_die (STATE_CRITICAL, _("Execute Error: %s"), errbuf); |
1037 | exit (STATE_CRITICAL); | ||
1038 | } | 1012 | } |
1039 | } | 1013 | } |
1040 | 1014 | ||
@@ -1042,20 +1016,18 @@ check_http (void) | |||
1042 | /* page_len = get_content_length(header); */ | 1016 | /* page_len = get_content_length(header); */ |
1043 | page_len = pagesize; | 1017 | page_len = pagesize; |
1044 | if ((max_page_len > 0) && (page_len > max_page_len)) { | 1018 | if ((max_page_len > 0) && (page_len > max_page_len)) { |
1045 | printf (_("HTTP WARNING: page size %d too large%s|%s\n"), | 1019 | np_die (STATE_WARNING, _("page size %d too large%s|%s"), |
1046 | page_len, (display_html ? "</A>" : ""), perfd_size (page_len) ); | 1020 | page_len, (display_html ? "</A>" : ""), perfd_size (page_len) ); |
1047 | exit (STATE_WARNING); | ||
1048 | } else if ((min_page_len > 0) && (page_len < min_page_len)) { | 1021 | } else if ((min_page_len > 0) && (page_len < min_page_len)) { |
1049 | printf (_("HTTP WARNING: page size %d too small%s|%s\n"), | 1022 | np_die (STATE_WARNING, _("page size %d too small%s|%s"), |
1050 | page_len, (display_html ? "</A>" : ""), perfd_size (page_len) ); | 1023 | page_len, (display_html ? "</A>" : ""), perfd_size (page_len) ); |
1051 | exit (STATE_WARNING); | ||
1052 | } | 1024 | } |
1053 | /* We only get here if all tests have been passed */ | 1025 | /* We only get here if all tests have been passed */ |
1054 | asprintf (&msg, _("HTTP OK %s - %d bytes in %.3f seconds %s|%s %s\n"), | 1026 | asprintf (&msg, _("%s - %d bytes in %.3f seconds %s|%s %s"), |
1055 | status_line, page_len, elapsed_time, | 1027 | status_line, page_len, elapsed_time, |
1056 | (display_html ? "</A>" : ""), | 1028 | (display_html ? "</A>" : ""), |
1057 | perfd_time (elapsed_time), perfd_size (page_len)); | 1029 | perfd_time (elapsed_time), perfd_size (page_len)); |
1058 | die (STATE_OK, "%s", msg); | 1030 | np_die (STATE_OK, "%s", msg); |
1059 | return STATE_UNKNOWN; | 1031 | return STATE_UNKNOWN; |
1060 | } | 1032 | } |
1061 | 1033 | ||
@@ -1085,11 +1057,11 @@ redir (char *pos, char *status_line) | |||
1085 | 1057 | ||
1086 | addr = malloc (MAX_IPV4_HOSTLENGTH + 1); | 1058 | addr = malloc (MAX_IPV4_HOSTLENGTH + 1); |
1087 | if (addr == NULL) | 1059 | if (addr == NULL) |
1088 | die (STATE_UNKNOWN, _("HTTP UNKNOWN - Could not allocate addr\n")); | 1060 | np_die (STATE_UNKNOWN, _("Could not allocate addr")); |
1089 | 1061 | ||
1090 | url = malloc (strcspn (pos, "\r\n")); | 1062 | url = malloc (strcspn (pos, "\r\n")); |
1091 | if (url == NULL) | 1063 | if (url == NULL) |
1092 | die (STATE_UNKNOWN, _("HTTP UNKNOWN - Could not allocate url\n")); | 1064 | np_die (STATE_UNKNOWN, _("Could not allocate url")); |
1093 | 1065 | ||
1094 | while (pos) { | 1066 | while (pos) { |
1095 | sscanf (pos, "%[Ll]%*[Oo]%*[Cc]%*[Aa]%*[Tt]%*[Ii]%*[Oo]%*[Nn]:%n", xx, &i); | 1067 | sscanf (pos, "%[Ll]%*[Oo]%*[Cc]%*[Aa]%*[Tt]%*[Ii]%*[Oo]%*[Nn]:%n", xx, &i); |
@@ -1097,8 +1069,8 @@ redir (char *pos, char *status_line) | |||
1097 | pos += (size_t) strcspn (pos, "\r\n"); | 1069 | pos += (size_t) strcspn (pos, "\r\n"); |
1098 | pos += (size_t) strspn (pos, "\r\n"); | 1070 | pos += (size_t) strspn (pos, "\r\n"); |
1099 | if (strlen(pos) == 0) | 1071 | if (strlen(pos) == 0) |
1100 | die (STATE_UNKNOWN, | 1072 | np_die (STATE_UNKNOWN, |
1101 | _("HTTP UNKNOWN - Could not find redirect location - %s%s\n"), | 1073 | _("Could not find redirect location - %s%s"), |
1102 | status_line, (display_html ? "</A>" : "")); | 1074 | status_line, (display_html ? "</A>" : "")); |
1103 | continue; | 1075 | continue; |
1104 | } | 1076 | } |
@@ -1113,14 +1085,14 @@ redir (char *pos, char *status_line) | |||
1113 | for (; (i = strspn (pos, "\r\n")); pos += i) { | 1085 | for (; (i = strspn (pos, "\r\n")); pos += i) { |
1114 | pos += i; | 1086 | pos += i; |
1115 | if (!(i = strspn (pos, " \t"))) { | 1087 | if (!(i = strspn (pos, " \t"))) { |
1116 | die (STATE_UNKNOWN, _("HTTP UNKNOWN - Empty redirect location%s\n"), | 1088 | np_die (STATE_UNKNOWN, _("Empty redirect location%s"), |
1117 | display_html ? "</A>" : ""); | 1089 | display_html ? "</A>" : ""); |
1118 | } | 1090 | } |
1119 | } | 1091 | } |
1120 | 1092 | ||
1121 | url = realloc (url, strcspn (pos, "\r\n") + 1); | 1093 | url = realloc (url, strcspn (pos, "\r\n") + 1); |
1122 | if (url == NULL) | 1094 | if (url == NULL) |
1123 | die (STATE_UNKNOWN, _("HTTP UNKNOWN - could not allocate url\n")); | 1095 | np_die (STATE_UNKNOWN, _("could not allocate url")); |
1124 | 1096 | ||
1125 | /* URI_HTTP, URI_HOST, URI_PORT, URI_PATH */ | 1097 | /* URI_HTTP, URI_HOST, URI_PORT, URI_PATH */ |
1126 | if (sscanf (pos, HD1, type, addr, &i, url) == 4) | 1098 | if (sscanf (pos, HD1, type, addr, &i, url) == 4) |
@@ -1159,8 +1131,8 @@ redir (char *pos, char *status_line) | |||
1159 | } | 1131 | } |
1160 | 1132 | ||
1161 | else { | 1133 | else { |
1162 | die (STATE_UNKNOWN, | 1134 | np_die (STATE_UNKNOWN, |
1163 | _("HTTP UNKNOWN - Could not parse redirect location - %s%s\n"), | 1135 | _("Could not parse redirect location - %s%s"), |
1164 | pos, (display_html ? "</A>" : "")); | 1136 | pos, (display_html ? "</A>" : "")); |
1165 | } | 1137 | } |
1166 | 1138 | ||
@@ -1169,16 +1141,16 @@ redir (char *pos, char *status_line) | |||
1169 | } /* end while (pos) */ | 1141 | } /* end while (pos) */ |
1170 | 1142 | ||
1171 | if (++redir_depth > max_depth) | 1143 | if (++redir_depth > max_depth) |
1172 | die (STATE_WARNING, | 1144 | np_die (STATE_WARNING, |
1173 | _("HTTP WARNING - maximum redirection depth %d exceeded - %s://%s:%d%s%s\n"), | 1145 | _("maximum redirection depth %d exceeded - %s://%s:%d%s%s"), |
1174 | max_depth, type, addr, i, url, (display_html ? "</A>" : "")); | 1146 | max_depth, type, addr, i, url, (display_html ? "</A>" : "")); |
1175 | 1147 | ||
1176 | if (server_port==i && | 1148 | if (server_port==i && |
1177 | !strcmp(server_address, addr) && | 1149 | !strcmp(server_address, addr) && |
1178 | (host_name && !strcmp(host_name, addr)) && | 1150 | (host_name && !strcmp(host_name, addr)) && |
1179 | !strcmp(server_url, url)) | 1151 | !strcmp(server_url, url)) |
1180 | die (STATE_WARNING, | 1152 | np_die (STATE_WARNING, |
1181 | _("HTTP WARNING - redirection creates an infinite loop - %s://%s:%d%s%s\n"), | 1153 | _("redirection creates an infinite loop - %s://%s:%d%s%s"), |
1182 | type, addr, i, url, (display_html ? "</A>" : "")); | 1154 | type, addr, i, url, (display_html ? "</A>" : "")); |
1183 | 1155 | ||
1184 | strcpy (server_type, type); | 1156 | strcpy (server_type, type); |
@@ -1193,18 +1165,17 @@ redir (char *pos, char *status_line) | |||
1193 | if ((url[0] == '/')) | 1165 | if ((url[0] == '/')) |
1194 | server_url = strdup (url); | 1166 | server_url = strdup (url); |
1195 | else if (asprintf(&server_url, "/%s", url) == -1) | 1167 | else if (asprintf(&server_url, "/%s", url) == -1) |
1196 | die (STATE_UNKNOWN, _("HTTP UNKNOWN - Could not allocate server_url%s\n"), | 1168 | np_die (STATE_UNKNOWN, _("Could not allocate server_url%s"), |
1197 | display_html ? "</A>" : ""); | 1169 | display_html ? "</A>" : ""); |
1198 | free(url); | 1170 | free(url); |
1199 | 1171 | ||
1200 | if ((server_port = i) > MAX_PORT) | 1172 | if ((server_port = i) > MAX_PORT) |
1201 | die (STATE_UNKNOWN, | 1173 | np_die (STATE_UNKNOWN, |
1202 | _("HTTP UNKNOWN - Redirection to port above %d - %s://%s:%d%s%s\n"), | 1174 | _("Redirection to port above %d - %s://%s:%d%s%s"), |
1203 | MAX_PORT, server_type, server_address, server_port, server_url, | 1175 | MAX_PORT, server_type, server_address, server_port, server_url, |
1204 | display_html ? "</A>" : ""); | 1176 | display_html ? "</A>" : ""); |
1205 | 1177 | ||
1206 | if (verbose) | 1178 | np_verbose (_("Redirection to %s://%s:%d%s"), server_type, server_address, |
1207 | printf (_("Redirection to %s://%s:%d%s\n"), server_type, server_address, | ||
1208 | server_port, server_url); | 1179 | server_port, server_url); |
1209 | 1180 | ||
1210 | check_http (); | 1181 | check_http (); |