[monitoring-plugins] added -N/--no-body option
Andreas Baumann
git at monitoring-plugins.org
Fri Mar 17 16:40:12 CET 2017
Module: monitoring-plugins
Branch: feature_check_curl
Commit: cf463b9cb81a3390fce22b1003b4739317f08153
Author: Andreas Baumann <mail at andreasbaumann.cc>
Date: Fri Mar 17 16:30:33 2017 +0100
URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=cf463b9
added -N/--no-body option
---
plugins/check_curl.c | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/plugins/check_curl.c b/plugins/check_curl.c
index 6b33d1c..96b5a5e 100644
--- a/plugins/check_curl.c
+++ b/plugins/check_curl.c
@@ -130,6 +130,7 @@ char *client_cert = NULL;
char *client_privkey = NULL;
char *ca_cert = NULL;
X509 *cert = NULL;
+int no_body = FALSE;
int process_arguments (int, char**);
int check_http (void);
@@ -324,6 +325,10 @@ check_http (void)
*/
}
+ /* no-body */
+ if (no_body)
+ curl_easy_setopt (curl, CURLOPT_NOBODY, 1);
+
/* do the request */
res = curl_easy_perform(curl);
@@ -395,10 +400,8 @@ check_http (void)
/* print status line, header, body if verbose */
if (verbose >= 2) {
- puts ("--- HEADER ---");
- puts (header_buf.buf);
- puts ("--- BODY ---");
- puts (body_buf.buf);
+ printf ("**** HEADER ****\n%s\n**** CONTENT ****\n%s\n", header_buf.buf,
+ (no_body ? " [[ skipped ]]" : body_buf.buf));
}
/* illegal return codes result in a critical state */
@@ -524,6 +527,7 @@ process_arguments (int argc, char **argv)
{"ca-cert", required_argument, 0, CA_CERT_OPTION},
{"useragent", required_argument, 0, 'A'},
{"header", required_argument, 0, 'k'},
+ {"no-body", no_argument, 0, 'N'},
{"invert-regex", no_argument, NULL, INVERT_REGEX},
{"extended-perfdata", no_argument, 0, 'E'},
{0, 0, 0, 0}
@@ -533,7 +537,7 @@ process_arguments (int argc, char **argv)
return ERROR;
while (1) {
- 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);
+ 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);
if (c == -1 || c == EOF || c == 1)
break;
@@ -716,6 +720,9 @@ process_arguments (int argc, char **argv)
case INVERT_REGEX:
invert_regex = 1;
break;
+ case 'N': /* no-body */
+ no_body = TRUE;
+ break;
case 'E': /* show extended perfdata */
show_extended_perfdata = TRUE;
break;
@@ -829,6 +836,9 @@ print_help (void)
printf (" %s\n", _("URL to GET or POST (default: /)"));
printf (" %s\n", "-j, --method=STRING (for example: HEAD, OPTIONS, TRACE, PUT, DELETE, CONNECT)");
printf (" %s\n", _("Set HTTP method."));
+ printf (" %s\n", "-N, --no-body");
+ printf (" %s\n", _("Don't wait for document body: stop reading after headers."));
+ printf (" %s\n", _("(Note that this still does an HTTP GET or POST, not a HEAD.)"));
printf (" %s\n", "-r, --regex, --ereg=STRING");
printf (" %s\n", _("Search page for regex STRING"));
printf (" %s\n", "-a, --authorization=AUTH_PAIR");
@@ -910,6 +920,7 @@ print_usage (void)
printf (" [-w <warn time>] [-c <critical time>] [-t <timeout>] [-E] [-a auth]\n");
printf (" [-f <ok|warning|critcal|follow>]\n");
printf (" [-s string] [-r <regex>\n");
+ printf (" [-N]\n");
printf (" [-A string] [-k string] [-S <version>] [-C]\n");
printf (" [-v verbose]\n", progname);
printf ("\n");
More information about the Commits
mailing list