diff options
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | config/main.inc.php.dist | 6 | ||||
-rw-r--r-- | installer/rcube_install.php | 3 | ||||
-rw-r--r-- | program/include/rcmail.php | 4 | ||||
-rw-r--r-- | program/include/rcube_config.php | 2 | ||||
-rw-r--r-- | program/js/app.js | 5 | ||||
-rw-r--r-- | program/steps/settings/func.inc | 16 | ||||
-rw-r--r-- | program/steps/settings/save_prefs.inc | 8 |
8 files changed, 22 insertions, 23 deletions
@@ -3,6 +3,7 @@ CHANGELOG Roundcube Webmail - Improved keep-alive action. Now the interval is based on session_lifetime (#1488507) - Added cross-task 'refresh' request for system state updates (#1488507) +- Renamed config options: keep_alive to refresh_interval, min_keep_alive to min_refresh_interval - Fix AREA links handling (#1488792) - Better client-side timezone detection using the jsTimezoneDetect library (#1488725) - Fix possible HTTP DoS on error in keep-alive requests (#1488782) diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist index 64312b6a9..1b7ae5a54 100644 --- a/config/main.inc.php.dist +++ b/config/main.inc.php.dist @@ -498,8 +498,8 @@ $rcmail_config['recipients_separator'] = ','; // don't let users set pagesize to more than this value if set $rcmail_config['max_pagesize'] = 200; -// Minimal value of user's 'keep_alive' setting (in seconds) -$rcmail_config['min_keep_alive'] = 60; +// Minimal value of user's 'refresh_interval' setting (in seconds) +$rcmail_config['min_refresh_interval'] = 60; // Enables files upload indicator. Requires APC installed and enabled apc.rfc1867 option. // By default refresh time is set to 1 second. You can set this value to true @@ -781,7 +781,7 @@ $rcmail_config['flag_for_deletion'] = false; // Default interval for auto-refresh requests (in seconds) // These are requests for system state updates e.g. checking for new messages, etc. // Setting it to 0 disables the feature. -$rcmail_config['keep_alive'] = 60; +$rcmail_config['refresh_interval'] = 60; // If true all folders will be checked for recent messages $rcmail_config['check_all_folders'] = false; diff --git a/installer/rcube_install.php b/installer/rcube_install.php index d1dce9d0e..06c57c0ac 100644 --- a/installer/rcube_install.php +++ b/installer/rcube_install.php @@ -342,9 +342,6 @@ class rcube_install } } - if ($current['keep_alive'] && $current['session_lifetime'] < $current['keep_alive']) - $current['session_lifetime'] = max(10, ceil($current['keep_alive'] / 60) * 2); - $this->config = array_merge($this->config, $current); foreach ((array)$current['ldap_public'] as $key => $values) { diff --git a/program/include/rcmail.php b/program/include/rcmail.php index 04b87e48c..99a68e81d 100644 --- a/program/include/rcmail.php +++ b/program/include/rcmail.php @@ -317,8 +317,8 @@ class rcmail extends rcube if (!($this->output instanceof rcube_output_html)) $this->output = new rcube_output_html($this->task, $framed); - // set keep-alive interval - $this->output->set_env('keep_alive', $this->config->get('keep_alive', 0)); + // set refresh interval + $this->output->set_env('refresh_interval', $this->config->get('refresh_interval', 0)); $this->output->set_env('session_lifetime', $this->config->get('session_lifetime', 0) * 60); if ($framed) { diff --git a/program/include/rcube_config.php b/program/include/rcube_config.php index 1f165ba4a..bbc3e9c6e 100644 --- a/program/include/rcube_config.php +++ b/program/include/rcube_config.php @@ -43,6 +43,8 @@ class rcube_config 'mail_pagesize' => 'pagesize', 'addressbook_pagesize' => 'pagesize', 'reply_mode' => 'top_posting', + 'refresh_interval' => 'keep_alive', + 'min_refresh_interval' => 'min_keep_alive', ); diff --git a/program/js/app.js b/program/js/app.js index 25fddf10c..fb9c299ec 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -44,7 +44,6 @@ function rcube_webmail() this.identifier_expr = new RegExp('[^0-9a-z\-_]', 'gi'); // default environment vars - this.env.keep_alive = 60; // seconds this.env.request_timeout = 180; // seconds this.env.draft_autosave = 0; // seconds this.env.comm_path = './'; @@ -6488,13 +6487,13 @@ function rcube_webmail() // starts interval for refresh signal this.start_refresh = function() { - if (!this.env.keep_alive || this.env.framed || this.env.extwin || this.task == 'login' || this.env.action == 'print') + if (!this.env.refresh_interval || this.env.framed || this.env.extwin || this.task == 'login' || this.env.action == 'print') return; if (this._refresh) clearInterval(this._refresh); - this._refresh = setInterval(function(){ ref.refresh(); }, this.env.keep_alive * 1000); + this._refresh = setInterval(function(){ ref.refresh(); }, this.env.refresh_interval * 1000); }; // sends keep-alive signal diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index 27e1e1346..876e02761 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -237,21 +237,21 @@ function rcmail_user_prefs($current=null) ); } - if (!isset($no_override['keep_alive'])) { - $field_id = 'rcmfd_keep_alive'; - $select_keep_alive = new html_select(array('name' => '_keep_alive', 'id' => $field_id)); + if (!isset($no_override['refresh_interval'])) { + $field_id = 'rcmfd_refresh_interval'; + $select_refresh_interval = new html_select(array('name' => '_refresh_interval', 'id' => $field_id)); - $select_keep_alive->add(rcube_label('never'), 0); + $select_refresh_interval->add(rcube_label('never'), 0); foreach (array(1, 3, 5, 10, 15, 30, 60) as $min) { - if (!$config['min_keep_alive'] || $config['min_keep_alive'] <= $min * 60) { + if (!$config['min_refresh_interval'] || $config['min_refresh_interval'] <= $min * 60) { $label = rcube_label(array('name' => 'everynminutes', 'vars' => array('n' => $min))); - $select_keep_alive->add($label, $min); + $select_refresh_interval->add($label, $min); } } - $blocks['main']['options']['keep_alive'] = array( + $blocks['main']['options']['refresh_interval'] = array( 'title' => html::label($field_id, Q(rcube_label('refreshinterval'))), - 'content' => $select_keep_alive->show($config['keep_alive']/60), + 'content' => $select_refresh_interval->show($config['refresh_interval']/60), ); } diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc index 2f22be7c4..5daab0d24 100644 --- a/program/steps/settings/save_prefs.inc +++ b/program/steps/settings/save_prefs.inc @@ -33,7 +33,7 @@ switch ($CURR_SECTION) 'date_format' => isset($_POST['_date_format']) ? get_input_value('_date_format', RCUBE_INPUT_POST) : $CONFIG['date_format'], 'time_format' => isset($_POST['_time_format']) ? get_input_value('_time_format', RCUBE_INPUT_POST) : ($CONFIG['time_format'] ? $CONFIG['time_format'] : 'H:i'), 'prettydate' => isset($_POST['_pretty_date']) ? TRUE : FALSE, - 'keep_alive' => isset($_POST['_keep_alive']) ? intval($_POST['_keep_alive'])*60 : $CONFIG['keep_alive'], + 'refresh_interval' => isset($_POST['_refresh_interval']) ? intval($_POST['_refresh_interval'])*60 : $CONFIG['refresh_interval'], 'skin' => isset($_POST['_skin']) ? get_input_value('_skin', RCUBE_INPUT_POST) : $CONFIG['skin'], ); @@ -157,9 +157,9 @@ switch ($CURR_SECTION) $a_user_prefs['timezone'] = (string) $a_user_prefs['timezone']; - if (isset($a_user_prefs['keep_alive']) && !empty($CONFIG['min_keep_alive'])) { - if ($a_user_prefs['keep_alive'] > $CONFIG['min_keep_alive']) { - $a_user_prefs['keep_alive'] = $CONFIG['min_keep_alive']; + if (isset($a_user_prefs['refresh_interval']) && !empty($CONFIG['min_refresh_interval'])) { + if ($a_user_prefs['refresh_interval'] > $CONFIG['min_refresh_interval']) { + $a_user_prefs['refresh_interval'] = $CONFIG['min_refresh_interval']; } } |