summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--program/include/rcube_content_filter.php55
-rw-r--r--program/include/rcube_html_page.php44
-rw-r--r--program/include/rcube_imap_cache.php48
3 files changed, 88 insertions, 59 deletions
diff --git a/program/include/rcube_content_filter.php b/program/include/rcube_content_filter.php
index 430defec6..cde02ebdb 100644
--- a/program/include/rcube_content_filter.php
+++ b/program/include/rcube_content_filter.php
@@ -23,33 +23,34 @@
*/
class rcube_content_filter extends php_user_filter
{
- private $buffer = '';
- private $cutoff = 2048;
-
- function onCreate()
- {
- $this->cutoff = rand(2048, 3027);
- return true;
- }
-
- function filter($in, $out, &$consumed, $closing)
- {
- while ($bucket = stream_bucket_make_writeable($in)) {
- $this->buffer .= $bucket->data;
-
- // check for evil content and abort
- if (preg_match('/<(script|iframe|object)/i', $this->buffer))
- return PSFS_ERR_FATAL;
-
- // keep buffer small enough
- if (strlen($this->buffer) > 4096)
- $this->buffer = substr($this->buffer, $this->cutoff);
-
- $consumed += $bucket->datalen;
- stream_bucket_append($out, $bucket);
+ private $buffer = '';
+ private $cutoff = 2048;
+
+ function onCreate()
+ {
+ $this->cutoff = rand(2048, 3027);
+ return true;
}
- return PSFS_PASS_ON;
- }
-}
+ function filter($in, $out, &$consumed, $closing)
+ {
+ while ($bucket = stream_bucket_make_writeable($in)) {
+ $this->buffer .= $bucket->data;
+
+ // check for evil content and abort
+ if (preg_match('/<(script|iframe|object)/i', $this->buffer)) {
+ return PSFS_ERR_FATAL;
+ }
+
+ // keep buffer small enough
+ if (strlen($this->buffer) > 4096) {
+ $this->buffer = substr($this->buffer, $this->cutoff);
+ }
+ $consumed += $bucket->datalen;
+ stream_bucket_append($out, $bucket);
+ }
+
+ return PSFS_PASS_ON;
+ }
+}
diff --git a/program/include/rcube_html_page.php b/program/include/rcube_html_page.php
index 7d48168ef..ac4fc0b30 100644
--- a/program/include/rcube_html_page.php
+++ b/program/include/rcube_html_page.php
@@ -52,9 +52,13 @@ class rcube_html_page
public function include_script($file, $position='head')
{
static $sa_files = array();
-
- if (!preg_match('|^https?://|i', $file) && $file[0] != '/')
- $file = $this->scripts_path . $file . (($fs = @filemtime($this->scripts_path . $file)) ? '?s='.$fs : '');
+
+ if (!preg_match('|^https?://|i', $file) && $file[0] != '/') {
+ $file = $this->scripts_path . $file;
+ if ($fs = @filemtime($file)) {
+ $file .= '?s=' . $fs;
+ }
+ }
if (in_array($file, $sa_files)) {
return;
@@ -65,6 +69,7 @@ class rcube_html_page
if (!is_array($this->script_files[$position])) {
$this->script_files[$position] = array();
}
+
$this->script_files[$position][] = $file;
}
@@ -77,9 +82,10 @@ class rcube_html_page
public function add_script($script, $position='head')
{
if (!isset($this->scripts[$position])) {
- $this->scripts[$position] = "\n".rtrim($script);
- } else {
- $this->scripts[$position] .= "\n".rtrim($script);
+ $this->scripts[$position] = "\n" . rtrim($script);
+ }
+ else {
+ $this->scripts[$position] .= "\n" . rtrim($script);
}
}
@@ -100,7 +106,7 @@ class rcube_html_page
*/
public function add_header($str)
{
- $this->header .= "\n".$str;
+ $this->header .= "\n" . $str;
}
/**
@@ -111,7 +117,7 @@ class rcube_html_page
*/
public function add_footer($str)
{
- $this->footer .= "\n".$str;
+ $this->footer .= "\n" . $str;
}
/**
@@ -262,7 +268,8 @@ class rcube_html_page
) {
$css = '';
foreach ($this->css_files as $file) {
- $css .= html::tag('link', array('rel' => 'stylesheet', 'type' => 'text/css', 'href' => $file, 'nl' => true));
+ $css .= html::tag('link', array('rel' => 'stylesheet',
+ 'type' => 'text/css', 'href' => $file, 'nl' => true));
}
$output = substr_replace($output, $css, $pos, 0);
}
@@ -279,10 +286,12 @@ class rcube_html_page
// trigger hook with final HTML content to be sent
$hook = rcmail::get_instance()->plugins->exec_hook("send_page", array('content' => $output));
if (!$hook['abort']) {
- if ($this->charset != RCMAIL_CHARSET)
+ if ($this->charset != RCMAIL_CHARSET) {
echo rcube_charset_convert($hook['content'], RCMAIL_CHARSET, $this->charset);
- else
+ }
+ else {
echo $hook['content'];
+ }
}
}
@@ -296,14 +305,17 @@ class rcube_html_page
$file = $matches[3];
// correct absolute paths
- if ($file[0] == '/')
+ if ($file[0] == '/') {
$file = $this->base_path . $file;
+ }
// add file modification timestamp
- if (preg_match('/\.(js|css)$/', $file))
- $file .= '?s=' . @filemtime($file);
+ if (preg_match('/\.(js|css)$/', $file)) {
+ if ($fs = @filemtime($file)) {
+ $file .= '?s=' . $fs;
+ }
+ }
- return sprintf("%s=%s%s%s", $matches[1], $matches[2], $file, $matches[4]);
+ return $matches[1] . '=' . $matches[2] . $file . $matches[4];
}
}
-
diff --git a/program/include/rcube_imap_cache.php b/program/include/rcube_imap_cache.php
index 58336da4e..5eca539ac 100644
--- a/program/include/rcube_imap_cache.php
+++ b/program/include/rcube_imap_cache.php
@@ -120,8 +120,9 @@ class rcube_imap_cache
*/
function get_index($mailbox, $sort_field = null, $sort_order = null, $existing = false)
{
- if (empty($this->icache[$mailbox]))
+ if (empty($this->icache[$mailbox])) {
$this->icache[$mailbox] = array();
+ }
$sort_order = strtoupper($sort_order) == 'ASC' ? 'ASC' : 'DESC';
@@ -226,8 +227,9 @@ class rcube_imap_cache
*/
function get_thread($mailbox)
{
- if (empty($this->icache[$mailbox]))
+ if (empty($this->icache[$mailbox])) {
$this->icache[$mailbox] = array();
+ }
// Seek in internal cache
if (array_key_exists('thread', $this->icache[$mailbox])) {
@@ -404,16 +406,19 @@ class rcube_imap_cache
*/
function add_message($mailbox, $message, $force = false)
{
- if (!is_object($message) || empty($message->uid))
+ if (!is_object($message) || empty($message->uid)) {
return;
+ }
$msg = serialize($this->db->encode(clone $message));
$flags = 0;
if (!empty($message->flags)) {
- foreach ($this->flags as $idx => $flag)
- if (!empty($message->flags[$flag]))
+ foreach ($this->flags as $idx => $flag) {
+ if (!empty($message->flags[$flag])) {
$flags += $idx;
+ }
+ }
}
unset($msg->flags);
@@ -428,8 +433,9 @@ class rcube_imap_cache
." AND uid = ?",
$flags, $msg, $this->userid, $mailbox, (int) $message->uid);
- if ($this->db->affected_rows())
+ if ($this->db->affected_rows()) {
return;
+ }
}
// insert new record
@@ -524,27 +530,30 @@ class rcube_imap_cache
// The index should be only removed from database when
// UIDVALIDITY was detected or the mailbox is empty
// otherwise use 'valid' flag to not loose HIGHESTMODSEQ value
- if ($remove)
+ if ($remove) {
$this->db->query(
"DELETE FROM ".get_table_name('cache_index')
." WHERE user_id = ".intval($this->userid)
.(strlen($mailbox) ? " AND mailbox = ".$this->db->quote($mailbox) : "")
);
- else
+ }
+ else {
$this->db->query(
"UPDATE ".get_table_name('cache_index')
." SET valid = 0"
." WHERE user_id = ".intval($this->userid)
.(strlen($mailbox) ? " AND mailbox = ".$this->db->quote($mailbox) : "")
);
+ }
if (strlen($mailbox)) {
unset($this->icache[$mailbox]['index']);
// Index removed, set flag to skip SELECT query in get_index()
$this->icache[$mailbox]['index_queried'] = true;
}
- else
+ else {
$this->icache = array();
+ }
}
@@ -566,8 +575,9 @@ class rcube_imap_cache
// Thread data removed, set flag to skip SELECT query in get_thread()
$this->icache[$mailbox]['thread_queried'] = true;
}
- else
+ else {
$this->icache = array();
+ }
}
@@ -672,19 +682,21 @@ class rcube_imap_cache
);
$data = implode('@', $data);
- if ($exists)
+ if ($exists) {
$sql_result = $this->db->query(
"UPDATE ".get_table_name('cache_index')
." SET data = ?, valid = 1, changed = ".$this->db->now()
." WHERE user_id = ?"
." AND mailbox = ?",
$data, $this->userid, $mailbox);
- else
+ }
+ else {
$sql_result = $this->db->query(
"INSERT INTO ".get_table_name('cache_index')
." (user_id, mailbox, data, valid, changed)"
." VALUES (?, ?, ?, 1, ".$this->db->now().")",
$this->userid, $mailbox, $data);
+ }
}
@@ -701,19 +713,21 @@ class rcube_imap_cache
);
$data = implode('@', $data);
- if ($exists)
+ if ($exists) {
$sql_result = $this->db->query(
"UPDATE ".get_table_name('cache_thread')
." SET data = ?, changed = ".$this->db->now()
." WHERE user_id = ?"
." AND mailbox = ?",
$data, $this->userid, $mailbox);
- else
+ }
+ else {
$sql_result = $this->db->query(
"INSERT INTO ".get_table_name('cache_thread')
." (user_id, mailbox, data, changed)"
." VALUES (?, ?, ?, ".$this->db->now().")",
$this->userid, $mailbox, $data);
+ }
}
@@ -1023,9 +1037,11 @@ class rcube_imap_cache
if ($message) {
$message->flags = array();
- foreach ($this->flags as $idx => $flag)
- if (($sql_arr['flags'] & $idx) == $idx)
+ foreach ($this->flags as $idx => $flag) {
+ if (($sql_arr['flags'] & $idx) == $idx) {
$message->flags[$flag] = true;
+ }
+ }
}
return $message;