View Single Post
Old 03-17-2007, 03:06 AM  
Too much time...
Join Date: May 2005
Posts: 1,194
Default Progress

More success! I just got recursive directory listings working! It took a bit longer than I had hoped though. I ended up completely rewriting the listing code and that required a pretty large learning curve since I had to understand a big chunk of ioFTPD. My new version is significantly better in lots of ways though so it was worth it. It properly handles merged/raided directories and subdirectories. It fixes the issue I was having previously with list and []'s in file/dir names. It prints date/time info correctly and in new ways. I also made a few changes to improve overall performance when dealing with larger directories.

I've got it generating 20+ MB directory listings of entire drives now. Of course since Flash doesn't understand recursive directory listings and tries to sort that huge listing it consumes the CPU far more than ioFTPD did to create it. However, my site indexing scripts are gonna love this. Access to recursive listings is also controllable so you can limit which users can use it. Perhaps just give access to an index bot generates a listing and drops it in the root directory every hour or something. That's what I plan to do.

Everything else on my personal todo list looks trivial so it shouldn't be much longer now.


I've documented the default.vfs file with useful information, and commented the ioFTPD.ini file in some places as well, and even put together some info on .itcl commands (very raw) but for anybody looking at this for the first time it's still daunting and documentation overall sucks. Therefor, if anyone has words of wisdom or something written up about how various settings in ioFTPD.ini affected performance in the past, what NOT to do, or noticed interesting things, drop the info here so I can include it.

Example of stuff I learned. You probably figured out that mount points obscure a real directory (under the physical dir mounted as /) of the same name in the same place in the virtual filesystem. But if you also mount the real dir as a virtual dir essentially placing it on top of itself it's merged in with the others... I don't recommend doing that though!

Good idea creating a sticky thread Tuff and your bug/feature summaries! I however have no info on the "SystemError.log can report the wrong info on errors" bug. More info on that would be good.

I'm also looking for more info on people who use merged/raided directories. I think ioFTPD handles a number of things wrong, but I'm curious what other people think and would want tweaked. In particular I don't like the behavior of subdirectories. You can only upload to subdirectories of the last mount point listed. I'm proposing that IF a subdirectory doesn't exist in the last mountpoint listed but DOES exist in earlier ones, the first one found searching backwards is used for the file... Thus creating a new mount point at the end would start forcing NEW subdirectories to use the new location, but existing older dirs could still be uploaded to! Of course mounting the real directory again under a non-merged name elsewhere is the obvious and probably best answer, but there are times when explaining that to users is hard to do... Let me know what you think and what issues there might be. I'm guessing that some script somewhere will get confused, but since most just care about the REAL path, and if there is an issue in some configurations just disable uploading via ioFTPD.ini for the merged paths or perhaps another config option could be added.
Yil is offline   Reply With Quote