Code:
40) New site command (site RemoveCert name). If no SSL connections are in
use but a SSL cert is loaded then this command will attempt to unload the
cert and remove it from the CurrentUser My/Personal store. Primarily
useful for removing certificates stored under the Local System account
when running ioFTPD as a service. Requires the M flag and the cert name
must be one of the checked names used by makecert. Thus you can't
delete arbitrary certificates.
NOTE: To view installed certificates for regular users you can use the
certificate snap-in for the Microsoft Management Console as this should be
available on W2k+. (start->run, "MMC", File->Add/Remove Snap-In, Add,
Certificates, Add, My user account, Finish, Close, OK. As a shortcut you
can try from start->run prompt "certmgr.msc" which will allow you to
manage the certs for the current user only with fewer steps.
NOTE: I know of no way to do anything related to the LocalSystem account
using the default store using any GUI tool. Thus if you have installed
ioFTPD as a service and are running it under the default LocalSystem
account site makecert/removecert are your friends. For security purposes
you probably should be using a limited rights account anyway though...
41) New ioFTPD.ini option (Obscure_IP under [Network]). This allows you to
specify how many elements of the dotted IP address should be obscured in
all logfiles. Thus instead of 1.2.3.4 it will show up as 1.2.3.* or
1.2.*.*, etc. A setting of >=4 will result in "-hidden-" being shown.
42) New ioFTPD.ini option (Obscure_Host under [Network]). This allows you to
specify how many elements of a printed hostname should be obscured in
all logfiles. Thus instead of foo.bar.com it will show up as *.bar.com
or *.com. If the entire hostname is obscured the text "-hidden-" will
be shown instead.
NOTE: The combination of Obscure_IP and Obscure_Host should remove the
need for any locally run BNCs. However their use obscures even items
like auto-ban messages and user hostmask mismatch messages which can
be annoying at times.
43) New ioFTPD.ini option (Dynamic_DNS_Lookup under [Network]). If a user
hostmask begins with a colon ":" and is a hostname without any wildcards
then during the login event you can force a DNS lookup of this hostname
to see if matches the user's IP. This should add support for people who
use dynamic DNS services like no-ip.com.
44) New ioFTPD.ini option (Knock_# under [Network]). When running a server
with Reject_Unknown_Ips there is no way to even get to a login prompt
if your IP has changed. This can now be a common problem if using just
a dynamic IP address hostmask. The solution is a very simple knock-
knock system which will add the knocking IP to a temporary list so
you can connect. Knocking essentially means connecting via TCP to
between 1 and 5 ports in a short amount of time. This can easily be
done in most FTP programs by just setting up fake ftp servers on the
knock ports and trying to connecting in order, or using the ioKnock
GUI on windows machines.
45) New executable (ioKnock.exe). This creates a very simple frontend
that allows you to store knock sequences for various sites and to
easily execute them. With no arguments it pops up a GUI, or with
1 command line argument it will attempt to locate a saved site by
that name and execute the knock.
46) Support for enhanced crash reporting added. Instead of writing to the
c:\ioFTPD.crash.log file with just the exception ID and crash address
the server will now create 2 or 3 new files...
47) New output file (CRASH-Log.txt) generated on program crashes. Contains
a human readable reason for the crash, useful information like the
operating system version and processor information, address ranges of
all the loaded modules for the program, as well as stack backtrace info.
It looks something like this:
Fri Sep 21 02:32:12 2007 - ioFTPD v6.3.0
Unhandled exception: Access Violation (0xC0000005)
Address: 0x00436A4D [attempting to write data to 0x00000000]
PID=1988, PATH=c:\Projects\ioFTPD6\ioFTPD\system\ioFTPD-debug.exe
System information:
Processor #0 Name: AMD Athlon(tm) 64 Processor 3000+
Processor #0 Identifier: x86 Family 15 Model 12 Stepping 0
OS: Windows 0.0 (build 0)
Registry: Microsoft Windows XP
Decoded: XP - Service Pack 2
Page size: 4096
Modules:
--------
[00400000 - 004d8000]: c:\Projects\ioFTPD6\ioFTPD\system\ioFTPD.exe (v6.3.0.0)
Rest of Modules...
Threads:
--------
ID: 2608 [00130000-0012fe94]
# 1: 7C90EB94 -> [ntdll + DB94] _KiFastSystemCallRet@0() + 0x0
# 2: 7E4191BE -> [USER32 + 81BE] _NtUserGetMessage@16() + 0xC
# 3: 00416B50 -> [ioFTPD + 15B50] ProcessMessages() + 0x40
[c:\projects\ioftpd6\6.3.0\src\internalmessagehandler.c, line 106]
# 4: 0041A2B0 -> [ioFTPD + 192B0] CommonMain() + 0x30
[c:\projects\ioftpd6\6.3.0\src\main.c, line 250]
# 5: 0041A6F3 -> [ioFTPD + 196F3] WinMain() + 0x273
[c:\projects\ioftpd6\6.3.0\src\main.c, line 390]
# 6: 004431E9 -> [ioFTPD + 421E9] __tmainCRTStartup() + 0x177
[f:\sp\vctools\crt_bld\self_x86\crt\src\crt0.c, line 324]
# 7: 7C816FD7 -> [kernel32 + 15FD7] _BaseProcessStart@4() + 0x23
Rest of Threads...
48) New output file (MINIDUMP-date.time-pid.dmp). Contains a near perfect
image of the application at the time of the crash. Size is roughly 4MB
using the provided dbghelp.dll for a simple server. Larger sites with
a large directory cache size will obviously be bigger.
49) New output file (TINYDUMP-date.time-pid.dmp). Contains just basic
information, the thread stacks, and variables directly referenced by
things on the stacks. Size is roughly 200k using the provided dbghelp.dll.
50) New ioFTPD.ini option (Crash_Dir under [Locations]). Allows you to
specify the directory to create CRASH-Log.txt, MINIDUMP* and TINYDUMP*
files in. Default is directory where ioFTPD.exe is located.
51) New ioFTPD.ini option (TinyDump_Only under [Locations]). Allows you to
disable the generation of the MINIDUMP* files. This is disabled by
default since many problems can only be solved with this larger memory
image.