Commit 731b5775 authored by bbaetz%acm.org's avatar bbaetz%acm.org

Bug 192393 - $::dbwritesallowed never set

r, a=justdave
parent 3c5a0ebc
...@@ -46,7 +46,6 @@ sub cgi { ...@@ -46,7 +46,6 @@ sub cgi {
my $_dbh; my $_dbh;
my $_dbh_main; my $_dbh_main;
my $_dbh_shadow; my $_dbh_shadow;
sub dbh { sub dbh {
my $class = shift; my $class = shift;
...@@ -58,6 +57,17 @@ sub dbh { ...@@ -58,6 +57,17 @@ sub dbh {
return $_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 { sub switch_to_shadow_db {
my $class = shift; my $class = shift;
...@@ -175,6 +185,12 @@ method for those scripts/templates which are only use via CGI, though. ...@@ -175,6 +185,12 @@ method for those scripts/templates which are only use via CGI, though.
The current database handle. See L<DBI>. The current database handle. See L<DBI>.
=item C<dbwritesallowed>
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_to_shadow_db> =item C<switch_to_shadow_db>
Switch from using the main database to using the shadow database. Switch from using the main database to using the shadow database.
......
...@@ -611,7 +611,7 @@ Content-type: text/html ...@@ -611,7 +611,7 @@ Content-type: text/html
# This seems like as good as time as any to get rid of old # 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 # crufty junk in the logincookies table. Get rid of any entry
# that hasn't been used in a month. # that hasn't been used in a month.
if ($::dbwritesallowed) { if (Bugzilla->dbwritesallowed) {
SendSQL("DELETE FROM logincookies " . SendSQL("DELETE FROM logincookies " .
"WHERE TO_DAYS(NOW()) - TO_DAYS(lastused) > 30"); "WHERE TO_DAYS(NOW()) - TO_DAYS(lastused) > 30");
} }
...@@ -620,7 +620,7 @@ Content-type: text/html ...@@ -620,7 +620,7 @@ Content-type: text/html
} }
# Update the timestamp on our logincookie, so it'll keep on working. # Update the timestamp on our logincookie, so it'll keep on working.
if ($::dbwritesallowed) { if (Bugzilla->dbwritesallowed) {
SendSQL("UPDATE logincookies SET lastused = null " . SendSQL("UPDATE logincookies SET lastused = null " .
"WHERE cookie = $::COOKIE{'Bugzilla_logincookie'}"); "WHERE cookie = $::COOKIE{'Bugzilla_logincookie'}");
} }
......
...@@ -352,7 +352,7 @@ sub GetVersionTable { ...@@ -352,7 +352,7 @@ sub GetVersionTable {
} }
if (time() - $mtime > 3600) { if (time() - $mtime > 3600) {
use Token; use Token;
Token::CleanTokenTable() if $::dbwritesallowed; Token::CleanTokenTable() if Bugzilla->dbwritesallowed;
GenerateVersionTable(); GenerateVersionTable();
} }
require 'data/versioncache'; require 'data/versioncache';
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment