diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2008-05-14 21:08:28 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2008-05-14 21:08:28 +0000 |
| commit | d68d98fa943d0eba896e5d216c809b5818ec4fb4 (patch) | |
| tree | 6f324ada83ef9c5fb0433b7f6381f55780940e0d /lib | |
| parent | 45a83ae70347e03cec97821a8bc55c3d04574d05 (diff) | |
| download | xxv-d68d98fa943d0eba896e5d216c809b5818ec4fb4.tar.gz xxv-d68d98fa943d0eba896e5d216c809b5818ec4fb4.tar.bz2 | |
* Losing mysql connection if process fork
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/XXV/MODULES/MUSIC.pm | 31 | ||||
| -rw-r--r-- | lib/XXV/OUTPUT/Html.pm | 1 |
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__'}; |
