Code:
v7.4.0 Release Notes:
1) Files in \System:
Changed : ioFTPD.[exe,pdb] - Version 7.4.0.0.
Changed : dgbhelp.dll, symsrv.dll - Version 6.12.2.633
Added : libeay32.[dll,pdb], ssleay32.[dll,pdb] - Version 1.0.0.0
Deleted : makecert.exe
Changed : ioFTPD.ini - summary of changes by section...
[FTP_Service] : BNC_HOST_# comment changed.
*** New features:
2) The server now uses the OpenSSL library to perform SSL/TLS encryption.
New SSL/TLS certificates will be needed and can be created via the
"site makecert" command, and removed via the "site removecert" command.
The server can now do this without the help of an external program.
The certificates are stored as <name>.key and <name>.pem files in the
ioFTPD system directory. If necessary change permissions on the .key
file to make it readable only by the server/you if the machine is shared.
For the moment the following ioFTPD.ini settings do not matter, however
they may in a future build so until I decided one way or the other I'm
not deleting references to them.
[FTP_Service] : Min_Cipher_Strength, Max_Cipher_Strength
[Threads] : Encryption_Threads
3) Make sure you now have at least as many io_Threads under [Threads] as you
do cores as the encryption and CRC computation for incoming files are
performed in the I/O thread now instead of a separate thread.
4) You may now specify wildcards in BNC_HOST_# definitions for a service.
Dynamic DNS hostnames are not supported at this time.
5) AUTH SSL and implicit SSL connections used to imply PROT P but AUTH TLS
didn't... Now none do, as clients are supposed to enable this via PROT P.
*** Bug Fixes
6) Fixed a race condition when a service starts that would cause some or even
all sockets listening for connections to not be created. This should fix
the server sometimes not accepting connections at startup problem.
7) Changed socket and file read/write routines to make sure they clear the
overlapped fields that should be set to zero before using them.
*** Internal changes:
8) The Overlapped socket structures contain an identifier that is incremented
before each call, and cleared in the callback. This can detect bad usage.
If everything looks good it will be removed in a later build.
9) Moved CRC field out of overlapped structure and into ioFile itself.
10) The following functions no longer exist or have changed enough that they
should not be called by external modules: ioSend, ioRecv,
TransmitPackages, ReceiveLine, ioCloseSocket, Secure_SendResult,
Secure_ReceiveResult.