summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2015-02-25 21:08:16 +0100
committerAleksander Machniak <alec@alec.pl>2015-02-25 21:08:16 +0100
commit2a31f6dbd7c63232918d175fb2879682217946ea (patch)
treef80f4b0e08ba3e39d9056cdf3e9bd2959a52074d
parente1c8fe5c4a0f30cd36069e3460ac937282fb8e1a (diff)
Reset default db_max_allowed_packet, fix max packet size detection
-rw-r--r--config/defaults.inc.php2
-rw-r--r--program/lib/Roundcube/rcube_cache.php6
-rw-r--r--program/lib/Roundcube/rcube_cache_shared.php6
3 files changed, 9 insertions, 5 deletions
diff --git a/config/defaults.inc.php b/config/defaults.inc.php
index edc5b32df..50c392db3 100644
--- a/config/defaults.inc.php
+++ b/config/defaults.inc.php
@@ -55,7 +55,7 @@ $config['db_table_dsn'] = array(
// Use them if your server is not MySQL or for better performance.
// For example Roundcube uses max_allowed_packet value (in bytes)
// which limits query size for database cache operations.
-$config['db_max_allowed_packet'] = 23423440;
+$config['db_max_allowed_packet'] = null;
// ----------------------------------
diff --git a/program/lib/Roundcube/rcube_cache.php b/program/lib/Roundcube/rcube_cache.php
index 52a2db997..303abdac4 100644
--- a/program/lib/Roundcube/rcube_cache.php
+++ b/program/lib/Roundcube/rcube_cache.php
@@ -605,8 +605,10 @@ class rcube_cache
$this->max_packet = 2097152; // default/max is 2 MB
if ($this->type == 'db') {
- $value = $this->db->get_variable('max_allowed_packet', $this->max_packet);
- $this->max_packet = max($value, $this->max_packet) - 2000;
+ if ($value = $this->db->get_variable('max_allowed_packet', $this->max_packet)) {
+ $this->max_packet = $value;
+ }
+ $this->max_packet -= 2000;
}
else if ($this->type == 'memcache') {
$stats = $this->db->getStats();
diff --git a/program/lib/Roundcube/rcube_cache_shared.php b/program/lib/Roundcube/rcube_cache_shared.php
index 339a9aa20..3f0f20e41 100644
--- a/program/lib/Roundcube/rcube_cache_shared.php
+++ b/program/lib/Roundcube/rcube_cache_shared.php
@@ -595,8 +595,10 @@ class rcube_cache_shared
$this->max_packet = 2097152; // default/max is 2 MB
if ($this->type == 'db') {
- $value = $this->db->get_variable('max_allowed_packet', 1048500);
- $this->max_packet = min($value, $this->max_packet) - 2000;
+ if ($value = $this->db->get_variable('max_allowed_packet', $this->max_packet)) {
+ $this->max_packet = $value;
+ }
+ $this->max_packet -= 2000;
}
else if ($this->type == 'memcache') {
$stats = $this->db->getStats();