From 669eed6c9dcf6300c3e3f5db1970f2a26c5317e6 Mon Sep 17 00:00:00 2001 From: "jake%acutex.net" <> Date: Tue, 14 Aug 2001 02:11:31 +0000 Subject: Fix for bug 95082 - Param('shutdownhtml') doesn't completely shut down bugzilla. r= justdave@syndicomm.com --- CGI.pl | 19 ++++++++++++++++--- doeditparams.cgi | 2 +- editparams.cgi | 2 +- globals.pl | 17 +++++++++++++++++ query.cgi | 3 +-- 5 files changed, 36 insertions(+), 7 deletions(-) diff --git a/CGI.pl b/CGI.pl index 5a86b7ad1..fb3d0178d 100644 --- a/CGI.pl +++ b/CGI.pl @@ -962,7 +962,7 @@ Content-type: text/html exit(); } print "Content-type: text/html\n\n"; - PutHeader("Login", undef, undef, undef, 1); + PutHeader("Login"); if(Param("useLDAP")) { print "I need a legitimate LDAP username and password to continue.\n"; } else { @@ -1059,7 +1059,7 @@ Content-type: text/html sub PutHeader { - my ($title, $h1, $h2, $extra, $ignoreshutdown, $jscript) = (@_); + my ($title, $h1, $h2, $extra, $jscript) = (@_); if (!defined $h1) { $h1 = $title; @@ -1071,6 +1071,16 @@ sub PutHeader { $extra = ""; } $jscript ||= ""; + # If we are shutdown, we want a very basic page to give that + # information. Also, the page title should indicate that + # we are down. + if (Param('shutdownhtml')) { + $title = "Bugzilla is Down"; + $h1 = "Bugzilla is currently down"; + $h2 = ""; + $extra = ""; + $jscript = ""; + } print "\n$title\n"; print Param("headerhtml") . "\n$jscript\n\n"; @@ -1094,7 +1104,10 @@ sub PutHeader { print "\n"; if (Param("shutdownhtml")) { - if (!$ignoreshutdown) { + # If we are dealing with the params page, we want + # to ignore shutdownhtml + if ($0 !~ m:[\\/](do)?editparams.cgi$:) { + print "

\n"; print Param("shutdownhtml"); exit; } diff --git a/doeditparams.cgi b/doeditparams.cgi index 06019b817..0ecd4be76 100755 --- a/doeditparams.cgi +++ b/doeditparams.cgi @@ -44,7 +44,7 @@ if (!UserInGroup("tweakparams")) { } -PutHeader("Saving new parameters", undef, undef, undef, 1); +PutHeader("Saving new parameters"); foreach my $i (@::param_list) { # print "Processing $i...
\n"; diff --git a/editparams.cgi b/editparams.cgi index 91ddca7f9..e416184f6 100755 --- a/editparams.cgi +++ b/editparams.cgi @@ -44,7 +44,7 @@ if (!UserInGroup("tweakparams")) { -PutHeader("Edit parameters", undef, undef, undef, 1); +PutHeader("Edit parameters"); print "This lets you edit the basic operating parameters of bugzilla.\n"; print "Be careful!\n"; diff --git a/globals.pl b/globals.pl index a3412d634..f41397451 100644 --- a/globals.pl +++ b/globals.pl @@ -200,6 +200,15 @@ sub SendSQL { if ($str =~ /^LOCK TABLES/i && $str !~ /shadowlog/ && $::dbwritesallowed) { $str =~ s/^LOCK TABLES/LOCK TABLES shadowlog WRITE, /i; } + # If we are shutdown, we don't want to run queries except in special cases + if (Param('shutdownhtml')) { + if ($0 =~ m:[\\/](do)?editparams.cgi$:) { + $::ignorequery = 0; + } else { + $::ignorequery = 1; + return; + } + } SqlLog($str); $::currentquery = $::db->prepare($str); $::currentquery->execute @@ -221,6 +230,10 @@ sub SendSQL { } sub MoreSQLData { + # $::ignorequery is set in SendSQL + if ($::ignorequery) { + return 0; + } if (defined @::fetchahead) { return 1; } @@ -231,6 +244,10 @@ sub MoreSQLData { } sub FetchSQLData { + # $::ignorequery is set in SendSQL + if ($::ignorequery) { + return; + } if (defined @::fetchahead) { my @result = @::fetchahead; undef @::fetchahead; diff --git a/query.cgi b/query.cgi index 067f76036..16c783864 100755 --- a/query.cgi +++ b/query.cgi @@ -533,8 +533,7 @@ ENDSCRIPT PutHeader("Bugzilla Query Page", "Query", "This page lets you search the database for recorded bugs.", - q{onLoad="selectProduct(document.forms[0]);"}, - 0, $jscript); + q{onLoad="selectProduct(document.forms[0]);"}, $jscript); push @::legal_resolution, "---"; # Oy, what a hack. -- cgit v1.2.3-24-g4f1b