From 8430be0b4b1fe55e15e43bd4980006a412bca77c Mon Sep 17 00:00:00 2001
From: Holger Weiss <hweiss@users.sourceforge.net>
Date: Tue, 2 Sep 2008 11:26:31 +0000
Subject: Some HTTP server applications/configurations cause trouble if the
 port is explicitly specified in our "Host:" header line.  Therefore, we now
 specify the port only if we're using a non-default port (Erik Wasser -
 2082501).

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@2053 f882894a-f735-0410-b71e-b25c423dba1c

diff --git a/THANKS.in b/THANKS.in
index 56bc7ee..a003fa8 100644
--- a/THANKS.in
+++ b/THANKS.in
@@ -237,3 +237,4 @@ Christian Schneemann
 Rob Windsor
 Hilko Bengen
 Sven Nierlein
+Erik Wasser
diff --git a/plugins/check_http.c b/plugins/check_http.c
index 718fb84..69ed2fa 100644
--- a/plugins/check_http.c
+++ b/plugins/check_http.c
@@ -789,8 +789,18 @@ check_http (void)
   asprintf (&buf, "%sConnection: close\r\n", buf);
 
   /* optionally send the host header info */
-  if (host_name)
-    asprintf (&buf, "%sHost: %s:%d\r\n", buf, host_name, server_port);
+  if (host_name) {
+    /*
+     * Specify the port only if we're using a non-default port (see RFC 2616,
+     * 14.23).  Some server applications/configurations cause trouble if the
+     * (default) port is explicitly specified in the "Host:" header line.
+     */
+    if ((use_ssl == FALSE && server_port == HTTP_PORT) ||
+        (use_ssl == TRUE && server_port == HTTPS_PORT))
+      asprintf (&buf, "%sHost: %s\r\n", buf, host_name);
+    else
+      asprintf (&buf, "%sHost: %s:%d\r\n", buf, host_name, server_port);
+  }
 
   /* optionally send any other header tag */
   if (http_opt_headers_count) {
-- 
cgit v0.10-9-g596f

