static int _fileSystemIsSupported( const char * fs ) { string_t st = StringGetFromVirtualFile( "/proc/filesystems" ) ; stringList_t stl = StringListStringSplit( st,'\n' ) ; StringListIterator it = StringListBegin( stl ) ; StringListIterator end = StringListEnd( stl ) ; string_t xt ; int r = 0 ; while( it != end ){ xt = *it ; it++ ; if( !StringStartsWith( xt,"nodev" ) ){ if( StringContains( xt,fs ) ){ r = 1 ; break ; } } } StringDelete( &st ) ; StringListDelete( &stl ) ; return r ; }
static int _zuluCryptUnmountVolume_0( string_t st,char ** m_point ) { int h ; stringList_t stl = StringListStringSplit( st,' ' ) ; StringListIterator it = StringListBegin( stl ) ; /* * zuluCryptDecodeMountEntry() is defined in mount_volume.c */ const char * mout_point = zuluCryptDecodeMountEntry( *( it + 1 ) ) ; if( StringContains( *( it + 2 ),"fuse" ) ){ /* * Dont know whats going on but FUSE based file systems do not seem to work with umount() */ h = _unmount( _unmount_fuse,mout_point ) ; }else{ h = _unmount( _unmount_rest,mout_point ) ; } if( h == 0 && m_point != NULL ){ *m_point = StringCopy_2( mout_point ) ; } StringListDelete( &stl ) ; return h ; }