From e45b0d7226ce63c307c6ac56f8f3bb17f0bd357b Mon Sep 17 00:00:00 2001 From: Adirelle Date: Mon, 14 Nov 2011 11:49:34 +0100 Subject: [PATCH] More error handling. --- Redmine.pm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Redmine.pm b/Redmine.pm index 4e5e402..03931ad 100644 --- a/Redmine.pm +++ b/Redmine.pm @@ -325,7 +325,9 @@ sub authen_handler { } else { # Else check them - my $dbh = connect_database($r); + my $dbh = connect_database($r) + or return SERVER_ERROR; + ($res, $reason) = check_login($r, $dbh, $password); $dbh->disconnect(); @@ -334,7 +336,9 @@ sub authen_handler { } } elsif($res == AUTH_REQUIRED) { - my $dbh = connect_database($r); + my $dbh = connect_database($r) + or return SERVER_ERROR; + my $cfg = get_config($r); if(!$cfg->{AllowAnonymous} || is_authentication_forced($dbh)) { @@ -566,7 +570,10 @@ sub connect_database { my $r = shift; my $cfg = get_config($r); - return DBI->connect($cfg->{DSN}, $cfg->{DbUser}, $cfg->{DbPass}); + my $dbh = DBI->connect($cfg->{DSN}, $cfg->{DbUser}, $cfg->{DbPass}) + or $r->log->error("Connection to database failed: $DBI::errstr."); + + return $dbh; } # tell if a value returned from SQL is "true"