Hi,
You could try only loading what is necessary:
bool AppEcksdee::ProcessMounts ()
{
csRef<iConfigIterator> it = app_cfg->Enumerate ("Ecksdee.Mount.");
if (it)
while (it->Next ())
{
const char* vp = it->GetKey (true);
csString virtualpath = "/";
virtualpath += vp;
vfs->Mount (virtualpath, it->GetStr ());
}
return true;
}
Here if I specify a mount in the config file it gets loaded, like
Ecksdee.Mount.fonts/ttf = /usr/foo/bar
This way you can add config files and when you ProcessMounts () you'll have
the new mount points.
On Sunday 25 February 2007 16:16, Mildred wrote:
> Hi,
>
> I managed to print all mountpoints of a basic application. Here is my
> vfs.cfg file that specify few mountpoints:
>
>
> VFS.Mount./config=$(XDG_CONFIG_HOME:$(HOME)$/.config)$/wot3d$/
> VFS.Mount./=$*
>
>
> And here are all mounted VFS dir when I start my application:
>
> virtual real
>
> / /mnt/data7/WoT/maps/baseapp/./
> /aws/ /mnt/data14/crystal/data/awsdef.zip
> /aws/ /mnt/data14/crystal/data/aws/
> /cdrom/ /mnt/cdrom/
> /ceguitest/ /mnt/data14/crystal/data/ceguitest/
> /config/ /home/mildred/.config/wot3d/
> /config/ /home/mildred/.config/wot3d/
> /data/ /mnt/data14/crystal/data/
> /fonts/ttf/ /mnt/data14/crystal/data/ttf/
> /fonts/ttf/ /usr/X11R6/lib/X11/fonts/Truetype/
> /fonts/ttf/ /usr/X11R6/lib/X11/fonts/TTF/
> /fonts/ttf/ /mnt/data14/crystal/data/ttf-dejavu.zip
> /fonts/ttf/ /mnt/data14/crystal/data/ttf-vera.zip
> /fonts/unifont/ /mnt/data14/crystal/data/unifont.zip
> /lev/castle/ /mnt/data14/crystal/data/castle/
> /lev/flarge/ /mnt/data14/crystal/data/flarge/
> /lev/isomap/ /mnt/data14/crystal/data/isomap.zip
> /lev/isomap/ /mnt/data14/crystal/data/isomap/
> /lev/parallaxtest/ /mnt/data14/crystal/data/parallaxtest/
> /lev/partsys/ /mnt/data14/crystal/data/partsys/
> /lev/projectortest/ /mnt/data14/crystal/data/projectortest/
> /lev/r3dsmtest/ /mnt/data14/crystal/data/r3dsmtest/
> /lev/r3dtest/ /mnt/data14/crystal/data/r3dtest/
> /lev/stenciltest/ /mnt/data14/crystal/data/stenciltest/
> /lev/terrain/ /mnt/data14/crystal/data/terrain/
> /lev/terraina/ /mnt/data14/crystal/data/terraina/
> /lev/terrainf/ /mnt/data14/crystal/data/terrainf/
> /lev/terrainp/ /mnt/data14/crystal/data/terrainp/
> /lev/unittest/ /mnt/data14/crystal/data/unittest/
> /lib/cubemap/ /mnt/data14/crystal/data/cube/
> /lib/g2dtest/ /mnt/data14/crystal/data/g2dtest/
> /lib/kwartz/ /mnt/data14/crystal/data/kwartz.zip
> /lib/startme/ /mnt/data14/crystal/data/startme.zip
> /lib/std/ /mnt/data14/crystal/data/standard.zip
> /lib/stdtex/ /mnt/data14/crystal/data/standard.zip
> /lib/teapot/ /mnt/data14/crystal/data/teapot.zip
> /partedit2/ /mnt/data14/crystal/data/partedit2/
> /pythonscript/ /home/mildred/
> /scripts/ /mnt/data14/crystal/scripts/
> /shader/ /mnt/data14/crystal/data/shader/
> /this/ ./
> /tmp/ /tmp/
> /varia/ /mnt/data14/crystal/data/varia/
> /~/ /home/mildred/
> /cellib/sounds/
> /mnt/data7/WoT/maps/baseapp/.//data/sounds/sounds_ws.zip /cellib/images/
> /mnt/data7/WoT/maps/baseapp/.//data/images/ /cellib/objects/
> /mnt/data7/WoT/maps/baseapp/.//data/
> /cellib/lev/ /mnt/data7/WoT/maps/baseapp/.//data/
> /cellib/track4/ /mnt/data7/WoT/maps/baseapp/.//data/track4.zip
> /cellib/library/ /mnt/data7/WoT/maps/baseapp/.//data/library/
> /celconfig/ /mnt/data7/WoT/maps/baseapp/.//data/config/
>
>
> I think it is a little bit too much. I think about downloading maps
> from the internet and those maps may include files from everywhere in
> the VFS (except if there is a way to chroot in the VFS).
> So I think about mounting only what is necessary. So is there a way not
> to load those default mountpoints, only those I specified in my own
> vfs.cfg directory ?
>
> Actually, I loop over all those mountpoints to unmount them manually,
> and then I mount manually exactly what I want, but then it means I
> can't use vfs.cfg, and especially the $* variable. I don't like
> specifying in the source code some static path :(
>
> Also, if you hared something about restricting the files opened when
> loading a map for example, I'm really interested. Actually i think
> about unmounting everything except the map directory, load the map and
> then restore all mountpoints. I wonder if there is a better solution.
>
> Thanks.
> Mildred
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Crystal-main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/crystal-main
Unsubscribe: mailto:[EMAIL PROTECTED]