diff options
Diffstat (limited to 'plugins/check_http.c')
-rw-r--r-- | plugins/check_http.c | 160 |
1 files changed, 78 insertions, 82 deletions
diff --git a/plugins/check_http.c b/plugins/check_http.c index 93a68ef1..188e9ec0 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c @@ -1094,8 +1094,9 @@ redir (char *pos, char *status_line) die (STATE_UNKNOWN, _("Could not allocate url\n")); while (pos) { - sscanf (pos, "%[Ll]%*[Oo]%*[Cc]%*[Aa]%*[Tt]%*[Ii]%*[Oo]%*[Nn]:%n", xx, &i); - if (i == 0) { + + if (sscanf (pos, "%[Ll]%*[Oo]%*[Cc]%*[Aa]%*[Tt]%*[Ii]%*[Oo]%*[Nn]:%n", xx, &i) < 1) { + pos += (size_t) strcspn (pos, "\r\n"); pos += (size_t) strspn (pos, "\r\n"); if (strlen(pos) == 0) @@ -1250,68 +1251,65 @@ print_help (void) printf (_(UT_HELP_VRSN)); - printf (_("\ - -H, --hostname=ADDRESS\n\ - Host name argument for servers using host headers (virtual host)\n\ - Append a port to include it in the header (eg: example.com:5000)\n\ - -I, --IP-address=ADDRESS\n\ - IP address or name (use numeric address if possible to bypass DNS lookup).\n\ - -p, --port=INTEGER\n\ - Port number (default: %d)\n"), HTTP_PORT); + printf (" %s\n", "-H, --hostname=ADDRESS"); + printf (" %s\n", _("Host name argument for servers using host headers (virtual host)")); + printf (" %s\n", _("Append a port to include it in the header (eg: example.com:5000)")); + printf (" %s\n", "-I, --IP-address=ADDRESS"); + printf (" %s\n", _("IP address or name (use numeric address if possible to bypass DNS lookup).")); + printf (" %s\n", "-p, --port=INTEGER"); + printf (" %s", _("Port number (default: ")); + printf ("%d)\n", HTTP_PORT); printf (_(UT_IPv46)); #ifdef HAVE_SSL - printf (_("\ - -S, --ssl\n\ - Connect via SSL\n\ - -C, --certificate=INTEGER\n\ - Minimum number of days a certificate has to be valid.\n\ - (when this option is used the url is not checked.)\n")); + printf (" %s\n", "-S, --ssl"); + printf (" %s\n", _("Connect via SSL")); + printf (" %s\n", "-C, --certificate=INTEGER"); + printf (" %s\n", _("Minimum number of days a certificate has to be valid.")); + printf (" %s\n", _("(when this option is used the url is not checked.)\n")); #endif - printf (_("\ - -e, --expect=STRING\n\ - String to expect in first (status) line of server response (default: %s)\n\ - If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)\n\ - -s, --string=STRING\n\ - String to expect in the content\n\ - -u, --url=PATH\n\ - URL to GET or POST (default: /)\n\ - -P, --post=STRING\n\ - URL encoded http POST data\n\ - -N, --no-body\n\ - Don't wait for document body: stop reading after headers.\n\ - (Note that this still does an HTTP GET or POST, not a HEAD.)\n\ - -M, --max-age=SECONDS\n\ - Warn if document is more than SECONDS old. the number can also be of \n\ - the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days.\n\ - -T, --content-type=STRING\n\ - specify Content-Type header media type when POSTing\n"), HTTP_EXPECT); - - printf (_("\ - -l, --linespan\n\ - Allow regex to span newlines (must precede -r or -R)\n\ - -r, --regex, --ereg=STRING\n\ - Search page for regex STRING\n\ - -R, --eregi=STRING\n\ - Search page for case-insensitive regex STRING\n\ - --invert-regex\n\ - Return CRITICAL if found, OK if not\n")); - - printf (_("\ - -a, --authorization=AUTH_PAIR\n\ - Username:password on sites with basic authentication\n\ - -A, --useragent=STRING\n\ - String to be sent in http header as \"User Agent\"\n\ - -k, --header=STRING\n\ - Any other tags to be sent in http header. Use multiple times for additional headers\n\ - -L, --link=URL\n\ - Wrap output in HTML link (obsoleted by urlize)\n\ - -f, --onredirect=<ok|warning|critical|follow>\n\ - How to handle redirected pages\n\ - -m, --pagesize=INTEGER<:INTEGER>\n\ - Minimum page size required (bytes) : Maximum page size required (bytes)\n")); + printf (" %s\n", "-e, --expect=STRING"); + printf (" %s\n", _("String to expect in first (status) line of server response (default: ")); + printf ("%s\n", HTTP_EXPECT); + printf (" %s\n", _("If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)")); + printf (" %s\n", "-s, --string=STRING"); + printf (" %s\n", _("String to expect in the content")); + printf (" %s\n", "-u, --url=PATH"); + printf (" %s\n", _("URL to GET or POST (default: /)")); + printf (" %s\n," "-P, --post=STRING"); + printf (" %s\n", _("URL encoded http POST data")); + 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", "-M, --max-age=SECONDS"); + printf (" %s\n", _("Warn if document is more than SECONDS old. the number can also be of")); + printf (" %s\n", _("the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days.")); + printf (" %s\n", "-T, --content-type=STRING"); + printf (" %s\n", _("specify Content-Type header media type when POSTing\n")); + + printf (" %s\n", "-l, --linespan"); + printf (" %s\n", _("Allow regex to span newlines (must precede -r or -R)")); + printf (" %s\n", "-r, --regex, --ereg=STRING"); + printf (" %s\n", _("Search page for regex STRING")); + printf (" %s\n", "-R, --eregi=STRING"); + printf (" %s\n", _("Search page for case-insensitive regex STRING")); + printf (" %s\n", "--invert-regex"); + printf (" %s\n", _("Return CRITICAL if found, OK if not\n")); + + printf (" %s\n", "-a, --authorization=AUTH_PAIR"); + printf (" %s\n", _("Username:password on sites with basic authentication")); + printf (" %s\n", "-A, --useragent=STRING"); + printf (" %s\n", _("String to be sent in http header as \"User Agent\"")); + printf (" %s\n", "-k, --header=STRING"); + printf (" %s\n", _(" Any other tags to be sent in http header. Use multiple times for additional headers")); + printf (" %s\n", "-L, --link=URL"); + printf (" %s\n", _("Wrap output in HTML link (obsoleted by urlize)")); + printf (" %s\n", "-f, --onredirect=<ok|warning|critical|follow>"); + printf (" %s\n", _("How to handle redirected pages")); + printf (" %s\n", "-m, --pagesize=INTEGER<:INTEGER>"); + printf (" %s\n", _("Minimum page size required (bytes) : Maximum page size required (bytes)")); printf (_(UT_WARN_CRIT)); @@ -1319,32 +1317,30 @@ print_help (void) printf (_(UT_VERBOSE)); - printf (_("\ -This plugin will attempt to open an HTTP connection with the host. Successful\n\ -connects return STATE_OK, refusals and timeouts return STATE_CRITICAL, other\n\ -errors return STATE_UNKNOWN. Successful connects, but incorrect reponse\n\ -messages from the host result in STATE_WARNING return values. If you are\n\ -checking a virtual server that uses 'host headers' you must supply the FQDN\n\ -(fully qualified domain name) as the [host_name] argument.\n")); + printf (_("Notes:")); + printf (" %s\n", _("This plugin will attempt to open an HTTP connection with the host.")); + printf (" %s\n", _("Successful connects return STATE_OK, refusals and timeouts return STATE_CRITICAL")); + printf (" %s\n", _("other errors return STATE_UNKNOWN. Successful connects, but incorrect reponse")); + printf (" %s\n", _("messages from the host result in STATE_WARNING return values. If you are")); + printf (" %s\n", _("checking a virtual server that uses 'host headers' you must supply the FQDN")); + printf (" %s\n", _("(fully qualified domain name) as the [host_name] argument.")); #ifdef HAVE_SSL - printf (_("\n\ -This plugin can also check whether an SSL enabled web server is able to\n\ -serve content (optionally within a specified time) or whether the X509 \n\ -certificate is still valid for the specified number of days.\n")); - printf (_("\n\ -CHECK CONTENT: check_http -w 5 -c 10 --ssl www.verisign.com\n\n\ -When the 'www.verisign.com' server returns its content within 5 seconds, a\n\ -STATE_OK will be returned. When the server returns its content but exceeds\n\ -the 5-second threshold, a STATE_WARNING will be returned. When an error occurs,\n\ -a STATE_CRITICAL will be returned.\n\n")); - - printf (_("\ -CHECK CERTIFICATE: check_http www.verisign.com -C 14\n\n\ -When the certificate of 'www.verisign.com' is valid for more than 14 days, a\n\ -STATE_OK is returned. When the certificate is still valid, but for less than\n\ -14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when\n\ -the certificate is expired.\n")); + printf (" %s\n", _("This plugin can also check whether an SSL enabled web server is able to")); + printf (" %s\n", _("serve content (optionally within a specified time) or whether the X509 ")); + printf (" %s\n", _("certificate is still valid for the specified number of days.")); + printf (_("Examples:")); + printf (" %s\n\n", "CHECK CONTENT: check_http -w 5 -c 10 --ssl www.verisign.com"); + printf (" %s\n", _("When the 'www.verisign.com' server returns its content within 5 seconds,")); + printf (" %s\n", _("a STATE_OK will be returned. When the server returns its content but exceeds")); + printf (" %s\n", _("the 5-second threshold, a STATE_WARNING will be returned. When an error occurs,")); + printf (" %s\n\n", _("a STATE_CRITICAL will be returned.")); + + printf (" %s\n\n", "CHECK CERTIFICATE: check_http www.verisign.com -C 14"); + printf (" %s\n", _("When the certificate of 'www.verisign.com' is valid for more than 14 days,")); + printf (" %s\n", _("a STATE_OK is returned. When the certificate is still valid, but for less than")); + printf (" %s\n", _("14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when")); + printf (" %s\n\n", _("the certificate is expired.")); #endif printf (_(UT_SUPPORT)); |