Appendix A – Development History 1999-1998 |
|
[ 1999-1998 ]
I have been fixing a lot of minor bugs all over IPS the last months, but I have not been writing everything here so I hope you all forgive me. Will keep up the history writing again now.
Please do note that the mailing list is moved to eGroup.com.
New: User parameter Aliases fully implemented.
New:
Configuration consistency checked on startup.
Fix: Incorrect
logging of bad protocol setting.
Fix: Minor handle misuse fixed.
Fix: Date for logfile history archives was wrongly generated.
Fix: Better handling of bad directory entries.
New: "Jan 1 1980" is shown instead of current date for root level (disks) directory entries without any available data.
Fix: Headings for SITE WHO command moved into language file.
Fix: SITE IDLE display current and maximum idle time-out if executed without any parameters.
New: Added Default anonymous user account, ftp, 0, [vErr:usr.logindirectory], *, 0 variable.
New: Added SITE NAME command to view/change current Fullname.
New: Added SITE STAT command to view user information and statistics.
New: Added SITE RADM UGET command to get any value from user files.
New: Added SITE RADM USET command to set any value in user files.
New: Added SITE RADM UDUPE command to duplicate a user.
New: Added SITE LIST and SITE NLST commands to LIST a directory using the control connection.
New: Added SITE RADM LIST USERS command to list users.
New: Added SITE RADM CGET command to get any value from any configuration file.
New: Added SITE RADM CSET command to set any value in any configuration file.
New: Support for multi-line responses from remote servers.
New:
Number of messages received and kBytes statistics counters added.
Fix: Minor memory leak in SMTP send code.
New: All "MX"
record servers tried.
New: "A" record servers tried if
no "MX" records are found.
New: Added Default anonymous user account, ftp, 0, [vErr:usr.logindirectory], *, 0 variable.
New: Variable localhost gives the Host setting from the service
config.
Fix: Date and time separators hardcoded to always be /
and : throughout most of IPS. Could mean changes to scripts and
applications dealing with date or time values from IPS.
New:
External password authentication possible.
Fix: Locked files would sometimes hang the FTP session.
Fix:
Possible to CWD to files in NT version. Is a bug in the VP toolkit,
workaround implemented.
New: Service setting ForwardToServer which when set will cause
IPS to forward all outgoing message to one specific SMTP server.
Fix: IPSxxx functions in RexxHooks never worked, now fixed.
New: Added RexxHook; rxOnData which is run after the .msg file
is received before it is delivered.
New: Variable messagefile
gives the path of the message file being processed.
New: Service
correctly handles FIBs in standard responses.
New: "Received:"
line changed.
New: "Return-Path:" added on delivered
messages.
Fix: Messages to local users only will no longer be in
the queue.
New: SMTP send implemented.
Fix: IPSxxx functions in RexxHooks never worked, now fixed.
New: First time passwords may be set in the format -password in
the user files for automatic encrypting on first logon.
Mod:
Documentation file updated and improved some, more stuff is
documented, and errors are corrected.
Fix: Error in OS/2 setup
script fixed.
New: Added extended status reporting while transferring files.
This has to be activated by issuing a SITE XIPS XCMD command. When
active, the control connection will send progress information on the
control connection while transferring data on the data connection.
*WARNING* Activating this breaks the FTP standard for the active
connection.
Fix: SITE IDLE command failed if a very large or
invalid values where given.
Mod: [SERVICES] section is removed from main.cfg and the same
info is no put into the [GLOBAL] setting ServiceSections.
Mod:
.stat files in user directory moved into new stats directory and
renamed from username.stat to usr.username. File format is unchanged
so you can move and rename you old files. New setting in main.cfg
points to this directory.
Mod: GroupDirectory is no longer used,
not that it ever was.
Mod: New setting in [GLOBAL] in main.cfg
named GroupsDefined is added to list all defined groups.
Mod:
[GROUP] section in the user files got the same treatment as the
[SERVICES] section in main.cfg. They are no in one setting called
MemberOfGroups.
Mod: IPS "Console" changed again. No
more command line, just a few key combos available.
Fix: Listing of drive letters fixed. (Some drives was not listed
always).
Fix: (Windows version only) CD .., CDUP should now
work. There are still a problem CD .. down to drive list directory.
You can CD / to get there.
Fix: Logfiles didn't record date changes.
New: Console screen
changed, input line moved to bottom, and an extra status window
added which shows protocol, main tid and number of connected clients
for each service. If you have more than 20 services running only the
first 20 will be shown.
New: New console command; ver; added to
show running IPS version.
Mod: Shutdown and Restart commands
will delay the action until there are no more connections or they
are executed twice.
Fix: Win32 version should hopefully be
useable again.
Fix: CWD failed for root of real disks sometimes.
Mod: SITE
RADM RESTART and SITE RADM SHUTDOWN changed to match the system wide
operation.
New: FTP data written to [STAT] section of user
files.
New: High speed of retrieve and send are now stored, so
are the last IP the user connected from.
Fix: Various bugs in
the example RexxHook scripts fixed.
Fix: Timeout not working correctly.
Mod: IPS made easier to kill from task-list or by closing the IPS window. This is done because of the high number of bad TCP/IP stack available and some of them can hang IPS.
Fix: Some drives would not show in directory listing and/or was not CD-able.
Mod: A/B drives also scanned for listing.
Mod: SITE RADM LIST changed to SITE RADM LIST SOCKETS.
New: SITE RADM LIST SERVICES added.
Mod: SITE ADMIN commands changed to SITE RADM command and output changed to be easier read by computers for all SITE RADM commands.
Mod: All SITE RADM commands need at least 4 characters specified.
Mod: SITE EWHO (in standard rxOnSite script) removed. Internal WHO command improved to display additional info for administrative users. Layout changed for normal users also.
Mod: Returning 550 response when trying to RETR a directory. Was 450 before.
Fix: Huge number of minor bugs fixed.
New: Configuration variables added, see example main.cfg file.
New: Server will receive and queue message which should be forwarded.
New: Message id inserted into "Received:" line.
Mod: All paths which should refer to the local file system are now correctly specified with backslash. All other paths are specified using forward slash. WARNING: This mean you have to convert you [ACCESS] section to use backslashes instead of forward slashes.
Mod: scr\* directory divided into multiple subdirectories by default, this means that the old standard FTPd scripts are moved into scr\ftpd\*.
New: All system read only variables are now available from within SMTPd and POP3d also. See updated list.
Mod: Corrected some errors in the documentation files.
New: Written about the user files in the setup documentation file.
New: Service parameter ClientAddress to control access from different client addresses.
New: FEAT command implemented (rfc2389).
New: SITE RADM LIST command to allow monitor type apps to view users with activity.
Mod: Security related; 5 seconds delay added if there is a password mismatch.
Mod: Security related; PORT command to IP other than clients will no long accept ports below 1024.
Mod: SITE ADMIN EXEC (in standard rxOnSite script) changed to SITE EXEC for compatibility with other FTP servers. Command is also improved to do the work in the current directory.
Mod: SITE ADMIN WHO (in standard rxOnSite script) changed to SITE EWHO.
New: DisableEA and DisableDircount service variables added.'
Mod: Removed pop-ups for empty drives. You don't need to have AUTOFAIL=YES in CONFIG.SYS anymore.
Fix: Incorrect LogFlag for RMD.
Fix: For some reason ABOR was disabled. It is not enabled again.
Fix: MDTM command could crash IPS.
Fix: SMTPd would have when receiving a message.
Fix: SMTPd could hang when two messages was received at the exact same 1000th of a second. I did not run into this, just found it in my code.
New: "Received:" line added to header of messages.
Fix: rxOnConnect now working properly.
New: Proper logging added.
New: RexxHook rxOnCommand implemented fully.
New: Commands DELE, LIST, NOOP, PASS, QUIT, RETR, RSET, STAT, TOP, USER, UIDL and APOP implemented fully.
New: RexxHooks rxOnCommand, rxOnConnect and rxOnUser implemented fully.
New: APOP need a new setting; APOPSecret in the user files to work. This should contain an non-encoded version of the APOP secret (password). If no APOPSecret is found the service will disable the APOP command for this user. The implementation of APOP may change later.
Fix: Connection to TELNETd crashed IPS.
New: IPS compiled with Virtual Pascal 2.0 beta 3.
New: Windows NT support (Windows 95/98 is not supported).
Fix: Some bugs introduced in v0.70b2 regarding SITE command.
Fix: Listing directories with dates outside the 1-12 range crashed IPS.
New: ABOR command implemented.
New: Directories checked for read-only attributes before allowing remove.
New: APPE command implemented.
New: Listing directories on first level (drive letters) will not show correct date (if available) and space used on the drive.
Mod: MDTM now returns seconds as well.
Mod: Some previously unknown bug was found and fixed during the Windows NT porting process.
(No changes)
Mod: Tried with various compiler/linker optimizing but that mostly lead to strange bugs on Warp 3 machines.
Fix: Bug in exception handler.
Mod: Major changes on variable implementation, please check the documentation and included example files. All variable names has changed and some new are added. The method to access variables are no longer %varname% but [vErr:varname].
Fix: Serious bug leading to many unused sockets.
Mod: Method of opening data connection changed slightly.
Fix: Error handling of bad data connections improved.
New: Resume on STOR supported.
Fix: Remove of directories was not possible.
New: REIN command implemented.
Fix: ETA on SITE WHO not always correct, could even kill IPS.
New: Default local data port finally used.
New: Added support for a "-" in front of the password to avoid multiple-line responses.
New: rxOnCommand RexxHook called before processing of all commands, this Hook can return 0 or a modified command line.
Mod: All RexxHooks lost their *Par setting in the group configuration file. Also, the Cmd at the end is removed.
New: MinFreeSpace service variable added. Number of free MBytes needed to accept new files.
Fix: Log-in was accepted even if OnUser rejected it. Only some badly written ftp clients would allow this.
Fix: Lots of bugs is fixed which I forgot to write down.
New: Better example message files and RexxHooks, thanks to Mario Gaucher for all the help.
Fix: Local mail delivery completely bugged.
Fix: Not sending "good bye" response after QUIT command.
Fix: Some minor bugs fixed, still only alpha/preview code.
Mod: Log format changed again.
Fix: REST log entry missing parameter.
Fix: Log entry from "startips.cmd" incorrectly formatted.
Fix: Date change was processed completely wrong in logging.
Fix: DebugFlag of 1 incorrectly logged the entered passwords.
New: Using undocumented "soabort" API call to kill bad sockets.
Mod: Error logging to "ips.log" improved.
New: Optional "ClientStack" parameter in "ipsgroup.cfg" to manually control memory allocation for client threads.
New: "SITE ADMIN SHUTDOWN" added.
Fix: Sockets not always closed correctly after a OnConnect rejection.
New: "startips.cmd" checking status if "ips2upd.exe" before upgrading.
Fix: It was possible to set idle time-out higher than TimeoutMax with SITE IDLE command.
Mod: Dynamic max file handle implementation failed sometimes, now set high number at start instead.
Mod: SITE WHO show speed of transfers, and speed is also logged.
Fix: SITE commands now logged.
Mod: SITE PASS cannot be enabled for Anonymous or Administrator users.
Mod: SITE IDLE overrides TimeoutMax if Administrator.
New: Optional "MaxBandwidth" in user files, this override the one in the service setup.
Mod: Services section in ips.cfg is gone, IPS searches for sub-directories under the "cfg\" directory for groups and a group configuration file within the directory with the same name as the directory itself with ".cfg" at the end. This is it old ipsgroup.cfg file. Services are setup in these configuration files.
New: SITE LANG [language-id] enable different response languages, ipsftp.e is renamed to ipsftp for default language.
Mod: Internal layout change to use more common code for the various services.
Mod: UserDirectory and GroupDirectory settings moved to the new GLOBAL section in group configuration file.
Mod: All RXCMD and RXPAR settings moved from response text file into group configuration file.
New: ACCESS section in user files implemented, this is always scanned before the ACCESS section in the group configuration file.
Mod: Default directory "info" file changed from ".dirinfo" to ".message".
New: "msg" directory introduced as default placement of multiple-line responses, two example files included as well.
Mod: Format of language files changed.
New: Old log files automatically compressed and put in history directory. You need zip in your path for this to work.
New: Data connections will be attempted against default port if no PORT or PASV command are used.
Fix: SITE ADMIN KILL was broken, dunno when.
Mod: All internal SITE commands can be abbreviated, also commands
are no longer converted to uppercase before sent to scripts.
Mod:
Uncontrolled shutdown refused and logged.
Fix: A lot of minor (and some major) bugs in the Idle and Stability Monitor code fixed thanks to help by Zadig- on IRC.
New: SITE PASS [password] and userfile/[USER].ChangePassword=[0|1]
Fix: Many small bugs fixed.
Mod: Log file format changed.
Mod: Distribute .ZIP includes a lower level "ips2" directory.
Fix: "startips.cmd" did not work as expected.
Fix: Not showing multiple-line responses.
Fix: Connections rejected by OnCONNECT not terminated correctly.
Mod: "bin\password.exe" can now be used in two modes: "password [password]" or "password [old] [oldcrypted] [new]".
Mod: Multiline response setting in "cfg\ipsftp.e" can now take "*.cmd" files and run them as RexxHooks as well. These are then called with only two parameters, socket and response_id. They can return a filename to display.
Fix: HideIfNoAccess flag in "cfg\ipsgroup.cfg" did not work correctly.
New: "bin\ch*" utils refreshed, and ls port added.
Fix: Not implemented ftp commands returned a "Server error ..." response.
Mod: Stability monitor changed to be nicer.
New: Icon's,
setup.cmd script and some other improvements.
Fix: Normal logout finally fixed.
New: SITE ADMIN MONITOR [idle] command.
Fix: PASV response returned wrong address on multiple-homed sites.
New: Runtime errors written to main log file for better error detection.
New: %_ftp.usr.anon%, %_ftp.usr.admin% variables.
New: Included new OnSITE and OnCONNECT example script.
New: %_ftp.cmdsock.prev%, %_ftp.cmdsock.next% variables.
New: RexxHook functions added: ipsLog( socket, str ), ipsVar( socket, str ), ipsSay( socket, str ).
Mod: All RexxHooks changed, check your config against new examples.
New: Passwords encrypted, use bin\password.exe to generate passwords for the user files.
New: First ExtendedAccess flags implemented.
Mod: cfg/* tree moved to doc/cfg/* in distribution archive to
avoid users overwriting their configuration. Also, bin/ips2.exe is
now distributed as bin/ips2upd.exe which will allow you to unpack
this and further releases directly and upgrade by just doing a SITE
ADMIN RESTART.
New: %_ftp.configfile%, %_ftp.configsection%
variables.
New: SITE WHO command (this was in the previous beta also).
Mod: Console debug toggle moved from D to Alt+D.
Fix: One more bug in my socket toolbox.
Fix: Wrong response on unknown user login.
New: Stability monitor checked by other threads, if it blocks of more than 15 minutes IPS/2 will restart. This give IPS/2 two way stability monitoring.
New: Multiple drives feature completed, will now list active drive-letters as directories. I was thinking of implementing this as volume labels, but that was too much work. Drive A: and B: are not scanned or listed.
Fix: Timing error in bandwidth limited.
New: Changed code to use my Timer tool-kit which support timing over longer periods.
Mod: _ftp.sent, _ftp.sentkb, _ftp.recv and _ftp.recvkb variables are for current session.
New: _ftp.usr.sent, _ftp.usr.sentkb, _ftp.usr.recv and _ftp.usr.recvkb vaiables added.
Mod: EAs support disabled for TVFS drives, please let me know if a TVFS upgrade with better support for EAs comes aloong.
New: SITE ADMIN KILL [socket] and SITE ADMIN RESTART commands.
Mod: Most log stamps and command responses rewritten. This also include more accurate responses.
Mod: Characters higher than decimal 127 accepted at end of commands.
New: XCUP, XCWD, XMKD, XPWD and XRMD command finally accepted.
New: Simple HELP command implemented.
New: MODE command implemented, only Stream mode supported.
New:
_ftp.curpath variable.
New: REXX hooks. The following hooks are defined: OnConnect, OnUser, OnSite, OnRetr, OnStor and OnPass (for anonymous login only). Please check your "ipsftp.e" file.
New: Counting sub-directories for LIST output.
New: FTP configuration variable "HideIfNoAccess" can be set to 0 or 1. If set to 1 nothing without access will be shown on LIST or NLST output, however this setting do slow down these commands and are not recommended on busy sites.
Fix: RETR and STOR incorrectly returned a 550 message instead of a 450 message.
New: Added work-around for TVFS bugs with EAs and disk identification. This may not work 100%.
New: Bandwidth limiting implemented. Check "ipsgroup.cfg". This feature will limit the transfer speed of files sent _to_ users only.
Fix: LogFlag not honored by some commands.
Fix: Incorrect
receive and send flags used on some machines.
HTTP, SMTP and POP3 protocols.
Fixed bug: Connection closed just after connect.
Fixed bug: Strange access, was displayed correctly by ls, but not reported correct to other functions.
ftpcmd.txt list what access needed for what command.
Cleaned access system for all reported bugs and some, it actually was a lot of them
Better configuration example included.
Finally got path masks
in the [ACCESS] section right.
REXX hooks.
Access rules (like the system in zftpd).
Minor misspellings at various locations, please find more of them.
Added console "debug" routines, press D to toggle.
Added SITE IDLE command.
Fixed missing parameter in log stamp from TYPE command.
Added RNFR and RNTO rename commands.
Added WelcomeFile variable in ipsgroup.cfg.
USER and PASS command give error message if already logged in.
Looking up hostname for log file. (I had forgot about this)
REXX hooks.
Access rules (like the system in zftpd).
Fixed "" user response on non existing user.
Written better readme file.
Changed files in doc/ to .html.
I had messed up the bits in the rwx accessed, now fixed.
Implemented EA support. It is now possible to set rights using
ch* style UNIX utilities.
Last memory leak in ftp client object
fixed, current memory leakage is 0 bytes. :)
Rename commands.
SITE commands.
Some semi multiple-disk feature implemented. You will be able to set the standard RootDirectory empty and change between /d, /e etc. but you will not be able to change to /. This could confuse some ftp clients.
Idle time-out activated, added Timeout variable in ipsgroup.cfg.
Added logging to all completed ftp functions.
Fixed the memory leak in the previous release, this was not done for debug purposes at first.
Fixed/improved various small code segments.
Fixed %% in SYST response.
Passive mode activated.
Rename commands.
SITE commands.
Fixed some bugs from previous preview release.
Most commands
activated.
Passive mode.
Rename commands.
Some logging.
This document is the exclusive property of Terje Flaarønning.