From e9f976fbf3af9c5a923fd56f97e71bcf03d05716 Mon Sep 17 00:00:00 2001 From: Thomas Guyot-Sionnest Date: Mon, 1 Sep 2008 14:04:04 +0000 Subject: Revert "Re-structure the HTTP 1.1 headers to prevent 301s on servers with virtual hosts" This reverts commit 2030 git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@2050 f882894a-f735-0410-b71e-b25c423dba1c diff --git a/NEWS b/NEWS index c2be902..96c4591 100644 --- a/NEWS +++ b/NEWS @@ -9,7 +9,6 @@ This file documents the major additions and syntax changes between releases. check_procs now captures stderr in external command and adds to plugin output check_snmp now only prints perfdata for non numeric values (#1867716) check_icmp now supports packet size modification - check_http now sends the Host header first to fix 301s on servers with vitrual hosts (Michael Harris). check_http -e now accepts a comma-delimited list of expected status codes libtap now included with this distribution for easier testing. Run ./configure with --enable-libtap diff --git a/THANKS.in b/THANKS.in index e63e9f6..56bc7ee 100644 --- a/THANKS.in +++ b/THANKS.in @@ -236,5 +236,4 @@ Jan Wagner Christian Schneemann Rob Windsor Hilko Bengen -Michael Harris Sven Nierlein diff --git a/plugins/check_http.c b/plugins/check_http.c index 4a3d692..718fb84 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c @@ -783,17 +783,15 @@ check_http (void) } #endif /* HAVE_SSL */ - /* If a hostname is provided, use HTTP/1.1 and send the hostname before the - * Useragent. This fixes an issue with getting 301 responses from servers - * with virtual hosts */ - if (host_name) - asprintf (&buf, "%s %s HTTP/1.1\r\nHost: %s\r\n%s\r\n", http_method, server_url, host_name, user_agent); - else - asprintf (&buf, "%s %s HTTP/1.0\r\n%s\r\n", http_method, server_url, user_agent); + asprintf (&buf, "%s %s HTTP/1.0\r\n%s\r\n", http_method, server_url, user_agent); /* tell HTTP/1.1 servers not to keep the connection alive */ 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); + /* optionally send any other header tag */ if (http_opt_headers_count) { for (i = 0; i < http_opt_headers_count ; i++) { -- cgit v0.10-9-g596f