Appendix A – Development History 2002-2003

Icon40 IPS

[ 2002-2003 | 2001 | 2000 | 1999-1998 ]

2003/12/09 22:00 – InetPowerServer v1.0.0 (Beta)

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.

2003/06/30 18:00 – InetPowerServer v0.9.9 (Beta)

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.

2003/03/23 20:15 – InetPowerServer v0.9.8 (Beta)

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.

2003/02/09 20:00 – InetPowerServer v0.9.7 (Beta)

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.

2003/01/19 00:00 – InetPowerServer v0.9.6 (Beta)

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.

2003/01/02 20:00 – InetPowerServer v0.9.5 (Beta)

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.

Jump to http://www.InetPowerServer.com/