View Single Post
Old 03-26-2010, 08:30 PM  
Too much time...
Join Date: May 2005
Posts: 1,194
Default ChangeLog

v7.3.0 Release Notes:

IMPORTANT: The way ioFTPD.exe is linked has changed.  If you get the following
           popup error dialog:  "This application has failed to start because
           the application configuration is incorrect.  Reinstalling the
           application may fix this problem."  Then you need to install the
           Visual Studio 2008 SP1 runtime from MS, see #4 below!

1) Files in \System:
   Changed : ioFTPD.[exe,pdb] - Version
   Changed : tcl85t.[dll,pdb] - Version (dynamic CRT, dated 3/24/2010)

2) Files in \:
   Deleted : README
   Added   : README.txt

3) Directories in \lib:
     Replace entire reg1.2 directory.
     Replace entire dde1.3 directory.

*** New Features

4) The TCL dlls and ioFTPD.exe are now linked against the VS2008 SP1 dynamic
   CRT/runtime dlls.  This means that they need to be installed on your
   computer because they are not distributed via a simple file you can drop
   into the directory and ioFTPD doesn't have a fancy installer...  I think
   Win7 and perhaps Vista have these installed by default, but XP I know does
   not, although it is possible that another piece of software installed these
   for you are part of their setup.

   If you run ioFTPD.exe and see the follow message:

     This application has failed to start because the application
     configuration is incorrect.  Reinstalling the application may fix this

   then you don't have them installed. Goto:

   to download vcredist_x86.exe for VS2008 SP1 which is a free download.

   You may also see entries in the system event log in the System category
   if running ioFTPD as a service or if you somehow aren't seeing the error
   message popup.  They are under the name 'SideBySide' and look like:

     Dependent Assembly Microsoft.VC90.CRT could not be found and Last Error
     was The referenced assembly is not installed on your system.

     Resolve Partial Assembly failed for Microsoft.VC90.CRT.  Reference error
     message: The referenced assembly is not installed on your system.

     Generate Activation Context failed for c:\ioFTPD\system\ioFTPD.exe...

5) Added a new thread that just updates a variable with the current time every
   10 seconds after having called a simple function that internally uses the
   loader lock.  When the window's internal loader lock gets stuck this should
   fail to return and within a minute the process will detect this in another
   thread, output a log entry that looks like:
     "System detected loader lock compromised!  Terminating!"
   and then try to terminate the process immediately / ungracefully.

6) When run as a service ioFTPD will now return an error code to the service
   control manager if the server was unable to start because of an error
   during initialization.  This should result in a windows system event being
   logged which can help alert you to the problem.  The Invalid Function
   error (#1) is used if the server doesn't have a more appropriate error
   code to return.  When run interactively the server will continue to just
   pop up a dialog box with the error.

7) To restore compatibility with nxMyDB the exported functions Config_Get,
   Config_Get_Int, Config_Get_Bool, Config_Get_Path have the old signature
   and only work against the server's configuration file, usually ioFTPD.ini.
   Also, I've recorded the list of functions nxMyDB looks up and will try to
   keep them the same in the future.

*** Bug Fixes:

8) Fixed a bug where the server would crash if a valid user was logging in
   and the userfile lock was unable to be acquired, or if in the process of
   being acquired and the user was kicked (via site command or !login).  The
   later is nearly impossible as local locking cannot fail and is very quick,
   however the former may be common when using 3rd party user modules such
   as nxMyDB and the DB is offline / lagged.

9) Fixed a bug with hostnames forwarded via the IDNT commmand from BNCs.
   If the BNC forwarded the IP address as the hostname the server would treat
   it as a reverse resolved hostname and apply the host obscuring rule to it.
   Now if the IDNT command sees the host parameter is all numbers it converts
   it to an IP address and if it matches the actual IP address portion of the
   the IDNT argument it doesn't set the hostname.  That emulates the regular
   meaning of the hostname field where it is only set upon successful reverse
   resolving of the IP address, thus when the server needs to display a
   hostname it will default to using the IP address in numeric form and apply
   the IP obscuring rule to the result.
Yil is offline   Reply With Quote