From ad720c4c17867df24de0dc55453efd0eea8b9a17 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 26 Oct 2012 18:17:43 +0200 Subject: [PATCH] possible fix for bombarding the server with the htaccess test during setup --- lib/util.php | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/lib/util.php b/lib/util.php index 72b5e4d260..4ca84ba75a 100755 --- a/lib/util.php +++ b/lib/util.php @@ -64,23 +64,23 @@ class OC_Util { } public static function loadUserMountPoints($user) { - $user_dir = '/'.$user.'/files'; - $user_root = OC_User::getHome($user); + $user_dir = '/'.$user.'/files'; + $user_root = OC_User::getHome($user); $userdirectory = $user_root . '/files'; - if (is_file($user_root.'/mount.php')) { - $mountConfig = include $user_root.'/mount.php'; - if (isset($mountConfig['user'][$user])) { - foreach ($mountConfig['user'][$user] as $mountPoint => $options) { - OC_Filesystem::mount($options['class'], $options['options'], $mountPoint); - } - } - - $mtime=filemtime($user_root.'/mount.php'); - $previousMTime=OC_Preferences::getValue($user,'files','mountconfigmtime',0); - if($mtime>$previousMTime) {//mount config has changed, filecache needs to be updated - OC_FileCache::triggerUpdate($user); - OC_Preferences::setValue($user,'files','mountconfigmtime',$mtime); - } + if (is_file($user_root.'/mount.php')) { + $mountConfig = include $user_root.'/mount.php'; + if (isset($mountConfig['user'][$user])) { + foreach ($mountConfig['user'][$user] as $mountPoint => $options) { + OC_Filesystem::mount($options['class'], $options['options'], $mountPoint); + } + } + + $mtime=filemtime($user_root.'/mount.php'); + $previousMTime=OC_Preferences::getValue($user,'files','mountconfigmtime',0); + if($mtime>$previousMTime) {//mount config has changed, filecache needs to be updated + OC_FileCache::triggerUpdate($user); + OC_Preferences::setValue($user,'files','mountconfigmtime',$mtime); + } } } @@ -582,6 +582,11 @@ class OC_Util { // creating a test file $testfile = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ).'/'.$filename; + + if(file_exists($testfile)){// already running this test, possible recursive call + return false; + } + $fp = @fopen($testfile, 'w'); @fwrite($fp, $testcontent); @fclose($fp);