thomascube
2007-08-13 88f66ec89cf87328536757ac33e508a9614bdc09
Fix bugs introduced with latest changes

4 files modified
54 ■■■■■ changed files
CHANGELOG 6 ●●●●● patch | view | raw | blame | history
index.php 3 ●●●● patch | view | raw | blame | history
program/include/main.inc 24 ●●●●● patch | view | raw | blame | history
program/include/rcube_shared.inc 21 ●●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,12 @@
CHANGELOG RoundCube Webmail
---------------------------
2007/08/13 (thomasb)
----------
- Add alternative for getallheaders() (fix #1484508)
- Revert changes for mbstring usage (fix #1484509)
2007/08/10 (thomasb)
----------
- Identify mailboxes case-sensitive
index.php
@@ -221,8 +221,7 @@
// check client X-header to verify request origin
if ($OUTPUT->ajax_call)
{
  $hdrs = getallheaders();
  if (empty($hdrs['X-RoundCube-Referer']) && empty($CONFIG['devel_mode']))
  if (empty($CONFIG['devel_mode']) && !rc_request_header('X-RoundCube-Referer'))
  {
    header('HTTP/1.1 404 Not Found');
    die("Invalid Request");
program/include/main.inc
@@ -472,19 +472,11 @@
  static $s_mbstring_loaded = NULL;
  
  // settings for mbstring module (by Tadashi Jokagi)
  if (is_null($s_mbstring_loaded) && ($s_mbstring_loaded = extension_loaded("mbstring")))
  {
    $MBSTRING = array();
    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))
  if (is_null($s_mbstring_loaded))
    $MBSTRING = $s_mbstring_loaded = extension_loaded("mbstring");
  else
    $MBSTRING = $s_mbstring_loaded = FALSE;
  if ($MBSTRING)
    mb_internal_encoding(RCMAIL_CHARSET);
@@ -1057,7 +1049,6 @@
function rcube_charset_convert($str, $from, $to=NULL)
  {
  global $MBSTRING;
  static $mb_encodings;
  $from = strtoupper($from);
  $to = $to==NULL ? strtoupper(RCMAIL_CHARSET) : strtoupper($to);
@@ -1070,10 +1061,13 @@
    return iconv($from, $to . "//IGNORE", $str);
  // 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
    if (($out = mb_convert_encoding($str, $mbto, $mbfrom)) != '')
    if (($out = mb_convert_encoding($str, $to, $from)) != '')
      return $out;
    }
program/include/rcube_shared.inc
@@ -523,6 +523,27 @@
/**
 * 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 ...
 * if it is longer than the allowed length
 *