allow tear down of filesystem.

also fix a bug when chrooting to '/'
This commit is contained in:
Robin Appelman 2011-06-12 00:57:43 +02:00
parent 5425c3d1e9
commit 2a5ee9512e
2 changed files with 20 additions and 3 deletions

View File

@ -145,7 +145,7 @@ class OC_UTIL {
if( $user != "" ){ //if we aren't logged in, there is no use to set up the filesystem
//first set up the local "root" storage and the backupstorage if needed
$rootStorage=OC_FILESYSTEM::createStorage('local',array('datadir'=>$CONFIG_DATADIRECTORY));
$rootStorage=OC_FILESYSTEM::createStorage('local',array('datadir'=>$CONFIG_DATADIRECTORY_ROOT));
// if( OC_CONFIG::getValue( "enablebackup", false )){
// // This creates the Directorys recursively
// if(!is_dir( "$CONFIG_BACKUPDIRECTORY/$user/$root" )){
@ -182,6 +182,11 @@ class OC_UTIL {
}
}
public static function tearDownFS(){
OC_FILESYSTEM::tearDown();
self::$fsSetup=false;
}
/**
* get the current installed version of ownCloud
* @return array

View File

@ -67,6 +67,16 @@ class OC_FILESYSTEM{
return array_keys(self::$storageTypes);
}
/**
* tear down the filesystem, removing all storage providers
*/
static public function tearDown(){
foreach(self::$storages as $mountpoint=>$storage){
unset(self::$storages[$mountpoint]);
}
$fakeRoot='';
}
/**
* create a new storage of a specific type
* @param string type
@ -91,8 +101,10 @@ class OC_FILESYSTEM{
* @return bool
*/
static public function chroot($fakeRoot){
if($fakeRoot[0]!=='/'){
$fakeRoot='/'.$fakeRoot;
if(!$fakeRoot==''){
if($fakeRoot[0]!=='/'){
$fakeRoot='/'.$fakeRoot;
}
}
self::$fakeRoot=$fakeRoot;
}