From a1237bf6ab110d7f070218ded67f36d4d7b5a605 Mon Sep 17 00:00:00 2001 From: Christoph Wickert (Kolab Systems) Date: Sun, 18 Nov 2012 14:54:37 +0100 Subject: [PATCH 1/2] Switch from gdbm to db4 for freebusy cache (#1285 and OTRS #1000025) --- .../freebusy/freebusycache.class.php | 8 ++++---- .../generate_pfbcache.pl | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/files/var/lib/univention-kolab2-framework/freebusy/freebusycache.class.php b/files/var/lib/univention-kolab2-framework/freebusy/freebusycache.class.php index 0478a2b..f6aeb49 100644 --- a/files/var/lib/univention-kolab2-framework/freebusy/freebusycache.class.php +++ b/files/var/lib/univention-kolab2-framework/freebusy/freebusycache.class.php @@ -40,7 +40,7 @@ class FreeBusyCache { // false data means delete the pfb unlink($fbfilename); $oldacl = $this->loadACL( $filename ); - $db = dba_open( '/var/www/freebusy/cache/pfbcache.db', 'cd', 'gdbm' ); + $db = dba_open( '/var/www/freebusy/cache/pfbcache.db', 'cd', 'db4' ); if( $db === false ) return false; foreach( $oldacl as $ac ) { if( dba_exists( $ac['USER'], $db ) ) { @@ -87,7 +87,7 @@ class FreeBusyCache { default: $perm = 'a'; } - $db = dba_open( '/var/www/freebusy/cache/pfbcache.db', 'cd', 'gdbm' ); + $db = dba_open( '/var/www/freebusy/cache/pfbcache.db', 'cd', 'db4' ); if( $db === false ) { myLog('Unable to open freebusy cache db '.'/var/www/freebusy/cache/pfbcache.db', RM_LOG_ERROR ); @@ -139,7 +139,7 @@ class FreeBusyCache { $fbfilename = $this->mkfbfilename($filename); unlink($fbfilename); unlink($this->mkaclfilename($filename)); - $db = dba_open( '/var/www/freebusy/cache/pfbcache.db', 'cd', 'gdbm' ); + $db = dba_open( '/var/www/freebusy/cache/pfbcache.db', 'cd', 'db4' ); if( $db === false ) return false; for( $uid = dba_firstkey($db); $uid !== false; $uid = dba_nextkey($db)) { $lst = dba_fetch( $uid, $db ); @@ -153,7 +153,7 @@ class FreeBusyCache { function findAll( $uid, $groups ) { $lst = array(); - $db = dba_open( '/var/www/freebusy/cache/pfbcache.db', 'rd', 'gdbm' ); + $db = dba_open( '/var/www/freebusy/cache/pfbcache.db', 'rd', 'db4' ); if( $db === false ) return false; $uids = $groups; for( $i = 0; $i < count($uids); $i++ ) $uids[$i] = 'group:'.$uids[$i]; diff --git a/files/var/lib/univention-kolab2-framework/generate_pfbcache.pl b/files/var/lib/univention-kolab2-framework/generate_pfbcache.pl index deace00..83d809b 100644 --- a/files/var/lib/univention-kolab2-framework/generate_pfbcache.pl +++ b/files/var/lib/univention-kolab2-framework/generate_pfbcache.pl @@ -1,8 +1,8 @@ #!/usr/bin/perl -use GDBM_File; -tie(my %STORE, 'GDBM_File', "/var/www/freebusy/cache/pfbcache.db", -&GDBM_WRCREAT, 0644) || die "Cannot create GDBM +use DB_File; +tie(my %STORE, 'DB_File', "/var/www/freebusy/cache/pfbcache.db", +O_CREAT|O_RDWR, 0644) || die "Cannot create DB4 file /var/www/freebusy/cache/pfbcache.db"; untie(%STORE); -- 1.7.2.5