--- deliantra/Deliantra-Client/DC/DB.pm 2007/04/06 23:00:52 1.4 +++ deliantra/Deliantra-Client/DC/DB.pm 2007/07/05 10:15:17 1.8 @@ -19,7 +19,7 @@ use Carp (); use AnyEvent (); -use Storable (); # finally +use Storable (); use CFPlus; @@ -62,8 +62,9 @@ use Fcntl; use BerkeleyDB; +use Config; -our $DB_HOME = "$Crossfire::VARDIR/cfplus"; +our $DB_HOME = "$Crossfire::VARDIR/cfplus-$BerkeleyDB::db_version-$Config{archname}"; our $DB_ENV; our $DB_STATE; our %DB_TABLE; @@ -181,6 +182,7 @@ sub do_get { my ($db, $key) = @_; + utf8::downgrade $key; my $data; (table $db)->db_get ($key, $data) == 0 ? $data @@ -190,6 +192,8 @@ sub do_put { my ($db, $key, $data) = @_; + utf8::downgrade $key; + utf8::downgrade $data; (table $db)->db_put ($key => $data) } @@ -247,7 +251,7 @@ close $FH; unless (eval { open_db }) { - File::Path::rmtree $DB_HOME; + eval { File::Path::rmtree $DB_HOME }; open_db; } @@ -291,6 +295,10 @@ sync_tick; } +sub stop { + close $FH; +} + 1; =back