diff options
| -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) | |||
| 1094 | die (STATE_UNKNOWN, _("Could not allocate url\n")); | 1094 | die (STATE_UNKNOWN, _("Could not allocate url\n")); |
| 1095 | 1095 | ||
| 1096 | while (pos) { | 1096 | while (pos) { |
| 1097 | sscanf (pos, "%[Ll]%*[Oo]%*[Cc]%*[Aa]%*[Tt]%*[Ii]%*[Oo]%*[Nn]:%n", xx, &i); | 1097 | |
| 1098 | if (i == 0) { | 1098 | if (sscanf (pos, "%[Ll]%*[Oo]%*[Cc]%*[Aa]%*[Tt]%*[Ii]%*[Oo]%*[Nn]:%n", xx, &i) < 1) { |
| 1099 | |||
| 1099 | pos += (size_t) strcspn (pos, "\r\n"); | 1100 | pos += (size_t) strcspn (pos, "\r\n"); |
| 1100 | pos += (size_t) strspn (pos, "\r\n"); | 1101 | pos += (size_t) strspn (pos, "\r\n"); |
| 1101 | if (strlen(pos) == 0) | 1102 | if (strlen(pos) == 0) |
| @@ -1250,68 +1251,65 @@ print_help (void) | |||
| 1250 | 1251 | ||
| 1251 | printf (_(UT_HELP_VRSN)); | 1252 | printf (_(UT_HELP_VRSN)); |
| 1252 | 1253 | ||
| 1253 | printf (_("\ | 1254 | printf (" %s\n", "-H, --hostname=ADDRESS"); |
| 1254 | -H, --hostname=ADDRESS\n\ | 1255 | printf (" %s\n", _("Host name argument for servers using host headers (virtual host)")); |
| 1255 | Host name argument for servers using host headers (virtual host)\n\ | 1256 | printf (" %s\n", _("Append a port to include it in the header (eg: example.com:5000)")); |
| 1256 | Append a port to include it in the header (eg: example.com:5000)\n\ | 1257 | printf (" %s\n", "-I, --IP-address=ADDRESS"); |
| 1257 | -I, --IP-address=ADDRESS\n\ | 1258 | printf (" %s\n", _("IP address or name (use numeric address if possible to bypass DNS lookup).")); |
| 1258 | IP address or name (use numeric address if possible to bypass DNS lookup).\n\ | 1259 | printf (" %s\n", "-p, --port=INTEGER"); |
| 1259 | -p, --port=INTEGER\n\ | 1260 | printf (" %s", _("Port number (default: ")); |
| 1260 | Port number (default: %d)\n"), HTTP_PORT); | 1261 | printf ("%d)\n", HTTP_PORT); |
| 1261 | 1262 | ||
| 1262 | printf (_(UT_IPv46)); | 1263 | printf (_(UT_IPv46)); |
| 1263 | 1264 | ||
| 1264 | #ifdef HAVE_SSL | 1265 | #ifdef HAVE_SSL |
| 1265 | printf (_("\ | 1266 | printf (" %s\n", "-S, --ssl"); |
| 1266 | -S, --ssl\n\ | 1267 | printf (" %s\n", _("Connect via SSL")); |
| 1267 | Connect via SSL\n\ | 1268 | printf (" %s\n", "-C, --certificate=INTEGER"); |
| 1268 | -C, --certificate=INTEGER\n\ | 1269 | printf (" %s\n", _("Minimum number of days a certificate has to be valid.")); |
| 1269 | Minimum number of days a certificate has to be valid.\n\ | 1270 | printf (" %s\n", _("(when this option is used the url is not checked.)\n")); |
| 1270 | (when this option is used the url is not checked.)\n")); | ||
| 1271 | #endif | 1271 | #endif |
| 1272 | 1272 | ||
| 1273 | printf (_("\ | 1273 | printf (" %s\n", "-e, --expect=STRING"); |
| 1274 | -e, --expect=STRING\n\ | 1274 | printf (" %s\n", _("String to expect in first (status) line of server response (default: ")); |
| 1275 | String to expect in first (status) line of server response (default: %s)\n\ | 1275 | printf ("%s\n", HTTP_EXPECT); |
| 1276 | If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)\n\ | 1276 | printf (" %s\n", _("If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)")); |
| 1277 | -s, --string=STRING\n\ | 1277 | printf (" %s\n", "-s, --string=STRING"); |
| 1278 | String to expect in the content\n\ | 1278 | printf (" %s\n", _("String to expect in the content")); |
| 1279 | -u, --url=PATH\n\ | 1279 | printf (" %s\n", "-u, --url=PATH"); |
| 1280 | URL to GET or POST (default: /)\n\ | 1280 | printf (" %s\n", _("URL to GET or POST (default: /)")); |
| 1281 | -P, --post=STRING\n\ | 1281 | printf (" %s\n," "-P, --post=STRING"); |
| 1282 | URL encoded http POST data\n\ | 1282 | printf (" %s\n", _("URL encoded http POST data")); |
| 1283 | -N, --no-body\n\ | 1283 | printf (" %s\n", "-N, --no-body"); |
| 1284 | Don't wait for document body: stop reading after headers.\n\ | 1284 | printf (" %s\n", _("Don't wait for document body: stop reading after headers.")); |
| 1285 | (Note that this still does an HTTP GET or POST, not a HEAD.)\n\ | 1285 | printf (" %s\n", _("(Note that this still does an HTTP GET or POST, not a HEAD.)")); |
| 1286 | -M, --max-age=SECONDS\n\ | 1286 | printf (" %s\n", "-M, --max-age=SECONDS"); |
| 1287 | Warn if document is more than SECONDS old. the number can also be of \n\ | 1287 | printf (" %s\n", _("Warn if document is more than SECONDS old. the number can also be of")); |
| 1288 | the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days.\n\ | 1288 | printf (" %s\n", _("the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days.")); |
| 1289 | -T, --content-type=STRING\n\ | 1289 | printf (" %s\n", "-T, --content-type=STRING"); |
| 1290 | specify Content-Type header media type when POSTing\n"), HTTP_EXPECT); | 1290 | printf (" %s\n", _("specify Content-Type header media type when POSTing\n")); |
| 1291 | 1291 | ||
| 1292 | printf (_("\ | 1292 | printf (" %s\n", "-l, --linespan"); |
| 1293 | -l, --linespan\n\ | 1293 | printf (" %s\n", _("Allow regex to span newlines (must precede -r or -R)")); |
| 1294 | Allow regex to span newlines (must precede -r or -R)\n\ | 1294 | printf (" %s\n", "-r, --regex, --ereg=STRING"); |
| 1295 | -r, --regex, --ereg=STRING\n\ | 1295 | printf (" %s\n", _("Search page for regex STRING")); |
| 1296 | Search page for regex STRING\n\ | 1296 | printf (" %s\n", "-R, --eregi=STRING"); |
| 1297 | -R, --eregi=STRING\n\ | 1297 | printf (" %s\n", _("Search page for case-insensitive regex STRING")); |
| 1298 | Search page for case-insensitive regex STRING\n\ | 1298 | printf (" %s\n", "--invert-regex"); |
| 1299 | --invert-regex\n\ | 1299 | printf (" %s\n", _("Return CRITICAL if found, OK if not\n")); |
| 1300 | Return CRITICAL if found, OK if not\n")); | 1300 | |
| 1301 | 1301 | printf (" %s\n", "-a, --authorization=AUTH_PAIR"); | |
| 1302 | printf (_("\ | 1302 | printf (" %s\n", _("Username:password on sites with basic authentication")); |
| 1303 | -a, --authorization=AUTH_PAIR\n\ | 1303 | printf (" %s\n", "-A, --useragent=STRING"); |
| 1304 | Username:password on sites with basic authentication\n\ | 1304 | printf (" %s\n", _("String to be sent in http header as \"User Agent\"")); |
| 1305 | -A, --useragent=STRING\n\ | 1305 | printf (" %s\n", "-k, --header=STRING"); |
| 1306 | String to be sent in http header as \"User Agent\"\n\ | 1306 | printf (" %s\n", _(" Any other tags to be sent in http header. Use multiple times for additional headers")); |
| 1307 | -k, --header=STRING\n\ | 1307 | printf (" %s\n", "-L, --link=URL"); |
| 1308 | Any other tags to be sent in http header. Use multiple times for additional headers\n\ | 1308 | printf (" %s\n", _("Wrap output in HTML link (obsoleted by urlize)")); |
| 1309 | -L, --link=URL\n\ | 1309 | printf (" %s\n", "-f, --onredirect=<ok|warning|critical|follow>"); |
| 1310 | Wrap output in HTML link (obsoleted by urlize)\n\ | 1310 | printf (" %s\n", _("How to handle redirected pages")); |
| 1311 | -f, --onredirect=<ok|warning|critical|follow>\n\ | 1311 | printf (" %s\n", "-m, --pagesize=INTEGER<:INTEGER>"); |
| 1312 | How to handle redirected pages\n\ | 1312 | printf (" %s\n", _("Minimum page size required (bytes) : Maximum page size required (bytes)")); |
| 1313 | -m, --pagesize=INTEGER<:INTEGER>\n\ | ||
| 1314 | Minimum page size required (bytes) : Maximum page size required (bytes)\n")); | ||
| 1315 | 1313 | ||
| 1316 | printf (_(UT_WARN_CRIT)); | 1314 | printf (_(UT_WARN_CRIT)); |
| 1317 | 1315 | ||
| @@ -1319,32 +1317,30 @@ print_help (void) | |||
| 1319 | 1317 | ||
| 1320 | printf (_(UT_VERBOSE)); | 1318 | printf (_(UT_VERBOSE)); |
| 1321 | 1319 | ||
| 1322 | printf (_("\ | 1320 | printf (_("Notes:")); |
| 1323 | This plugin will attempt to open an HTTP connection with the host. Successful\n\ | 1321 | printf (" %s\n", _("This plugin will attempt to open an HTTP connection with the host.")); |
| 1324 | connects return STATE_OK, refusals and timeouts return STATE_CRITICAL, other\n\ | 1322 | printf (" %s\n", _("Successful connects return STATE_OK, refusals and timeouts return STATE_CRITICAL")); |
| 1325 | errors return STATE_UNKNOWN. Successful connects, but incorrect reponse\n\ | 1323 | printf (" %s\n", _("other errors return STATE_UNKNOWN. Successful connects, but incorrect reponse")); |
| 1326 | messages from the host result in STATE_WARNING return values. If you are\n\ | 1324 | printf (" %s\n", _("messages from the host result in STATE_WARNING return values. If you are")); |
| 1327 | checking a virtual server that uses 'host headers' you must supply the FQDN\n\ | 1325 | printf (" %s\n", _("checking a virtual server that uses 'host headers' you must supply the FQDN")); |
| 1328 | (fully qualified domain name) as the [host_name] argument.\n")); | 1326 | printf (" %s\n", _("(fully qualified domain name) as the [host_name] argument.")); |
| 1329 | 1327 | ||
| 1330 | #ifdef HAVE_SSL | 1328 | #ifdef HAVE_SSL |
| 1331 | printf (_("\n\ | 1329 | printf (" %s\n", _("This plugin can also check whether an SSL enabled web server is able to")); |
| 1332 | This plugin can also check whether an SSL enabled web server is able to\n\ | 1330 | printf (" %s\n", _("serve content (optionally within a specified time) or whether the X509 ")); |
| 1333 | serve content (optionally within a specified time) or whether the X509 \n\ | 1331 | printf (" %s\n", _("certificate is still valid for the specified number of days.")); |
| 1334 | certificate is still valid for the specified number of days.\n")); | 1332 | printf (_("Examples:")); |
| 1335 | printf (_("\n\ | 1333 | printf (" %s\n\n", "CHECK CONTENT: check_http -w 5 -c 10 --ssl www.verisign.com"); |
| 1336 | CHECK CONTENT: check_http -w 5 -c 10 --ssl www.verisign.com\n\n\ | 1334 | printf (" %s\n", _("When the 'www.verisign.com' server returns its content within 5 seconds,")); |
| 1337 | When the 'www.verisign.com' server returns its content within 5 seconds, a\n\ | 1335 | printf (" %s\n", _("a STATE_OK will be returned. When the server returns its content but exceeds")); |
| 1338 | STATE_OK will be returned. When the server returns its content but exceeds\n\ | 1336 | printf (" %s\n", _("the 5-second threshold, a STATE_WARNING will be returned. When an error occurs,")); |
| 1339 | the 5-second threshold, a STATE_WARNING will be returned. When an error occurs,\n\ | 1337 | printf (" %s\n\n", _("a STATE_CRITICAL will be returned.")); |
| 1340 | a STATE_CRITICAL will be returned.\n\n")); | 1338 | |
| 1341 | 1339 | printf (" %s\n\n", "CHECK CERTIFICATE: check_http www.verisign.com -C 14"); | |
| 1342 | printf (_("\ | 1340 | printf (" %s\n", _("When the certificate of 'www.verisign.com' is valid for more than 14 days,")); |
| 1343 | CHECK CERTIFICATE: check_http www.verisign.com -C 14\n\n\ | 1341 | printf (" %s\n", _("a STATE_OK is returned. When the certificate is still valid, but for less than")); |
| 1344 | When the certificate of 'www.verisign.com' is valid for more than 14 days, a\n\ | 1342 | printf (" %s\n", _("14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when")); |
| 1345 | STATE_OK is returned. When the certificate is still valid, but for less than\n\ | 1343 | printf (" %s\n\n", _("the certificate is expired.")); |
| 1346 | 14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when\n\ | ||
| 1347 | the certificate is expired.\n")); | ||
| 1348 | #endif | 1344 | #endif |
| 1349 | 1345 | ||
| 1350 | printf (_(UT_SUPPORT)); | 1346 | printf (_(UT_SUPPORT)); |
