diff options
author | Ton Voon <tonvoon@users.sourceforge.net> | 2008-11-08 02:08:56 +0000 |
---|---|---|
committer | Ton Voon <tonvoon@users.sourceforge.net> | 2008-11-08 02:08:56 +0000 |
commit | 288b742ed61bb62a210fdd3614d4e3883aa82407 (patch) | |
tree | df78d3d69fa3b0015cfb59b0b3d75db841f4c603 /plugins/check_http.c | |
parent | c4c897ea96c5592fd45294941d57f672f9361952 (diff) | |
download | monitoring-plugins-288b742ed61bb62a210fdd3614d4e3883aa82407.tar.gz |
check_http now has options to specify the HTTP method (Jan - 2155152)
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@2075 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'plugins/check_http.c')
-rw-r--r-- | plugins/check_http.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/plugins/check_http.c b/plugins/check_http.c index 69ed2fa9..df5daf2d 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c @@ -187,6 +187,7 @@ process_arguments (int argc, char **argv) {"nohtml", no_argument, 0, 'n'}, {"ssl", no_argument, 0, 'S'}, {"post", required_argument, 0, 'P'}, + {"method", required_argument, 0, 'j'}, {"IP-address", required_argument, 0, 'I'}, {"url", required_argument, 0, 'u'}, {"port", required_argument, 0, 'p'}, @@ -228,7 +229,7 @@ process_arguments (int argc, char **argv) } while (1) { - c = getopt_long (argc, argv, "Vvh46t:c:w:A:k:H:P:T:I:a:e:p:s:R:r:u:f:C:nlLSm:M:N", longopts, &option); + c = getopt_long (argc, argv, "Vvh46t:c:w:A:k:H:P:j:T:I:a:e:p:s:R:r:u:f:C:nlLSm:M:N", longopts, &option); if (c == -1 || c == EOF) break; @@ -344,10 +345,16 @@ process_arguments (int argc, char **argv) strncpy (user_auth, optarg, MAX_INPUT_BUFFER - 1); user_auth[MAX_INPUT_BUFFER - 1] = 0; break; - case 'P': /* HTTP POST data in URL encoded format */ - if (http_method || http_post_data) break; - http_method = strdup("POST"); - http_post_data = strdup (optarg); + case 'P': /* HTTP POST data in URL encoded format; ignored if settings already */ + if (! http_post_data) + http_post_data = strdup (optarg); + if (! http_method) + http_method = strdup("POST"); + break; + case 'j': /* Set HTTP method */ + if (http_method) + free(http_method); + http_method = strdup (optarg); break; case 's': /* string or substring */ strncpy (string_expect, optarg, MAX_INPUT_BUFFER - 1); @@ -817,7 +824,7 @@ check_http (void) asprintf (&buf, "%sAuthorization: Basic %s\r\n", buf, auth); } - /* either send http POST data */ + /* either send http POST data (any data, not only POST)*/ if (http_post_data) { if (http_content_type) { asprintf (&buf, "%sContent-Type: %s\r\n", buf, http_content_type); @@ -1313,6 +1320,8 @@ print_help (void) 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", "-j, --method=STRING (for example: HEAD, OPTIONS, TRACE, PUT, DELETE)"); + 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.)")); @@ -1396,5 +1405,5 @@ print_usage (void) printf (" [-a auth] [-f <ok | warn | critcal | follow>] [-e <expect>]\n"); printf (" [-s string] [-l] [-r <regex> | -R <case-insensitive regex>] [-P string]\n"); printf (" [-m <min_pg_size>:<max_pg_size>] [-4|-6] [-N] [-M <age>] [-A string]\n"); - printf (" [-k string] [-S] [-C <age>] [-T <content-type>]\n"); + printf (" [-k string] [-S] [-C <age>] [-T <content-type>] [-j method]\n"); } |