From b0361b8efde26fbf4f3207be6c3c8f39eb16a9f3 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 31 Jan 2009 19:02:50 -0500 Subject: [PATCH] factor out IE stupididy workaround --- IkiWiki/CGI.pm | 23 +++++++++++++++++------ IkiWiki/Plugin/goto.pm | 17 ++++++++--------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index c91914564..3000ed100 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -229,6 +229,20 @@ sub cgi_prefs ($$) { showform($form, $buttons, $session, $q); } +sub cgi_custom_failure ($$) { + my $header=shift; + my $message=shift; + + print $header; + print $message; + + # Internet Explod^Hrer won't show custom 404 responses + # unless they're >= 512 bytes + print ' ' x 512; + + exit; +} + sub check_banned ($$) { my $q=shift; my $session=shift; @@ -236,14 +250,11 @@ sub check_banned ($$) { my $name=$session->param("name"); if (defined $name) { if (grep { $name eq $_ } @{$config{banned_users}}) { - 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; + cgi_custom_failure( + $q->header(-status => "403 Forbidden"), + gettext("You are banned.")); } } } diff --git a/IkiWiki/Plugin/goto.pm b/IkiWiki/Plugin/goto.pm index 9e7a2621f..7cc8cb484 100644 --- a/IkiWiki/Plugin/goto.pm +++ b/IkiWiki/Plugin/goto.pm @@ -44,15 +44,14 @@ sub cgi_goto ($;$) { my $link = bestlink("", $page); if (! length $link) { - print $q->header(-status => "404 Not Found"); - print IkiWiki::misctemplate(gettext("missing page"), - "

". - sprintf(gettext("The page %s does not exist."), - htmllink("", "", $page)). - "

". - # Internet Explorer won't show custom 404 responses - # unless they're >= 512 bytes - (" " x 512)); + IkiWiki::cgi_custom_failure( + $q->header(-status => "404 Not Found"), + IkiWiki::misctemplate(gettext("missing page"), + "

". + sprintf(gettext("The page %s does not exist."), + htmllink("", "", $page)). + "

") + ) } else { IkiWiki::redirect($q, urlto($link, undef, 1)); -- 2.26.2