diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2017-03-17 16:30:33 +0100 |
---|---|---|
committer | Sven Nierlein <sven@nierlein.de> | 2018-10-22 16:28:51 +0200 |
commit | 50577bf9b14f31eb6737a0ed3d2e8984a09a4fca (patch) | |
tree | dbcc07320ed7cdf25194d4aa8a9983abd5bf58ee /plugins/check_curl.c | |
parent | ec8de89a4471e8482e284ec9728032ee2dab9228 (diff) | |
download | monitoring-plugins-50577bf9b14f31eb6737a0ed3d2e8984a09a4fca.tar.gz |
added -N/--no-body option
Diffstat (limited to 'plugins/check_curl.c')
-rw-r--r-- | plugins/check_curl.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/plugins/check_curl.c b/plugins/check_curl.c index 6b33d1ca..96b5a5e9 100644 --- a/plugins/check_curl.c +++ b/plugins/check_curl.c | |||
@@ -130,6 +130,7 @@ char *client_cert = NULL; | |||
130 | char *client_privkey = NULL; | 130 | char *client_privkey = NULL; |
131 | char *ca_cert = NULL; | 131 | char *ca_cert = NULL; |
132 | X509 *cert = NULL; | 132 | X509 *cert = NULL; |
133 | int no_body = FALSE; | ||
133 | 134 | ||
134 | int process_arguments (int, char**); | 135 | int process_arguments (int, char**); |
135 | int check_http (void); | 136 | int check_http (void); |
@@ -324,6 +325,10 @@ check_http (void) | |||
324 | */ | 325 | */ |
325 | } | 326 | } |
326 | 327 | ||
328 | /* no-body */ | ||
329 | if (no_body) | ||
330 | curl_easy_setopt (curl, CURLOPT_NOBODY, 1); | ||
331 | |||
327 | /* do the request */ | 332 | /* do the request */ |
328 | res = curl_easy_perform(curl); | 333 | res = curl_easy_perform(curl); |
329 | 334 | ||
@@ -395,10 +400,8 @@ check_http (void) | |||
395 | 400 | ||
396 | /* print status line, header, body if verbose */ | 401 | /* print status line, header, body if verbose */ |
397 | if (verbose >= 2) { | 402 | if (verbose >= 2) { |
398 | puts ("--- HEADER ---"); | 403 | printf ("**** HEADER ****\n%s\n**** CONTENT ****\n%s\n", header_buf.buf, |
399 | puts (header_buf.buf); | 404 | (no_body ? " [[ skipped ]]" : body_buf.buf)); |
400 | puts ("--- BODY ---"); | ||
401 | puts (body_buf.buf); | ||
402 | } | 405 | } |
403 | 406 | ||
404 | /* illegal return codes result in a critical state */ | 407 | /* illegal return codes result in a critical state */ |
@@ -524,6 +527,7 @@ process_arguments (int argc, char **argv) | |||
524 | {"ca-cert", required_argument, 0, CA_CERT_OPTION}, | 527 | {"ca-cert", required_argument, 0, CA_CERT_OPTION}, |
525 | {"useragent", required_argument, 0, 'A'}, | 528 | {"useragent", required_argument, 0, 'A'}, |
526 | {"header", required_argument, 0, 'k'}, | 529 | {"header", required_argument, 0, 'k'}, |
530 | {"no-body", no_argument, 0, 'N'}, | ||
527 | {"invert-regex", no_argument, NULL, INVERT_REGEX}, | 531 | {"invert-regex", no_argument, NULL, INVERT_REGEX}, |
528 | {"extended-perfdata", no_argument, 0, 'E'}, | 532 | {"extended-perfdata", no_argument, 0, 'E'}, |
529 | {0, 0, 0, 0} | 533 | {0, 0, 0, 0} |
@@ -533,7 +537,7 @@ process_arguments (int argc, char **argv) | |||
533 | return ERROR; | 537 | return ERROR; |
534 | 538 | ||
535 | while (1) { | 539 | while (1) { |
536 | c = getopt_long (argc, argv, "Vvht:c:w:A:k:H:j:I:a:p:s:r:u:f:C:J:K:S::E", longopts, &option); | 540 | c = getopt_long (argc, argv, "Vvht:c:w:A:k:H:j:I:a:p:s:r:u:f:C:J:K:S::NE", longopts, &option); |
537 | if (c == -1 || c == EOF || c == 1) | 541 | if (c == -1 || c == EOF || c == 1) |
538 | break; | 542 | break; |
539 | 543 | ||
@@ -716,6 +720,9 @@ process_arguments (int argc, char **argv) | |||
716 | case INVERT_REGEX: | 720 | case INVERT_REGEX: |
717 | invert_regex = 1; | 721 | invert_regex = 1; |
718 | break; | 722 | break; |
723 | case 'N': /* no-body */ | ||
724 | no_body = TRUE; | ||
725 | break; | ||
719 | case 'E': /* show extended perfdata */ | 726 | case 'E': /* show extended perfdata */ |
720 | show_extended_perfdata = TRUE; | 727 | show_extended_perfdata = TRUE; |
721 | break; | 728 | break; |
@@ -829,6 +836,9 @@ print_help (void) | |||
829 | printf (" %s\n", _("URL to GET or POST (default: /)")); | 836 | printf (" %s\n", _("URL to GET or POST (default: /)")); |
830 | printf (" %s\n", "-j, --method=STRING (for example: HEAD, OPTIONS, TRACE, PUT, DELETE, CONNECT)"); | 837 | printf (" %s\n", "-j, --method=STRING (for example: HEAD, OPTIONS, TRACE, PUT, DELETE, CONNECT)"); |
831 | printf (" %s\n", _("Set HTTP method.")); | 838 | printf (" %s\n", _("Set HTTP method.")); |
839 | printf (" %s\n", "-N, --no-body"); | ||
840 | printf (" %s\n", _("Don't wait for document body: stop reading after headers.")); | ||
841 | printf (" %s\n", _("(Note that this still does an HTTP GET or POST, not a HEAD.)")); | ||
832 | printf (" %s\n", "-r, --regex, --ereg=STRING"); | 842 | printf (" %s\n", "-r, --regex, --ereg=STRING"); |
833 | printf (" %s\n", _("Search page for regex STRING")); | 843 | printf (" %s\n", _("Search page for regex STRING")); |
834 | printf (" %s\n", "-a, --authorization=AUTH_PAIR"); | 844 | printf (" %s\n", "-a, --authorization=AUTH_PAIR"); |
@@ -910,6 +920,7 @@ print_usage (void) | |||
910 | printf (" [-w <warn time>] [-c <critical time>] [-t <timeout>] [-E] [-a auth]\n"); | 920 | printf (" [-w <warn time>] [-c <critical time>] [-t <timeout>] [-E] [-a auth]\n"); |
911 | printf (" [-f <ok|warning|critcal|follow>]\n"); | 921 | printf (" [-f <ok|warning|critcal|follow>]\n"); |
912 | printf (" [-s string] [-r <regex>\n"); | 922 | printf (" [-s string] [-r <regex>\n"); |
923 | printf (" [-N]\n"); | ||
913 | printf (" [-A string] [-k string] [-S <version>] [-C]\n"); | 924 | printf (" [-A string] [-k string] [-S <version>] [-C]\n"); |
914 | printf (" [-v verbose]\n", progname); | 925 | printf (" [-v verbose]\n", progname); |
915 | printf ("\n"); | 926 | printf ("\n"); |