Appendix A – Development History 2002-2003 |
|
[ 2002-2003 | 2001 | 2000 | 1999-1998 ]
Scope |
Type |
Description |
---|---|---|
IPS framework |
Change |
Minor change to the way IPS upgrades itself from previous versions |
IPS framework |
New |
Added command line option to change the location of the log file directory tree. |
IPS framework |
Fix |
Fixed problem where IPS attempted to access main log file before the directory was created. This bug was present before the new option above was added. |
IPS framework |
Change |
IPS will no longer attempt to start site personalities in “hidden” directories. |
TTB framework |
Fix |
Fixed a serious problem where the I/O routines reported files to be opened even if they was locked and impossible to open. This could have caused all kind of undefined behavior. |
SMTP service |
Fix |
Fixed problem where a remote mail server would accept connections but just drop it again without allowing any transactions to start. |
HTTP service |
Fix |
Fixed crash if there was a problem receiving POST data. |
SMTP service |
New |
Added hook support for HELO (and EHLO), MAIL and RCPT commands. |
SMTP service |
New |
Added session variables smtp.recipient, smtp.remotedomain, smtp.reversepath. |
Documentation |
New/Fix |
Various improvements and fixes done to the documentation. |
FTP service |
New |
Added session variables ftp.anonymouspassword, ftp.directory, ftp.directory.os, ftp.lastaccess.os, ftp.rootdirectory, ftp.status, ftp.timeoutmax and ftp.type which will replace the old non ftp.* based ones. |
POP3 service |
New |
Added session variables pop.messages.count, pop.messages.size and pop.status which will replace the old non pop.* based ones. |
IPS framework |
New/Change |
Completed more of the DLL hook support. DLLs are now loaded only once and ipsInitialize and/or ipsFinalize is called when loaded or before unloading. There is also added a function address search for _<functionname>@<stackbytes> if the plain name is not found. |
IPS framework |
Change |
Minor improvement to the document cache algorithm. |
IPS framework |
New |
Added option to disable any given site personality group with new option “DisablePersonalities” in the [GLOBAL] section of ips.cfg. |
SMTP service |
Change/Fix |
Improved message delivery to remote SMTP servers slightly. |
SMTP service |
New |
Added hook support for one stage of message delivery. |
SMTP service |
New |
Added session variable smtp.deliverystage. |
SMTP service |
Change |
Added output of day-of-week for SMTP related dates. This was not needed by the standards, but why not print it. |
SMTP service |
New |
A missing “Date:” field in message headers are now automatically added. |
SMTP service |
New |
Added missing output of timezone in date fields. On OS/2 this require a proper set TZ variable or that the timezone value is set in the data returned from DosGetDateTime. |
HTTP service |
New |
Made it possible to use .DLL based hooks CGI style. |
IPS framework |
New |
Added Alt+S console option to printout group and service session status. |
IPS framework |
New |
Added possibility to write (controlled) to the IPS console and main log file from DLL based hooks. |
FTP service |
Fix |
Fixed incorrect response line from SIZE command. |
IPS and TTB frameworks |
New |
All IPS applications are now built using the latest Virtual Pascal 2.1.274. See www.vpascal.com for your Pascal development needs! |
IPS framework |
Fix |
Fixed problem in thread pooling algorithm which could cause a service to hang when very heavily loaded on slow machines. |
IPS framework |
New |
Improved stability monitor slightly, it will now detect blocked services better. Please; if anyone has problems causing any kind of IPS restarts, please let me know as these are bugs even if IPS recovers automatically. |
IPS framework |
Change |
Made minor, but important changes to the ips DLL hook support. Please check any hooks you are using. |
IPS framework |
New |
Experimental support for running as a NT service. Check the ips32svc.exe file. The functionality will probably be included in ips32.exe at a later stage. This functionality has now been merged into ips32.exe and ips32svc.exe should be removed. (After 2003.11.26) |
POP3 service |
Change |
Changed APOP implementation to use the new Secret parameter in user accounts. APOPSecret has been removed. |
IPS framework |
New |
Added support for tracing of ips*.exe. |
TTB framework |
Change |
Optimized and cleaned up all of the utility part of TTB. This improves the robustness and speed of IPS and all other applications I write based on TTB. |
TTB framework |
Change |
Rewritten complete socket handling routines. These are however only used by ips*con for now as the job of porting ips*srv is huge and not going to be done before later. The reason for this is that current implementation works very well and the risk of introducing new bugs are high. |
IPS framework |
New |
Added C translation of the IPS hook interface to the distribution. Thanks to Harald Eilertsen for the translations. |
Scope |
Type |
Description |
---|---|---|
IPS framework |
Obsolete |
session.* and sock.* (not sock) variables obsoleted as they cannot be safely used in the new a performance optimized IPS. |
IPS framework |
New |
Added service configuration parameter MaxSessionsReject to specify a maximum number of total sessions to allow for each service. |
IPS framework |
New |
Added service configuration parameter MaxSessionsIgnore to specify a maximum number of total sessions to allow for each service before connections are ignored (socket are dropped once connected). |
IPS framework |
New |
Added variables sessions, sessions.ip and sessions.anonymous to count service sessions, sessions with from the same IP and anonymous sessions. |
IPS scripts |
Change |
Rewritten default REXX scripts for FTP connection to use internal counter variables since it is no longer possible to do the calculation in REXX hooks. |
TTB framework |
Change |
Replaced complete disk I/O system. This was intentionally scheduled for post 1.0, but has now been done. |
FTP service |
Fix |
Make sure files are closed before sending response back to client. |
TTB framework |
Change |
Updated to support Regina 3.1 released on April 5th, IPS now uses reginats.dll. This was later changed again with the release of Regina 3.2 and IPS revert to using regina.dll which is now thread safe by default on platforms supporting threads. |
HTTP service |
Fix |
Fixed possible security issue with the Log Files function in the web based admin interface. (Admin rights was needed) |
IPS services |
Fix |
Various fixes to minor bugs. |
HTTP service |
Change |
Management interface starting to take form again, most settings viewable and some changeable as well. |
IPS framework |
Change |
IPS will delay a few seconds between restart attempts if a unexpected shutdown happens to quickly. |
IPS framework |
Change |
Changed method used to archive log files as the previous one failed when trying to archive two sets of logs at the same time. |
TTB framework |
Fix |
Fixed problems with handling of Windows CriticalSections. This could have seriously affected some Windows installations of IPS. (Frequent crashes) |
TTB framework |
New |
Added support for signal handling. |
IPS framework |
New |
Added signal handler which trigger proper shutdowns of IPS. |
HTTP service |
Fix |
Some variation of CGI sessions could get stuck and would not been cleaned, even after the timeout expires. |
IPS framework |
Fix |
Debug support (additional logging) sometimes caused IPS to crash because of a data overflow. Better crash than compromise security like M$ does this, right? :) |
IPS distribution |
Change |
The graphical ips32mgr.exe is no longer part of the basic IPS distribution. The application will reappear later as a stand alone add-on. Old versions of this utility should work fine with this version of IPS. |
IPS distribution |
Change |
The ch*-style utilities and ipsrexx.dll removed from basic IPS distribution. These files are available directly from the IPS web site. |
Scope |
Type |
Description |
---|---|---|
SMTP service |
Change |
Optimized queue handling slightly. |
TTB framework |
Fix |
Sometimes empty message header files (*.hdr) was left behind in the queue directory. |
SMTP service |
Fix |
When looking for A records for a non existing host, IPS could crash. |
SMTP service |
Fix |
When an account on any specific server failed, IPS would abort all delivery to this server but only report the failed account(s). IPS now delivers to all possible accounts. |
IPS framework |
Fix |
Fixed update of object title on created WPS objects (OS/2 only). |
IPS framework |
Change |
Console buffer stored in memory not on disk. |
TTB framework |
Change |
Various performance and robustness improvements. This is just the beginning and there is more to come as we get closer to the magical 1.0.0 release! |
IPS framework |
Fix |
A few minor corrections to the .DLL based hook handling. |
TTB framework |
Change |
Exception handler improved to output module name in case of a serious problem. |
SMTP service |
Change |
Changed rules for resolving email domains. |
IPS framework |
Change |
Changed hook exception handling. Callbacks are handled internally as we can safely handle those. Hook calls themselves are no longer handled and will allow IPS to crash and restart since we don't know that it is safe to continue. |
Virtual Pascal RTL |
Fix |
Fixed handle leak in Virtual Pascal RTL (Win32 only). Thanks to “dink”, author of Z! and other fine OS/2 software. |
TTB framework |
New |
Added support for timing in trace system (OS/2 only, Win32 already had this) |
TTB framework |
Change |
Default exception handlers improved to output more information as well as they was optimized some. |
IPS framework |
New |
Added user setting “Secret” which is automatically updated and contain the users password in a form which IPS can decrypt. |
Scope |
Type |
Description |
---|---|---|
SMTP service |
New |
Intermediate delivery messages now includes information about any problems in the conversation with the remote host. |
HTTP service |
Change |
Optimized the CGI Processor for size and use of resources. OS/2 version of the CGI Processor is also left uncompressed as it is loaded for each CGI session and this saves time to decompress. |
IPS packaging |
Change |
Removed Win32 icon files. Added additional OS/2 icon files where missing. Someone please tell me how to get OS/2 to read icons from VIO applications without using EAs or .ico files! |
SMTP service |
New |
Added authenticate before SMTP support. Any authentication within the same security context regardless of service overrides ForwardAddress setting of SMTP services. |
IPS framework |
Change |
Optimized some internal code for hook handling. |
IPS framework |
Fix |
Fixed alias lookup problem. |
TTB/IPS frameworks |
Fix |
Fixed various memory leaks. |
SMTP service |
New |
Completed initial implementation of ForwardDomains support. This finally allow IPS to work properly as a non-primary MX server. |
IPS framework |
Change |
Optimized client pool code slightly. |
IPS framework |
Change |
Add system variables session.first, session.next and session.prev. These will replace sock.first, sock.next and sock.prev and example RexxHooks has bee updated accordingly. |
IPS framework |
Fix |
Fixed problem where IPS lost control over some session threads. This caused various resource leaks. |
FTP service |
Change |
Added default location information in the 00readme.txt included in the example configuration. |
FTP service |
Change |
RNFR command now checks against No Delete restriction. |
Scope |
Type |
Description |
---|---|---|
SMTP service |
Change |
Simplified final delivery message, wrapped message lines in templates and corrected some template text. |
System startup |
New |
Added check for anonymous and postmaster accounts/aliases as they are needed for HTTP and/or SMTP services to work properly. Only notifies any problems in the log file. |
System setup |
Change |
Changed icon created to not set the “Start minimized” flag as it does not work well together with the console autostart feature. (OS/2 only) |
IPS framework |
New |
Services forces to bind to localhost address (127.0.0.1) if any of the default passwords are present. This means that you must change passwords to be able to bind to normal IP addresses. Also the default configuration is now without the Address= lines in the site personality file. |
IPS Console |
New |
Added prompt for password if unable to detect it otherwise. |
TTB framework |
New |
Added workaround to strange behavior of TCP/IP stack in Windows 2000 which could lead to incorrect data on a command connection. This could also include corrupted e-mail messages. It was not possible to reproduce the problem on OS/2 or Windows XP. |
HTTP service |
New |
Added new Example Home Page. |
HTTP service |
New |
Added simple SSI functionality. #include and a special version of #echo which allow you to parse normal IPS FiBs. |
Scope |
Type |
Description |
---|---|---|
SMTP service |
Fix |
Outgoing message delivery sockets did not bind to the SMTP port and therefore blocking in some very secure firewall setups. |
Documentation |
Rewrite |
Chapter 4 is finally completed with all information intended for the current rewrite. The documentation will be improved even further as time goes, but most important contents are now in place. |
System wide |
Change |
A lot more configuration parameters are made optional and assigned internal default values. The details about each parameter are found in the documentation. |
System upgrade |
New |
Added automatic upgrade of configuration files which has not been changed when upgrading from a previous version of IPS. Files not automatically upgraded are listed so they can be manually upgraded. |
TTB framework |
Fix |
Fixed problem causing a trap when client sent an incomplete SITE RADM command to the FTP service. |
RexxHooks |
Fix |
Improved error handling regarding Rexx scripts. It should not longer be possible to crash IPS by requesting unavailable data from any of the Rexx functions. |
FTP service |
New |
Added settings to override the address and/or port range used by passive FTP connections. This is to ease the setup of IPS behind firewalls not supporting FTP properly. |
IPS framework |
Change |
Optimized a few minor routines used frequently for better code reuse and faster execution speed. |
IPS framework |
Change |
Minor improvements done on IPS support utilities. |
SMTP service |
Fix |
Sometimes outbound connections would fail to backup SMTP servers even if they was up and running. (OS/2 only) |
FTP service |
New |
Added support for Deny List access restriction attribute. |
System wide |
New |
Added support for NT assisted authentication in Windows version. |
TTB framework |
New |
Layered DNS lookup code and added Windows platform support (This was lost in a disk crash way back). |
SMTP server |
New |
Added option BindOnDelivery (See documentation). |
RexxHooks |
Fix |
Fixed bug where IPS incorrectly interpret return codes (Windows only). |
RexxHooks |
New |
Added log entry for bad Rexx scripts. |
RexxHooks |
Fix |
Fixed problem when using RexxHooks as service responses. |
Hooks |
New |
Added support for .dll based hooks. |
Hooks |
New |
Updated ipsHookInterface.pas and added ipsHookExample.pas. These files include most information needed to create .dll based hooks. |
Documentation |
New |
Updated various parts of the documentation. |
Hooks |
Change |
"rxOn*" parameter names changed to "hookOn*" since hooks on longer are Rexx only. |
Hooks |
Change |
Example RexxHooks renamed from "rxOn*" to "On*" as the extension already identifies them as RexxHooks. |
IPS packaging |
Change |
Cleaned default configuration files, removed all settings which shipped with default values. |
Hooks |
Change |
OnPass.rexx example RexxHook removed from IPS package as it was disabled by default anyway. |
Hooks |
Fix |
OnConnect.rexx, OnSite.rexx and OnUser.rexx example RexxHooks cleaned and rewritten to work properly even on Windows. |
System wide |
Fix |
More small bugs fixed. |
System wide |
Change |
Changed console commands Alt+R (Restart) and Alt+S (Shutdown) and added new Alt+I command. Added .restart.instant and .shutdown.instant command files as a replacement for the .kill file previously supported. |
FTP service |
Fix |
Disabled SITE PASS command for account with <ntdomain> or <external> authentication. |
SMTP service |
Fix |
Fixed various state and cleanup issues with message reception. |
SMTP service |
Change |
hookOnData changed to allow message rejection. |
SMTP service |
Change |
ForwardToServer parameter made optional. |
SMTP service |
New |
Added ForwardDomains list parameter to specify domains for which this server always allow forwarding to. |
IPS framework |
Fix |
Fixed problem which could crash IPS if unknown users tried to authenticate. |
SMTP service |
Fix |
Fixed a problem with cleanup after broken SMTP connections. This also caused a 100% CPU situation. |
SMTP service |
New |
Parsing incoming message headers and adding them to their own section in the .hdr file for easy access. Added variable “smtp.!<headerfield>” to access them from IPS. |
FTP service |
Fix |
Corrected some access issues regarding directory access. |
IPS framework |
New |
Added proper check of configuration IP addresses. |
SMTP service |
Fix |
Added alias resolving when delivering messages with unresolved .hdr files. |
SMTP service |
New |
Added message delivery status reporting. |
This document is the exclusive property of Terje Flaarønning.