Fix bugs introduced with latest changes

release-0.6
thomascube 17 years ago
parent 8810b6db0f
commit 88f66ec89c

@ -1,6 +1,12 @@
CHANGELOG RoundCube Webmail CHANGELOG RoundCube Webmail
--------------------------- ---------------------------
2007/08/13 (thomasb)
----------
- Add alternative for getallheaders() (fix #1484508)
- Revert changes for mbstring usage (fix #1484509)
2007/08/10 (thomasb) 2007/08/10 (thomasb)
---------- ----------
- Identify mailboxes case-sensitive - Identify mailboxes case-sensitive

@ -221,8 +221,7 @@ if (empty($_SESSION['user_id']))
// check client X-header to verify request origin // check client X-header to verify request origin
if ($OUTPUT->ajax_call) if ($OUTPUT->ajax_call)
{ {
$hdrs = getallheaders(); if (empty($CONFIG['devel_mode']) && !rc_request_header('X-RoundCube-Referer'))
if (empty($hdrs['X-RoundCube-Referer']) && empty($CONFIG['devel_mode']))
{ {
header('HTTP/1.1 404 Not Found'); header('HTTP/1.1 404 Not Found');
die("Invalid Request"); die("Invalid Request");

@ -472,19 +472,11 @@ function rcmail_set_locale($lang)
static $s_mbstring_loaded = NULL; static $s_mbstring_loaded = NULL;
// settings for mbstring module (by Tadashi Jokagi) // settings for mbstring module (by Tadashi Jokagi)
if (is_null($s_mbstring_loaded) && ($s_mbstring_loaded = extension_loaded("mbstring"))) if (is_null($s_mbstring_loaded))
{ $MBSTRING = $s_mbstring_loaded = extension_loaded("mbstring");
$MBSTRING = array(); else
foreach (mb_list_encodings() as $charset)
$MBSTRING[strtoupper($charset)] = strtoupper($charset);
// add some alias charsets
$MBSTRING['UTF-7'] = "UTF7-IMAP";
$MBSTRING['WINDOWS-1257'] = "ISO-8859-13";
}
else if (is_null($s_mbstring_loaded))
$MBSTRING = $s_mbstring_loaded = FALSE; $MBSTRING = $s_mbstring_loaded = FALSE;
if ($MBSTRING) if ($MBSTRING)
mb_internal_encoding(RCMAIL_CHARSET); mb_internal_encoding(RCMAIL_CHARSET);
@ -1057,7 +1049,6 @@ function rcmail_message_cache_gc()
function rcube_charset_convert($str, $from, $to=NULL) function rcube_charset_convert($str, $from, $to=NULL)
{ {
global $MBSTRING; global $MBSTRING;
static $mb_encodings;
$from = strtoupper($from); $from = strtoupper($from);
$to = $to==NULL ? strtoupper(RCMAIL_CHARSET) : strtoupper($to); $to = $to==NULL ? strtoupper(RCMAIL_CHARSET) : strtoupper($to);
@ -1070,10 +1061,13 @@ function rcube_charset_convert($str, $from, $to=NULL)
return iconv($from, $to . "//IGNORE", $str); return iconv($from, $to . "//IGNORE", $str);
// convert charset using mbstring module // convert charset using mbstring module
if ($MBSTRING && ($mbfrom = $MBSTRING[$from]) && ($mbto = $MBSTRING[$to])) if ($MBSTRING)
{ {
$to = $to=="UTF-7" ? "UTF7-IMAP" : $to;
$from = $from=="UTF-7" ? "UTF7-IMAP": $from;
// return if convert succeeded // return if convert succeeded
if (($out = mb_convert_encoding($str, $mbto, $mbfrom)) != '') if (($out = mb_convert_encoding($str, $to, $from)) != '')
return $out; return $out;
} }

@ -522,6 +522,27 @@ function rc_strrpos($haystack, $needle, $offset=0)
} }
/**
* Read a specific HTTP request header
*
* @param string Header name
* @return string Header value or null if not available
*/
function rc_request_header($name)
{
if (function_exists('getallheaders'))
{
$hdrs = getallheaders();
return $hdrs[$name];
}
else
{
$key = "HTTP_" . strtoupper(strtr($name, "-", "_"));
return $_SERVER[$key];
}
}
/** /**
* Replace the middle part of a string with ... * Replace the middle part of a string with ...
* if it is longer than the allowed length * if it is longer than the allowed length

Loading…
Cancel
Save