Fix readcache.sh broken since the cache format change

This commit is contained in:
Aleksander Machniak 2020-09-02 14:21:35 +02:00
parent 40270f9d3f
commit d5d7ce7027

View file

@ -59,8 +59,9 @@ if (empty($folder) || empty($imap_host)) {
// connect to database // connect to database
$db = $rcmail->get_dbh(); $db = $rcmail->get_dbh();
$db->db_connect('r'); $db->db_connect('r');
if (!$db->is_connected() || $db->is_error()) if (!$db->is_connected() || $db->is_error()) {
die("No DB connection\n"); die("No DB connection\n");
}
// resolve folder_id // resolve folder_id
@ -105,11 +106,13 @@ $cache_table = $db->table_name('kolab_cache_' . $folder_data['type']);
$extra_cols_ = $extra_cols[$folder_data['type']] ?: array(); $extra_cols_ = $extra_cols[$folder_data['type']] ?: array();
$sql_arr = $db->fetch_assoc($db->query("SELECT COUNT(*) as cnt FROM `$cache_table` WHERE `folder_id`=?", intval($folder_id))); $sql_arr = $db->fetch_assoc($db->query("SELECT COUNT(*) as cnt FROM `$cache_table` WHERE `folder_id`=?", intval($folder_id)));
print "CTag = " . $folder_data['ctag'] . "\n"; print "CTag = " . $folder_data['ctag'] . "\n";
print "Lock = " . $folder_data['synclock'] . "\n"; print "Lock = " . $folder_data['synclock'] . "\n";
print "Count = " . $sql_arr['cnt'] . "\n"; print "Changed = " . $folder_data['changed'] . "\n";
print "ObjCount = " . $folder_data['objectcount'] . "\n";
print "Count = " . $sql_arr['cnt'] . "\n";
print "----------------------------------------------------------------------------------\n"; print "----------------------------------------------------------------------------------\n";
print "<MSG>\t<UUID>\t<CHANGED>\t<DATA>\t<XML>\t"; print "<MSG>\t<UUID>\t<CHANGED>\t<DATA>\t";
print join("\t", array_map(function($c) { return '<' . strtoupper($c) . '>'; }, $extra_cols_)); print join("\t", array_map(function($c) { return '<' . strtoupper($c) . '>'; }, $extra_cols_));
print "\n----------------------------------------------------------------------------------\n"; print "\n----------------------------------------------------------------------------------\n";
@ -118,12 +121,8 @@ while ($result && ($sql_arr = $db->fetch_assoc($result))) {
print $sql_arr['msguid'] . "\t" . $sql_arr['uid'] . "\t" . $sql_arr['changed']; print $sql_arr['msguid'] . "\t" . $sql_arr['uid'] . "\t" . $sql_arr['changed'];
// try to unserialize data block // try to unserialize data block
$object = @unserialize(@base64_decode($sql_arr['data'])); $object = json_decode($sql_arr['data']);
print "\t" . ($object === false ? 'FAIL!' : ($object['uid'] == $sql_arr['uid'] ? 'OK' : '!!!')); print "\t" . ($object === false ? 'FAIL!' : 'OK');
// check XML validity
$xml = simplexml_load_string($sql_arr['xml']);
print "\t" . ($xml === false ? 'FAIL!' : 'OK');
// print extra cols // print extra cols
array_walk($extra_cols_, function($c) use ($sql_arr) { array_walk($extra_cols_, function($c) use ($sql_arr) {