|
|
|
@ -136,26 +136,24 @@ function rcmail_url($action, $p=array(), $task=null)
|
|
|
|
|
* Remove temp files older than two days
|
|
|
|
|
*/
|
|
|
|
|
function rcmail_temp_gc()
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
$rcmail = rcmail::get_instance();
|
|
|
|
|
|
|
|
|
|
$tmp = unslashify($rcmail->config->get('temp_dir'));
|
|
|
|
|
$expire = mktime() - 172800; // expire in 48 hours
|
|
|
|
|
|
|
|
|
|
if ($dir = opendir($tmp))
|
|
|
|
|
{
|
|
|
|
|
while (($fname = readdir($dir)) !== false)
|
|
|
|
|
{
|
|
|
|
|
if ($dir = opendir($tmp)) {
|
|
|
|
|
while (($fname = readdir($dir)) !== false) {
|
|
|
|
|
if ($fname{0} == '.')
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
if (filemtime($tmp.'/'.$fname) < $expire)
|
|
|
|
|
@unlink($tmp.'/'.$fname);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
closedir($dir);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -164,7 +162,7 @@ function rcmail_temp_gc()
|
|
|
|
|
* @return void
|
|
|
|
|
*/
|
|
|
|
|
function rcmail_cache_gc()
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
$rcmail = rcmail::get_instance();
|
|
|
|
|
$db = $rcmail->get_dbh();
|
|
|
|
|
|
|
|
|
@ -176,7 +174,7 @@ function rcmail_cache_gc()
|
|
|
|
|
|
|
|
|
|
$db->query("DELETE FROM ".get_table_name('cache')."
|
|
|
|
|
WHERE created < " . $db->fromunixtime($ts));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -186,9 +184,9 @@ function rcmail_cache_gc()
|
|
|
|
|
* @param string Error message
|
|
|
|
|
*/
|
|
|
|
|
function rcube_error_handler($errno, $errstr)
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
throw new ErrorException($errstr, 0, $errno);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -201,11 +199,10 @@ function rcube_error_handler($errno, $errstr)
|
|
|
|
|
* @return string Converted string
|
|
|
|
|
*/
|
|
|
|
|
function rcube_charset_convert($str, $from, $to=NULL)
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
static $iconv_options = null;
|
|
|
|
|
static $mbstring_loaded = null;
|
|
|
|
|
static $mbstring_list = null;
|
|
|
|
|
static $convert_warning = false;
|
|
|
|
|
static $conv = null;
|
|
|
|
|
|
|
|
|
|
$error = false;
|
|
|
|
@ -310,22 +307,9 @@ function rcube_charset_convert($str, $from, $to=NULL)
|
|
|
|
|
$error = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// report error
|
|
|
|
|
if ($error && !$convert_warning) {
|
|
|
|
|
raise_error(array(
|
|
|
|
|
'code' => 500,
|
|
|
|
|
'type' => 'php',
|
|
|
|
|
'file' => __FILE__,
|
|
|
|
|
'line' => __LINE__,
|
|
|
|
|
'message' => "Could not convert string from $from to $to. Make sure iconv/mbstring is installed or lib/utf8.class is available."
|
|
|
|
|
), true, false);
|
|
|
|
|
|
|
|
|
|
$convert_warning = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// return UTF-8 or original string
|
|
|
|
|
return $str;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -337,7 +321,7 @@ function rcube_charset_convert($str, $from, $to=NULL)
|
|
|
|
|
* @return string The validated charset name
|
|
|
|
|
*/
|
|
|
|
|
function rcube_parse_charset($input)
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
static $charsets = array();
|
|
|
|
|
$charset = strtoupper($input);
|
|
|
|
|
|
|
|
|
@ -404,11 +388,11 @@ function rcube_parse_charset($input)
|
|
|
|
|
// some clients sends windows-1252 text as latin1,
|
|
|
|
|
// it is safe to use windows-1252 for all latin1
|
|
|
|
|
$result = $iso == 'ISO-8859-1' ? 'WINDOWS-1252' : $iso;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// handle broken charset names e.g. WINDOWS-1250HTTP-EQUIVCONTENT-TYPE
|
|
|
|
|
else if (preg_match('/(WIN|WINDOWS)([0-9]+)/', $str, $m)) {
|
|
|
|
|
$result = 'WINDOWS-' . $m[2];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// LATIN
|
|
|
|
|
else if (preg_match('/LATIN(.*)/', $str, $m)) {
|
|
|
|
|
$aliases = array('2' => 2, '3' => 3, '4' => 4, '5' => 9, '6' => 10,
|
|
|
|
@ -419,24 +403,24 @@ function rcube_parse_charset($input)
|
|
|
|
|
// it is safe to use windows-1252 for all latin1
|
|
|
|
|
if ($m[1] == 1) {
|
|
|
|
|
$result = 'WINDOWS-1252';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// if iconv is not supported we need ISO labels, it's also safe for iconv
|
|
|
|
|
else if (!empty($aliases[$m[1]])) {
|
|
|
|
|
$result = 'ISO-8859-'.$aliases[$m[1]];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// iconv requires convertion of e.g. LATIN-1 to LATIN1
|
|
|
|
|
else {
|
|
|
|
|
$result = $str;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
$result = $charset;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$charsets[$input] = $result;
|
|
|
|
|
|
|
|
|
|
return $result;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|