FlashFXP Forums ioFTPD v7.2.1 Released (BETA)
 Tickets Search Today's Posts Mark Forums Read

 ioFTPD General New releases, comments, questions regarding the latest version of ioFTPD.

 03-12-2010, 10:23 AM #1 Yil Too much time... FlashFXP Beta TesterioFTPD Administrator   Join Date: May 2005 Posts: 1,194 ioFTPD v7.2.1 Released (BETA) Highlights: HELP, yea, I know... finally More useful virtual directories, you can upload, etc to pure virtual dirs SITE PERMS command for details on allowed user actions. SITE SECTIONNUMS - describe sections and paths for each Latest Version: Link: ioFTPD-v7.2.1.zip Source: Link: ioFTPD-v7.2.0-src.zip Last edited by Yil; 03-12-2010 at 02:22 PM.
 03-12-2010, 10:24 AM #2 Yil Too much time... FlashFXP Beta TesterioFTPD Administrator   Join Date: May 2005 Posts: 1,194 Changelog Code: v7.2.0 Release Notes: 1) Files in \System: Changed : ioFTPD.[exe,pdb] - Version 7.2.0.0. Added : Theme.ini, Help.ini, Help-SiteCmds.ini Optional: Help-nxTools.ini, Help-ioNiNJA.ini Changed : ioFTPD.ini - summary of changes by section... [Any] : Feature_Suppression - Comments changed [VFS] : TimeStamp, TimeStampOwn added [Virtual_Dirs] : Comment changed (New feature) [FTP_SITE_Permissions] : knock = !A * perms = !A * (or GV1M if you want) sectionnum = !A * uptime = !A * [Change_Permissions] : DnSpeed = 1M NonLeech (Removed) UpSpeed = 1M [Ftp] : Enable_TimeStamp_On_Last_Upload - added [Help] : Comments and settings changed. [Themes] : * Entire section completely removed * 2) Files in \etc: Changed : ioftpd.env 3) Files in \text\ftp: Changed : Color, MyInfo.Section, Services.Body, UserInfo.Section, Welcome Changed : GroupList.[Body, Footer] 4) Files in \doc: Added : Helpfiles.txt, FTP-cmds.txt, Site-cmds.txt Optional: nxTools.txt, ioNiNJA.txt Changed : Cookies.txt, iTCL.txt 5) Files in \source: Added : FTP-cmds.help, ioNiNJA.help, nxTools.help, Site-cmds.help Added : INCLUDE-DIR-README.txt Deleted : \Include [dir] 6) Files in \scripts: Added : FormatHelp.itcl *** Incompatible changes: 7) Removed "SITE CHANGE NON-LEECH" as you can do the same thing with "SITE CHANGE :=0 RATIO" and it's far more versatile. *** New Features 8) New site command (site perms [ - ] [ ]). Displays permission information for you, or another user, about the indicated item with the default being the current working directory if no argument supplied. If processing a directory then also display the default rules for items in the directory. This is actually a REALLY nice command! It shows why you can or can't upload, delete, rename, etc. Try running it from '/' so you can see all the rules if you vary action permissions by path. See 'SITE HELP PERMS' for more details, but make sure you do it from a VM flagged account as both the help information displayed and the command results vary by the flags of the calling user. 9) New site command (site sectionnums). For each section number defined in the configuration file show its name and if it shares credits and/or ratio settings with another section. Then display a list of paths and the section number to use for them. 10) New site command (site uptime). Simply displays the server and FTP uptimes. 11) New site command (site knock). If port knocking is enabled display the current port connection sequence to trigger a "knock" else let the user know the feature is disabled. 12) New list argument (LIST -U). Replaces the group field with the average upload speed in KB/s or "-" if that information is unavailable as for all existing files prior to v7.2 and all non-file objects such as directories and symbolic links. 13) New site change command (SITE CHANGE DNSPEED ). This sets the maximum download speed for matching users to much like the SPEEDLIMIT change command would. It is provided for symmetry with UPSPEED and because it's easier to remember. 14) New site change command (SITE CHANGE UPSPEED ). This sets the maximum upload speed for matching users to . This is useful when modifying more than one user at a time because you don't need to also set the DNSPEED limit like you would if you used the CHANGE SPEEDLIMIT command. 15) New ioFTPD.ini options (TimeStamp and TimeStampOwn actions under [VFS]). You can now control who can modify timestamps of files on the server by path with these 2 new actions. Previously if the file was writable by the user they could set the timestamp provided the MDTM command was accessible to them. Since MTDM also allows you to read the timestamp disabling it was not a good option and it didn't allow for doing so based upon the path. 16) New ioFTPD.ini option (Enable_TimeStamp_On_Last_Upload under [Ftp]). The new TimeStamp and TimeStampOwn actions cover most cases, however you may wish to allow users to modify the timestamp of the last file uploaded even if those checks fail. The main reason this is useful is when zipscripts remove +w access from an uploaded file that was verified and/or modify the owner of the file. In both those cases the normal checks would fail. It's also somewhat useful if the zipscript doesn't modify anything but you don't wish the user to change the timestamp later on, but don't mind them doing it right after it is uploaded. There isn't any other way to express that. The default is FALSE which disallows the exception. 17) Modified site command (SITE CHANGE GROUPDESCRIPTION ). If is "NONE" then the group will have an empty description. Since all SITE CHANGE commands require an argument it previously wasn't possible to completely remove the description once set. 18) Modified site command (SITE GROUPS [ -ALL ]). The site groups command has been changed to include the idea of "hidden" groups which should not be displayed in the listing by default. This supports the practice of changing the group ownership of files and directories to convey information instead of ownership. An example of this would be ioNiNJA's MP3 genre labeling via group owner. A group is considered hidden if it has no users and a description of "-". Use the -all argument to see hidden groups in the listing as well. This command is also changed for GroupAdmins. They will only see GID #1 ('NoGroup') and groups which they can admin. 19) The SITE WHO and SITE STAT (with LIMIT option) will now only accept user, username*?, and =group style arguments for non SiteOp/Masters. Even the =group option is limited to groups the caller is a member of. This is to prevent leaking group, ratio, and flag information via the powerful globbing mechanism. Jury out on if GroupAdmins should be exempt here as well. 20) New user-glob feature (=.). The '.' means matches users whose primary group is . 21) New user-glob feature (: and :.). These match users who have group as an adminGroup or as their primary adminGroup respectively. 22) New user-glob feature ([] and [^]). You can now use character group or range matching in addition to '*' and '?'. The ^ prefix means to match any single character not specified. 23) Modified the behavior of 'SITE MYINFO' to no longer show section name and information if all paths in the section are hidden to the user. 24) New .ini feature for [Virtual_Dirs]. You can now make hidden virtual directories to some users. The Virtual dir definition now looks like: = [ "" ] TCL
 03-12-2010, 10:34 AM #3 Yil Too much time... FlashFXP Beta TesterioFTPD Administrator   Join Date: May 2005 Posts: 1,194 Theme support moved out of ioFTPD.ini file and into a separate file. Also added "bright" versions of the existing 4 themes for use with newer FlashFXP v4 betas. In the future might go back and use the background color and underline features for even better displays... Forgot this changelog entry: XX) The raw color cookie %[C()] has changed. It no longer accepts single digit colors, but rather the new syntax documented in Theme.ini. I doubt anyone uses this as themes via the %[T()] cookie is the way to go though. XX) If you created or modified a theme you'll have to convert to the new format which is easy to do and far easier to read now.
 03-12-2010, 11:14 AM #4 Yil Too much time... FlashFXP Beta TesterioFTPD Administrator   Join Date: May 2005 Posts: 1,194 Oh... two more tidbits... The doc\Helpfiles.txt file describes the new helpfile format but I forgot to include a reference to read that in the Changelog for info on how things work... Like no mention of "(*BAD*)" to highlight commands referenced but not defined for Master users who view site help. You should also be aware that site help is caller specific. It actually tests access to commands before displaying them. It's pretty cool and means a plain old user sees just the stuff they can use and a Master gets a huge list! Any comments, feedback, suggestions for content, formatting, etc welcome.
 03-12-2010, 01:07 PM #5 Yil Too much time... FlashFXP Beta TesterioFTPD Administrator   Join Date: May 2005 Posts: 1,194 It appears that the revamped theme code is outputting color control info even when disabled... Give me a few mins to fix that with a new release...
 03-12-2010, 01:20 PM #6 Flow Senior Member FlashFXP Beta TesterioFTPD Foundation User     Join Date: Dec 2001 Posts: 306 lol, right, this is big. I think safest redo a new reconf with this pakage. Thanks for this new lovely version. __________________ Current setup: [Windows 7 PRO 32Bit] + [ioFTPD 7.7.2-STABLE] + [ioNiNJA.1.0.Beta1.2012-07-13] + [nxTools-v1.2.1]
 03-12-2010, 01:43 PM #7 Flow Senior Member FlashFXP Beta TesterioFTPD Foundation User     Join Date: Dec 2001 Posts: 306 Its alive and looking really good Right, first input. Thare should be a cookie for 'sitename' for help file header/footer. (Maybe i missed reading somewhare........). Um, i mean %sitename-cookie instead of displaying ioFTPD. Code: .-[ioFTPD Help]-----------------------------------------------------------. Code: '----------------------------------------------------------------[ioFTPD]-' So itÂ´ll be easier handling for future usage. __________________ Current setup: [Windows 7 PRO 32Bit] + [ioFTPD 7.7.2-STABLE] + [ioNiNJA.1.0.Beta1.2012-07-13] + [nxTools-v1.2.1] Last edited by Flow; 03-12-2010 at 01:52 PM.
 03-12-2010, 02:23 PM #8 Yil Too much time... FlashFXP Beta TesterioFTPD Administrator   Join Date: May 2005 Posts: 1,194 v7.2.1 Released Code: v7.2.1 Release Notes: 1) Files in \System: Changed : ioFTPD.[exe,pdb] - Version 7.2.1.0. *** Bug Fixes: 2) Fixed a bug introduced with the new v7.2 theme processing where the ANSI reset escape sequence was being output in command responses even when no theme was active. 3) Fixed a typo in specifying an octal number used for permission checking that was causing some checks to produce incorrect results and resulted in "Permission denied (directory permission)" errors to show up even when the user had permission to access the file. 4) Fixed a bug where Keep_Link_In_Paths wasn't applying to links in virtual directories.
 03-12-2010, 03:20 PM #9 Yil Too much time... FlashFXP Beta TesterioFTPD Administrator   Join Date: May 2005 Posts: 1,194 Flow: There isn't a good way to handle that right now. Lines are passed through the message cookie parser so you can do some cool stuff, but there isn't a formatting cookie so drawing the bounding box with an arbitrary length site name pulled from the .ini file at runtime wouldn't work. Needless to say a new formatting cookie is on my TODO list somewhere to allow you to do this in help and in things like SITE WHO, etc. You can, however, edit the .help file in /sources and create a new HELP/SITE HELP .ini file (see doc/Helpfiles.txt), or just edit the .ini file by hand. It will look ugly with all the color control cookies in there but it's not that bad for such a simple change...
 03-13-2010, 03:08 AM #10 SRH99 Member   Join Date: Mar 2010 Posts: 44 Truely amazing work Yil, cant wait to test this one out. thank you.
 03-13-2010, 12:38 PM #11 l.d.m Member   Join Date: Feb 2007 Posts: 31 very very thanks for your great work Yil I was waiting for bugfix of implicit SSL
 03-13-2010, 11:02 PM #12 Silly Junior Member ioFTPD Registered User   Join Date: Oct 2003 Posts: 27 nice...finally here comes a new release...thanks yil
 03-14-2010, 04:31 AM #13 isteana Senior Member   Join Date: Mar 2006 Posts: 110 great.....but to making space features still not yet? it does not exist any available auto wipe feature for the present..except for old buggy warchive give some solution with next version for example way below .........it could be in ioftpd.ini [maximum_dir_for_section] # it will be delete oldest dir when exceeds the standard value set section game = set section util = [maximum_allowed_space] # it will be delete oldest dir during get the standard minum space set section appz = set section movie = huh? Last edited by isteana; 03-23-2010 at 01:05 PM.
 03-22-2010, 05:09 AM #14 newguy Junior Member   Join Date: Jul 2009 Posts: 16 Maybe a stupid question but how do i use virtual directories? Can anyone give an example for me on how to implement it?
 03-22-2010, 03:38 PM #15 Yil Too much time... FlashFXP Beta TesterioFTPD Administrator   Join Date: May 2005 Posts: 1,194 newguy: Check out the Changelog (in particular v7.0 and the new 7.2.0) for information on Virtual_Dirs. An early example can be found if you look at source/nxSearch.itcl which is a simple test script I wrote to return search results from the nxTools dupedb. The ioVirtual call to fill in the directory listing is documented in the doc/iTCL.txt file. Here's a newer example I was using to test with that just mirrors a VFS dir on the server as a pure virtual dir. I know, virtual this virtual that... I wasn't planning on releasing this yet so it's not documented and it contains whatever I was playing with at the time I was testing, but it may help you. In particular note that you can get the files/dirs to display in the listing from anywhere including a database like in the nxSearch example, but I just used another dir so I could compare them visually to see if things were working correctly... Code: # NOTE: <>'s are invalid in real filenames so useful to return them for purely # fake subdirectories because the server won't try to resolve them and thus # we save a lot of overhead. set mDir "test2" set vDir "vDir" proc AddDummy {name {link ""}} { set t [clock seconds] if {[string length $link] != 0} { ioVirtual AddDir 0$t $t "User" "Group" 0777$name $link } else { ioVirtual AddDir 0$t $t "User" "Group" 0777$name {} } } proc MirrorDir {vPath oPath} { foreach vEntry [resolve list $vPath] { # putlog "entry:$vEntry" lassign $vEntry name type uid user gid group size mode attributes \ winLastTime unixLastTime winAltTime unixAltTime subDirCount \ pathList chattrList uptime # it's important the the mode passed to ioVirtual only contain the 0777 # bits set else it complains and rejects it. set mode [expr {$mode & 0777}] if {$type == "d"} { if {$name == "." || $name == ".."} continue ioVirtual AddDir$size $unixLastTime$unixAltTime $user$group $mode$name "[file join $vPath$name]" #ioVirtual AddLink [file join $vPath$name] $name } elseif {$type == "f"} { ioVirtual AddFile $size$unixLastTime $unixAltTime$user $group$mode $name ":[file join$vPath $name]" } elseif {$type == "l"} { # putlog "type $type - [lindex$chattrList 1] -- $mode" ioVirtual AddDir$size $unixLastTime$unixAltTime $user$group $mode$name [lindex $chattrList 1] } else { return -code error "unknown :$type" } } return 1 } proc ProcessArgs {} { global ioArgs mDir vDir putlog "mirror: $ioArgs" # need to strip off quotes from arguments set fileName [string range [lindex$ioArgs 0] 1 end-1] set globPattern [string range [lindex $ioArgs 1] 1 end-1] set oldPattern [string range [lindex$ioArgs 2] 1 end-1] set exists [lindex $ioArgs 3] set cmd [lindex$ioArgs 4] if {$globPattern != ""} { # this can either be a real glob like *.txt, or it can be # the name of a file } set pathList [file split$fileName] if {![string equal -nocase [lindex $pathList 1]$vDir]} { putlog "Not in virtual dir!" return 0 } set target [file join / $mDir {*}[lrange$pathList 2 end]] set real [resolve PWD $target] putlog "$target = $real" if {$real == ""} { putlog "failed to resolve" return 0D } if {[file isdirectory $real]} { return [MirrorDir$target $fileName] } if {[file isfile$real]} { putlog "resolved: $target ->$real" AddDummy "||RESOLVED||" $target return 1 } if {$exists != "" && $exists} { # doesn't exist... just ignore return 0 } putlog "non-exist resolved:$target -> $real" AddDummy "||RESOLVED||"$target return 1 } return [ProcessArgs]`