cvsserver: Corrections to the database backend configuration

Don't include the scheme name in gitcvs.dbdriver, it is
always 'dbi' anyway.

Don't allow ':' in driver names nor ';' in database names for
sanity reasons.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Frank Lichtenheld 2007-04-07 16:58:09 +02:00 committed by Junio C Hamano
parent 0cf611a300
commit 473937ed44

View File

@ -2149,7 +2149,7 @@ sub new
die "Git repo '$self->{git_path}' doesn't exist" unless ( -d $self->{git_path} ); die "Git repo '$self->{git_path}' doesn't exist" unless ( -d $self->{git_path} );
$self->{dbdriver} = $cfg->{gitcvs}{$state->{method}}{dbdriver} || $self->{dbdriver} = $cfg->{gitcvs}{$state->{method}}{dbdriver} ||
$cfg->{gitcvs}{dbdriver} || "dbi:SQLite"; $cfg->{gitcvs}{dbdriver} || "SQLite";
$self->{dbname} = $cfg->{gitcvs}{$state->{method}}{dbname} || $self->{dbname} = $cfg->{gitcvs}{$state->{method}}{dbname} ||
$cfg->{gitcvs}{dbname} || "%Ggitcvs.%m.sqlite"; $cfg->{gitcvs}{dbname} || "%Ggitcvs.%m.sqlite";
$self->{dbuser} = $cfg->{gitcvs}{$state->{method}}{dbuser} || $self->{dbuser} = $cfg->{gitcvs}{$state->{method}}{dbuser} ||
@ -2165,7 +2165,9 @@ sub new
$self->{dbname} =~ s/%([mauGg])/$mapping{$1}/eg; $self->{dbname} =~ s/%([mauGg])/$mapping{$1}/eg;
$self->{dbuser} =~ s/%([mauGg])/$mapping{$1}/eg; $self->{dbuser} =~ s/%([mauGg])/$mapping{$1}/eg;
$self->{dbh} = DBI->connect("$self->{dbdriver}:dbname=$self->{dbname}", die "Invalid char ':' in dbdriver" if $self->{dbdriver} =~ /:/;
die "Invalid char ';' in dbname" if $self->{dbname} =~ /;/;
$self->{dbh} = DBI->connect("dbi:$self->{dbdriver}:dbname=$self->{dbname}",
$self->{dbuser}, $self->{dbuser},
$self->{dbpass}); $self->{dbpass});
die "Error connecting to database\n" unless defined $self->{dbh}; die "Error connecting to database\n" unless defined $self->{dbh};