summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/legacy/util.php61
-rw-r--r--lib/public/Util.php1
2 files changed, 29 insertions, 33 deletions
diff --git a/lib/private/legacy/util.php b/lib/private/legacy/util.php
index ecc8f053704..3bd5b5586ab 100644
--- a/lib/private/legacy/util.php
+++ b/lib/private/legacy/util.php
@@ -66,6 +66,9 @@ class OC_Util {
private static $rootMounted = false;
private static $fsSetup = false;
+ /** @var array Local cache of version.php */
+ private static $versionCache = null;
+
protected static function getAppManager() {
return \OC::$server->getAppManager();
}
@@ -397,7 +400,7 @@ class OC_Util {
*/
public static function getVersion() {
OC_Util::loadVersion();
- return \OC::$server->getSession()->get('OC_Version');
+ return self::$versionCache['OC_Version'];
}
/**
@@ -407,7 +410,7 @@ class OC_Util {
*/
public static function getVersionString() {
OC_Util::loadVersion();
- return \OC::$server->getSession()->get('OC_VersionString');
+ return self::$versionCache['OC_VersionString'];
}
/**
@@ -424,7 +427,13 @@ class OC_Util {
*/
public static function getChannel() {
OC_Util::loadVersion();
- return \OC::$server->getSession()->get('OC_Channel');
+
+ // Allow overriding update channel
+ if (\OC::$server->getSystemConfig()->getValue('installed', false)) {
+ self::$versionCache['OC_Channel'] = \OC::$server->getAppConfig()->getValue('core', 'OC_Channel');
+ }
+
+ return self::$versionCache['OC_Channel'];
}
/**
@@ -433,42 +442,30 @@ class OC_Util {
*/
public static function getBuild() {
OC_Util::loadVersion();
- return \OC::$server->getSession()->get('OC_Build');
+ return self::$versionCache['OC_Build'];
}
/**
* @description load the version.php into the session as cache
*/
private static function loadVersion() {
- $timestamp = filemtime(OC::$SERVERROOT . '/version.php');
- if (!\OC::$server->getSession()->exists('OC_Version') or OC::$server->getSession()->get('OC_Version_Timestamp') != $timestamp) {
- require OC::$SERVERROOT . '/version.php';
- $session = \OC::$server->getSession();
- /** @var $timestamp int */
- $session->set('OC_Version_Timestamp', $timestamp);
- /** @var $OC_Version string */
- $session->set('OC_Version', $OC_Version);
- /** @var $OC_VersionString string */
- $session->set('OC_VersionString', $OC_VersionString);
- /** @var $OC_Build string */
- $session->set('OC_Build', $OC_Build);
-
- // Allow overriding update channel
-
- if (\OC::$server->getSystemConfig()->getValue('installed', false)) {
- $channel = \OC::$server->getAppConfig()->getValue('core', 'OC_Channel');
- } else {
- /** @var $OC_Channel string */
- $channel = $OC_Channel;
- }
-
- if (!is_null($channel)) {
- $session->set('OC_Channel', $channel);
- } else {
- /** @var $OC_Channel string */
- $session->set('OC_Channel', $OC_Channel);
- }
+ if (self::$versionCache !== null) {
+ return;
}
+
+ $timestamp = filemtime(OC::$SERVERROOT . '/version.php');
+ require OC::$SERVERROOT . '/version.php';
+ /** @var $timestamp int */
+ self::$versionCache['OC_Version_Timestamp'] = $timestamp;
+ /** @var $OC_Version string */
+ self::$versionCache['OC_Version'] = $OC_Version;
+ /** @var $OC_VersionString string */
+ self::$versionCache['OC_VersionString'] = $OC_VersionString;
+ /** @var $OC_Build string */
+ self::$versionCache['OC_Build'] = $OC_Build;
+
+ /** @var $OC_Channel string */
+ self::$versionCache['OC_Channel'] = $OC_Channel;
}
/**
diff --git a/lib/public/Util.php b/lib/public/Util.php
index 08661fd88ca..8a7c8997613 100644
--- a/lib/public/Util.php
+++ b/lib/public/Util.php
@@ -83,7 +83,6 @@ class Util {
*/
public static function setChannel($channel) {
//Flush timestamp to reload version.php
- \OC::$server->getSession()->set('OC_Version_Timestamp', 0);
\OC::$server->getAppConfig()->setValue('core', 'OC_Channel', $channel);
\OC::$server->getConfig()->setSystemValue('updater.release.channel', $channel);
}