summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2008-05-14 21:08:28 +0000
committerAndreas Brachold <vdr07@deltab.de>2008-05-14 21:08:28 +0000
commitd68d98fa943d0eba896e5d216c809b5818ec4fb4 (patch)
tree6f324ada83ef9c5fb0433b7f6381f55780940e0d /lib
parent45a83ae70347e03cec97821a8bc55c3d04574d05 (diff)
downloadxxv-d68d98fa943d0eba896e5d216c809b5818ec4fb4.tar.gz
xxv-d68d98fa943d0eba896e5d216c809b5818ec4fb4.tar.bz2
* Losing mysql connection if process fork
Diffstat (limited to 'lib')
-rw-r--r--lib/XXV/MODULES/MUSIC.pm31
-rw-r--r--lib/XXV/OUTPUT/Html.pm1
2 files changed, 15 insertions, 17 deletions
diff --git a/lib/XXV/MODULES/MUSIC.pm b/lib/XXV/MODULES/MUSIC.pm
index ad705cc..ae07897 100644
--- a/lib/XXV/MODULES/MUSIC.pm
+++ b/lib/XXV/MODULES/MUSIC.pm
@@ -1159,30 +1159,27 @@ sub ConnectToMuggleDB {
my $usr = main::getGeneralConfig->{USR};
my $pwd = main::getGeneralConfig->{PWD};
+ my $charset = $obj->{charset};
my $mdbh = DBI->connect(
$dsn, $usr, $pwd,
{ PrintError => 1,
AutoCommit => 1,
+ mysql_enable_utf8 => ($charset =~ m/UTF-8/ ? 1 : 0),
+ mysql_auto_reconnect => 1
}) || error($DBI::errstr);
if($mdbh) {
- my $charset = $obj->{charset};
- if ($charset) {
- my $NAMES = {
- 'UTF-8' => 'utf8',
- 'ISO-8859-1' => 'latin1',
- 'ISO-8859-2' => 'latin2',
- 'ISO-8859-5' => 'latin5',
- 'ISO-8859-7' => 'latin7',
- 'ISO-8859-15' => 'latin1',
- };
- my $n = $NAMES->{$charset} || 'latin1';
- if (!($mdbh->do("SET NAMES '" . $n . "'"))) {
- panic sprintf("Could not set charset: %s :", $n, $DBI::errstr);
- }
- $mdbh->{'mysql_enable_utf8'} = 1 if($n eq 'utf8');
+ my $NAMES = {
+ 'UTF-8' => 'utf8',
+ 'ISO-8859-1' => 'latin1',
+ 'ISO-8859-2' => 'latin2',
+ 'ISO-8859-5' => 'latin5',
+ 'ISO-8859-7' => 'latin7',
+ 'ISO-8859-15' => 'latin1',
+ };
+ my $n = $NAMES->{$charset} || 'latin1';
+ if (!($mdbh->do("set character set '" . $n . "'"))) {
+ panic sprintf("Could not set charset: %s :", $n, $DBI::errstr);
}
- $mdbh->{InactiveDestroy} = 1;
- $mdbh->{mysql_auto_reconnect} = 1;
debug sprintf('Connect to database: %s successful.', $dsn);
return $mdbh;
} else {
diff --git a/lib/XXV/OUTPUT/Html.pm b/lib/XXV/OUTPUT/Html.pm
index 1b0ece7..254c26d 100644
--- a/lib/XXV/OUTPUT/Html.pm
+++ b/lib/XXV/OUTPUT/Html.pm
@@ -715,6 +715,7 @@ sub _stream {
return 1;
}
elsif ($child == 0) {
+ $self->{dbh}->{InactiveDestroy} = 1;
eval
{
local $SIG{'__DIE__'};