From: Simon McVittie <smcv@ http://smcv.pseudorandom.co.uk/>
Date: Sat, 31 Jan 2009 18:26:37 +0000 (+0000)
Subject: CGI: pad error responses with 512 bytes of spaces so IE will display them
X-Git-Tag: 3.04~86^2~3
X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/dedbe110f27e77051c8e49e0a53b8cdd148dd752

CGI: pad error responses with 512 bytes of spaces so IE will display them

IE displays its own error responses unless the server's was >= 512 bytes.
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807
---

diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm
index 7e968d966..8734cdd49 100644
--- a/IkiWiki/CGI.pm
+++ b/IkiWiki/CGI.pm
@@ -239,6 +239,9 @@ sub check_banned ($$) {
 			print $q->header(-status => "403 Forbidden");
 			$session->delete();
 			print gettext("You are banned.");
+			# Internet Explorer won't show custom 404 responses
+			# unless they're >= 512 bytes
+			print " " x 512;
 			cgi_savesession($session);
 			exit;
 		}
@@ -323,7 +326,10 @@ sub cgi_goto ($;$) {
 			"<p>".
 			sprintf(gettext("The page %s does not exist."),
 				htmllink("", "", $page)).
-			"</p>");
+			"</p>".
+			# Internet Explorer won't show custom 404 responses
+			# unless they're >= 512 bytes
+			(" " x 512));
 	}
 	else {
 		redirect($q, urlto($link, undef, 1));