Code:
v6.7.0 Release Notes:
1) Files in \system
Changed : ioFTPD.[exe,pdb] - Version 6.7.0.0
2) Files in \text\ftp
Changed: [AllDn, AllUp, WkDn, WkUp, MonthDn, MonthUp, AllDn, AllUp].Header
3) Files in \doc
Changed: itcl.txt, Cookies.txt
*** New Features:
4) Modified site command (site stats [dir]). Previously "site stats" would
default to showing information for the current section. Thus the results
would depend upon where you were in the VFS. You could, however, specify
a particular section to display but there was no way to see stats
across multiple sections. Now site stats defaults to showing the TOTAL
stats across all sections which should make it much less painful to keep
individual statistics for each section since you can get the totals now.
If, however, you wish the old behavior of seeing just statistics for the
current section based upon your location in the VFS you can specify the
"dir" option, or for a single specific section use "section #". If you
specify a section of -1 it means you want the total for all sections.
5) New cookie usage (%[pos] in text/[AllDn, AllUp, MonthDn, MonthUp, WkDn,
WkUp, DayDn, DayUp].Header). In any of the stat header files you can
now use %[pos] to retrieve the section of the stat information being
displayed. The default stat header files now print the section number and
the section name so it's easy to see what info is being displayed.
6) New cookie feature (%[SectionName(-1)]). The SectionName supercookie now
returns the string "[TOTAL]" if you specify the previously invalid section
number of -1.
7) New cookie feature (%[AllDn, AllUp, MonthDn, MonthUp, WkDn, WkUp, DayDn,
DayUp]). The stat cookies now accepts a section number of -1 which means
the total across all sections.
8) TCL UTF-8 conversion added. The ioFTPD interface to TCL now properly
converts all parameters passed back and forth. The new UTF-8 encoder
encodes 8bit characters with the high bit set to two byte UTF-8 sequences.
The new UTF-8 decoder converts all unicode code points below 256 to their
8bit equivalent, everything above that to '?', and in the case of
non-properly formatted input does nothing and simply returns the string
TCL provided.
* NOTE: Special thanks to isteana for a bunch of suggestions, and for
answering a lot of questions that helped solve the TCL issue with foreign
character sets.
9) New TCL iputs option (iputs -raw). If the -raw option is specified the
UTF-8 converter is NOT called on the string to be printed. This should
make printing Ascii art in .NFO files safe to do since it's possible that
some strings could be unlucky and turn out to be valid UTF-8 sequences and
converted by mistake.
10) New TCL putlog option (putlog [-sysop|-error|-system|-general] string).
You can now specify which ioFTPD logfile the string should be logged to.
Previously everything went to the -general (ioFTPD.log) file and this is
still the default if no option is specified.
11) New TCL config option (config version). Return the ioFTPD version string
as a list in the form "major minor patch".
12) New TCL config option (config counter). Return the number of site rehash
commands executed. This can be used by scripts to determine if the user
indicated that the settings may have changed.
13) New TCL command (sections). This command will return information about
configured sections from the ioFTPD.ini file. The format is one long
list with 5 elements for each section in the file:
<section-name> <credit-section> <stat-section> <share-section> <path>
14) New TCL command (mountpoints [file]). This command will return a parsed
form of the currently open mountfile or the specified file. The format
is a list of 2 elements of the form:
<vfs-path> {<real-path> ...}
Merged or raided directories are reported together for the indicated
vfs-path and \'s are pre-converted to / to make manipulation easier.
15) New TCL variable (uniqueid). The existing io_id variable was too bulky
to use. "uniqueid" is constant for each TCL interpreter and indicates
the count of previous interpreters created + 1. This is therefore unique
and small enough to use in logfiles.
*** Functionality changes:
16) The %[sharedcredits()] supercookie now looks up the requested STATS
section and display the credits for that section if stats=credit=shared
instead of just credit=shared. If that test fails then credit sharing or
separate statistics are being kept and it displays the "shared #"
message instead. This should now mean the proper information is shown
in "site uinfo" calls when you use section 0 for all credits, or
essentially global credits, but want to keep separate statistics for all
sections of the FTP so you can see who up/downloads where.
17) When adding a user with "site gadduser" the indicated group now becomes
the user's primary/default group. Previously if Default.User indicated
groups to automatically add the user to, the first listed group there
would become the primary group. Now the specified group will be used
as the primary group and any other groups listed in Default.User will
be added after.
*** Bug Fixes:
18) The user callable "site who" command now properly displays the sanitized
arguments to hide information from other users. Previously this was
computed correctly, but the new field wasn't used.
19) If a FTP_Pre-Command_Events event failed but didn't print an error message
this would cause problems because no reply to the command was ever sent
to the user. Now a generic command failed error message is returned which
should make the FTP client happy. This means you can now disable a
command by specifying a FTP_Pre-Command_Event that points to a missing
file.
20) The itcl.txt file didn't document the already existing [group list]
command.
21) When creating a user via "site adduser" or "site gadduser" the addip
message lines were showing up before the created user message. This
has now been fixed.
22) "Site adduser" would indicate it added new users to the "NoGroup" group
even if they were really members of real groups because of automatic
group assignment via Default.User. Site adduser now displays the actual
default/primary group for the user.