diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/base.php | 5 | ||||
-rw-r--r-- | lib/config.php | 2 | ||||
-rw-r--r-- | lib/connector/sabre/maintenanceplugin.php | 3 | ||||
-rwxr-xr-x | lib/util.php | 20 |
4 files changed, 25 insertions, 5 deletions
diff --git a/lib/base.php b/lib/base.php index a6e4a47dbf5..26e9595e869 100644 --- a/lib/base.php +++ b/lib/base.php @@ -235,10 +235,7 @@ class OC { $currentVersion = implode('.', OC_Util::getVersion()); if (version_compare($currentVersion, $installedVersion, '>')) { if ($showTemplate && !OC_Config::getValue('maintenance', false)) { - OC_Config::setValue('maintenance', true); - OC_Log::write('core', - 'starting upgrade from ' . $installedVersion . ' to ' . $currentVersion, - OC_Log::WARN); + OC_Config::setValue('theme', ''); $minimizerCSS = new OC_Minimizer_CSS(); $minimizerCSS->clearCache(); $minimizerJS = new OC_Minimizer_JS(); diff --git a/lib/config.php b/lib/config.php index 9b87d4ce4e5..3cbb89fb981 100644 --- a/lib/config.php +++ b/lib/config.php @@ -187,7 +187,7 @@ class OC_Config{ } // Prevent others not to read the config @chmod($filename, 0640); - + OC_Util::clearOpcodeCache(); return true; } } diff --git a/lib/connector/sabre/maintenanceplugin.php b/lib/connector/sabre/maintenanceplugin.php index 329fa4443ad..2eda269afc2 100644 --- a/lib/connector/sabre/maintenanceplugin.php +++ b/lib/connector/sabre/maintenanceplugin.php @@ -50,6 +50,9 @@ class OC_Connector_Sabre_MaintenancePlugin extends Sabre_DAV_ServerPlugin if (OC_Config::getValue('maintenance', false)) { throw new Sabre_DAV_Exception_ServiceUnavailable(); } + if (OC::checkUpgrade(false)) { + throw new Sabre_DAV_Exception_ServiceUnavailable('Upgrade needed'); + } return true; } diff --git a/lib/util.php b/lib/util.php index 95af22ed0ee..ddef0c63c55 100755 --- a/lib/util.php +++ b/lib/util.php @@ -833,6 +833,26 @@ class OC_Util { } /** + * Clear the opcode cache if one exists + * This is necessary for writing to the config file + * in case the opcode cache doesn't revalidate files + */ + public static function clearOpcodeCache() { + // APC + if (function_exists('apc_clear_cache')) { + apc_clear_cache(); + } + // Zend Opcache + if (function_exists('accelerator_reset')) { + accelerator_reset(); + } + // XCache + if (function_exists('xcache_clear_cache')) { + xcache_clear_cache(XC_TYPE_VAR, 0); + } + } + + /** * Normalize a unicode string * @param string $value a not normalized string * @return bool|string |