/usr/share/IlohaMail/include/cache.DB.inc is in ilohamail 0.8.14-0rc3sid6.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | <?php
/////////////////////////////////////////////////////////
//
// include/cache.FS.inc
//
// (C)Copyright 2003 Ryo Chijiiwa <Ryo@IlohaMail.org>
//
// This file is part of IlohaMail, and released under GPL.
// See COPYING, or http://www.fsf.org/copyleft/gpl.html
//
/////////////////////////////////////////////////////////
/********************************************************
PURPOSE: Unified interface to read/write cache
********************************************************/
$EXISTING_CACHES = array();
$CACHE_ERROR = "";
function cache_read($user, $host, $key){
global $DB_CACHE_TABLE;
global $EXISTING_CACHES;
global $session_dataID;
$db = new idba_obj;
if (!$db->connect()) return false;
$data = false;
$sql = "SELECT * FROM $DB_CACHE_TABLE WHERE owner='$session_dataID' and cache_key='$key'";
$result = $db->query($sql);
if (($result) && ($db->num_rows($result)>0)){
$a = $db->fetch_row($result);
$data = unserialize($a["cache_data"]);
$EXISTING_CACHES[$key] = $a["id"];
}else{
$result = false;
$EXISTING_CACHES[$key] = false;
}
return $data;
}
function cache_write($user, $host, $key, $data, $volatile=true){
global $DB_CACHE_TABLE;
global $session_dataID;
global $CACHE_ERROR;
$db = new idba_obj;
if (!$db->connect()) return false;
if (!$EXISTING_CACHES[$key]){
$sql = "SELECT id FROM $DB_CACHE_TABLE WHERE owner='$session_dataID' and cache_key='$key'";
$result = $db->query($sql);
if (($result) && ($db->num_rows($result)>0)){
$a = $db->fetch_row($result);
$EXISTING_CACHES[$key] = $a["id"];
}else{
$EXISTING_CACHES[$key] = false;
}
}
$data = serialize($data);
if ($EXISTING_CACHES[$key]){
$id = $EXISTING_CACHES[$key];
$ownerID = $session_dataID;
$sql = "UPDATE $DB_CACHE_TABLE SET cache_data='$data',volatile='$volatile' WHERE id='$id' AND owner='$session_dataID'";
$result = $db->query($sql);
}else{
$ownerID = $session_dataID;
$sql = "INSERT INTO $DB_CACHE_TABLE (owner, cache_key, cache_data, cache_ts, volatile) ";
$sql.= "VALUES ('$session_dataID', '$key', '$data', '".time()."', '$volatile')";
$result = $db->query($sql);
}
if (!$result) $CACHE_ERROR = $db->error();
return $result;
}
function cache_clear($user, $host, $key){
global $DB_CACHE_TABLE;
global $session_dataID;
global $CACHE_ERROR;
$db = new idba_obj;
if (!$db->connect()) return false;
$sql = "UPDATE $DB_CACHE_TABLE SET cache_data='' WHERE owner='$session_dataID' and cache_key=$key'";
$result = $db->query($sql);
if (!$result) $CACHE_ERROR = $db->error();
return $result;
}
function cache_clear_all($user, $host){
global $session_dataID;
global $DB_CACHE_TABLE;
$db = new idba_obj;
if (!$db->connect()) return false;
$expire = time() - (60 * 60 * 24 * 30); //timestamp 30 days ago
$sql = "DELETE FROM $DB_CACHE_TABLE ";
$sql.= " WHERE (owner='$session_dataID' and volatile='1')";
$sql.= " OR (cache_ts < '$expire' and volatile='1')";
return $db->query($sql);
}
?>
|