Code:
v6.1.0 Release Notes
1) Changed the file layout for releases. Instead of /ioFTPD/ioFPTD,etc
everything is now just under /ioFTPD. This shouldn't effect anything
if you have been using relative paths.
2) ioFTPD-Start used to link to a small batch file that started ioFTPD
and then after a delay started ioGUI. The link was necessary to specify
that the batch file should create the console window minimized to avoid
seeing it during login. All of this has been replaced with a simple
application that does the same thing. This removes the problem of updating
the link's location if not installed in c:\ioFTPD and totally hides the
console window instead of just minimizing it.
3) Added new executable (ServiceInstaller.exe) and documentation file
(ServiceInstaller-README.txt). *** PLEASE READ THE README FILE!!! ***
Click ServiceInstaller.exe and it will ask if you want to install ioFTPD
as a service. If you run it again you will be prompted if you want to
remove the installed service. By default it runs under the Local System
account which is what most services run as, but I found using your regular
user account makes more sense and is required if you wish to access
network shares since granting network access to system accounts like Local
System is a bad idea. More info about default options can be found in
ServiceInstaller-README.txt which also explains some issues to keep an
eye out for.
4) New ioFTPD.ini option (Compute_CRC). Set this to false if you don't have
an onUploadComplete event or the script/executable you are using ignores
the value computed by ioFTPD. Default is True.
5) The CRC32 value passed to OnUploadComplete is now 0 if Compute_CRC is
False or it's the CRC32 value for the entire file. Previously the CRC
was only for the resumed portion of the upload which made no sense. I did
find a way to merge CRC32 values for a file so it only does the work once
which I think is cool. OnUploadError now always returns 0 for the CRC32
value.
6) New iTCL command (crc32):
crc32 filename [startPos] [length] [crcValue]
startPos: file position to begin computation at (defaults to 0)
length : number of bytes to process (defaults to filesize - startPos)
crcValue: value to begin crc32 computation with (defaults to 0)
Thus [crc32 file] will return the crc32 checksum for the indicated file.
7) Added Support for the CPSV command. This allows you to send a single
file via TLS/SSL using client mode which is necessary in some cases for
FXP SSL. Alternative to using SSCN protocol which turns on this
behavior for all files being transfered until turned off.
8) Changed .ioFTPD parsing to better handle invalid files. Previously the
server would crash in some cases with badly formed and/or incomplete files.
9) Fixed directory listings not updating properly if No_SubDir_Sizing was
enabled.
10) Changed CreateUser() to check for an existing user of the same name
before trying to create a new user. This should fix "site adduser"
returning "500 user-name: Module ownership conflict." and instead return
the far more appropriate "500 user-name: User already exists." error.
11) Changed "site adduser". Currently if you have permission to access
the command (by default users with G1M flags) and you have been given
groupadmin rights to specific groups via
SITE CHANGE user-name ADMINGROUP GroupA
the first group listed in the admingroups list is the one new users will
be created in by default. If you have no admin rights to any groups
(i.e. ioFTPD) the command used to create the user in the NoGroup group,
however this is clearly the wrong behavior for a user with just the +G
flag since they should not be able to create users who are not in their
group and not subject to the group's slot limits.
Now users with just the +G flag (i.e. no 1M flags) and no specific
admingroups configured will not be able to create users and will get
the error:
500 adduser: No group admin rights found.
Users the +1 or +M flags without any admingroups defined will act as
before and create users in the NoGroup group.
12) New super cookie ( $[AdminGroups(index)] ).
13) Modified text/ftp/UserInfo to show AdminGroups now that it's important
to see which group is listed first.
NOTE: group names are case sensitive, and "site change user admingroup"
adds/removes groups from the list in a toggle like fashion. If a
group is already there is it removed, it not it is added. Thus ordering
the list to get a particular group first can be a bit tricky for long
lists.
14) Whenever a connection is rejected because the IP has been auto-banned for
too many reconnections an entry is now recorded in Error.log.
15) New ioFTPD.ini option (Reject_Unknown_Ips). Set this to True to
automatically disconnect connections before sending the FTP Welcome
message for hosts who do not match any user's IP/Host mask. An entry
in Error.log is also made with the rejected IP/host.
16) New site command (site findip). This will return users who match a
specific IP address or hostname along with the hostmask that matched.
Thus "site findip 127.0.0.1" might return something like:
ioFTPD: 127.0.0.1
test1: *
Wildcards or incomplete addresses/hostnames will not work since the
user hostmask can contains wildcards so use dummy entries like X.Y.0.0
to find users with X.Y.* or X.Y.*.* in their hostmask. Command does
not understand ident names in the hostmask or return that portion of
the hostmask for matching entries. The data searched is the table used
for the Reject_Unknown_Ips option but is available even if the option
isn't enabled.
17) New field in ioFTPD.ini under [Sections] (<share section #>).
<alias> = <credit section #> <stats section #> <share section #> <path>
If you specify a <share section #> when defining a section then instead of
credits being applied to the current section they are added/spent from
the shared section. The biggest benefit of this is to enable you to
set different ratios for different sections but have a single credit
pool for the user.
v6.0.5 Release Notes [Not publicly released]
1) Changed "site free" to "site freespace" to avoid reported ioA/ioB conflict,
and modified ioFTPD.ini permissions to reflect change.
2) Added "site free" alias to call "site freespace". ioA/ioB users can just
remove this alias and use the textfile with cookie, and everybody else
won't notice a change.