From: bbaetz%acm.org <> Date: Sun, 9 Feb 2003 07:26:47 +0000 (+0000) Subject: Bug 192393 - $::dbwritesallowed never set X-Git-Tag: bugzilla-2.17.4~80 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=731b5775ed45d22398a6c7969bd62922853c3b4e;p=thirdparty%2Fbugzilla.git Bug 192393 - $::dbwritesallowed never set r, a=justdave --- diff --git a/Bugzilla.pm b/Bugzilla.pm index a45c5ca0fd..56d1f24cc7 100644 --- a/Bugzilla.pm +++ b/Bugzilla.pm @@ -46,7 +46,6 @@ sub cgi { my $_dbh; my $_dbh_main; my $_dbh_shadow; - sub dbh { my $class = shift; @@ -58,6 +57,17 @@ sub dbh { return $_dbh; } +sub dbwritesallowed { + my $class = shift; + + # We can write if we are connected to the main database. + # Note that if we don't have a shadowdb, then we claim that its ok + # to write even if we're nominally connected to the shadowdb. + # This is OK because this method is only used to test if misc + # updates can be done, rather than anything complicated. + return $class->dbh == $_dbh_main; +} + sub switch_to_shadow_db { my $class = shift; @@ -175,6 +185,12 @@ method for those scripts/templates which are only use via CGI, though. The current database handle. See L. +=item C + +Determines if writes to the database are permitted. This is usually used to +determine if some general cleanup needs to occur (such as clearing the token +table) + =item C Switch from using the main database to using the shadow database. diff --git a/CGI.pl b/CGI.pl index 61797ac44b..7ded11ef2e 100644 --- a/CGI.pl +++ b/CGI.pl @@ -611,7 +611,7 @@ Content-type: text/html # This seems like as good as time as any to get rid of old # crufty junk in the logincookies table. Get rid of any entry # that hasn't been used in a month. - if ($::dbwritesallowed) { + if (Bugzilla->dbwritesallowed) { SendSQL("DELETE FROM logincookies " . "WHERE TO_DAYS(NOW()) - TO_DAYS(lastused) > 30"); } @@ -620,7 +620,7 @@ Content-type: text/html } # Update the timestamp on our logincookie, so it'll keep on working. - if ($::dbwritesallowed) { + if (Bugzilla->dbwritesallowed) { SendSQL("UPDATE logincookies SET lastused = null " . "WHERE cookie = $::COOKIE{'Bugzilla_logincookie'}"); } diff --git a/globals.pl b/globals.pl index 1aee0bd02f..62fc1d6335 100644 --- a/globals.pl +++ b/globals.pl @@ -352,7 +352,7 @@ sub GetVersionTable { } if (time() - $mtime > 3600) { use Token; - Token::CleanTokenTable() if $::dbwritesallowed; + Token::CleanTokenTable() if Bugzilla->dbwritesallowed; GenerateVersionTable(); } require 'data/versioncache';