diff options
| -rw-r--r-- | THANKS.in | 1 | ||||
| -rw-r--r-- | plugins/check_http.c | 14 |
2 files changed, 13 insertions, 2 deletions
| @@ -237,3 +237,4 @@ Christian Schneemann | |||
| 237 | Rob Windsor | 237 | Rob Windsor |
| 238 | Hilko Bengen | 238 | Hilko Bengen |
| 239 | Sven Nierlein | 239 | Sven Nierlein |
| 240 | Erik Wasser | ||
diff --git a/plugins/check_http.c b/plugins/check_http.c index 718fb840..69ed2fa9 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c | |||
| @@ -789,8 +789,18 @@ check_http (void) | |||
| 789 | asprintf (&buf, "%sConnection: close\r\n", buf); | 789 | asprintf (&buf, "%sConnection: close\r\n", buf); |
| 790 | 790 | ||
| 791 | /* optionally send the host header info */ | 791 | /* optionally send the host header info */ |
| 792 | if (host_name) | 792 | if (host_name) { |
| 793 | asprintf (&buf, "%sHost: %s:%d\r\n", buf, host_name, server_port); | 793 | /* |
| 794 | * Specify the port only if we're using a non-default port (see RFC 2616, | ||
| 795 | * 14.23). Some server applications/configurations cause trouble if the | ||
| 796 | * (default) port is explicitly specified in the "Host:" header line. | ||
| 797 | */ | ||
| 798 | if ((use_ssl == FALSE && server_port == HTTP_PORT) || | ||
| 799 | (use_ssl == TRUE && server_port == HTTPS_PORT)) | ||
| 800 | asprintf (&buf, "%sHost: %s\r\n", buf, host_name); | ||
| 801 | else | ||
| 802 | asprintf (&buf, "%sHost: %s:%d\r\n", buf, host_name, server_port); | ||
| 803 | } | ||
| 794 | 804 | ||
| 795 | /* optionally send any other header tag */ | 805 | /* optionally send any other header tag */ |
| 796 | if (http_opt_headers_count) { | 806 | if (http_opt_headers_count) { |
