WHAT'S NEW IN KSP TELNET 5.0: New Feature: Added an option (ksp-tlnt.allowed_ip_list) to specify the name of a file containing a list of allowed IP addresses. Users will not be allowed to connect to any IP address not on this list. Enhancement: Whenever the local BBS console screen is disabled (by SysOp command, user selection of binary mode, or during Zmodem transfers), KSP-TLNT now displays the user's name, city, the remote host id, and the minutes remaining. Enhancement: KSP-TLNT now assigns it's local tcp/ip port randomly. This helps when trying to re-establish a connection to a remote host that was lost in a recent previous execution of KSP-TLNT. Clean Up: KSP-TLNT no longer hangs up the modem when the user times out but rather simply returns to the BBS and lets the BBS decide whether or not to hangup. New Feature: Added reverse domain name lookups so that the command prompt reflects the correct hostname even if an IP address was given by the user. This feature is disabled by default, but may be enabled by setting ksp-tlnt.retrieve_hostnames=ENABLED. Note: This change required adding an entry to KSP-TLNT.TXT. 4.9: Clean Up: Improved handling of "ksp-tlnt.ophours" . If start time is after the stop time, the hours of operation will be interpreted as all but those in the window specified. I.e., setting ophours to 03:20-03:00 will allow operation anytime except 03:00-03:20. New Feature: Now attempts telnet option negotiation only if connecting to the standard telnet port (23) of a remote host. Use of any other port will disable option negotiation. 4.8: New Feature: Added a option (ksp-tlnt.blocked_ip_list) to specify the name of a file containing a list of blocked IP addresses. Users will not be allowed to connect to any IP address on this list. This required adding a new message to the end of KSP-TLNT.TXT. 4.7: Bug Fix: If the minutes remaining passed to KSP-TLNT in the DOOR.SYS file was zero, the user would get unlimited time; corrected. Note: This required adding a new message (#10) to KSP-TLNT.TXT. WHAT'S NEW IN KSP TELNET 4.6: Work Around: Discovered that the ARNET driver in Egberto Willies' COMM-DRV (used by Clark Development's PCBoard) does not adhere 100% to the fossil spec in that function 04h (Initialize) does not return 1954h when called with DX=00FFh. I was using this to detect the presence of a fossil driver as recommended in the fossil spec! Corrected by modifying the presence test to add two additional presence tests if the first one (04h) fails. 4.5: Bug Fix: Fossil drivers do not typically detect an incoming serial "break" signal. Thus when used with a fossil driver, the configuration parameter called "serial_port" is used to enable additional code to provide this feature. Although this code worked fine when tested with the X00 fossil driver, it prevented both the BNU fossil driver and PCBoard's COMMDRV program from doing serial output properly. Corrected. Bug Fix: Was not detecting carrier loss (user hangup) properly. Corrected. Clean Up: When opening the door, the number of minutes remaining is announced properly to the caller. However, the minutes remaining was not displayed properly in the prompt when it was a very large number (like 1440 minutes = 24 hours). Corrected. Enhancement: A caller could abort an attempt to connect to a remote site by pressing any key while the dots are being painted back and forth on the screen. However, this caused a rather obvious problem if the caller had a noisy modem connection to the BBS. Now only three specific keystrokes are recognized as a request to abort the connection attempt: Esc, Ctrl-C, and Ctrl-X. Enhancements: When run from the local BBS console, the door no longer announces to the SysOp that Shift-F1 toggles the local BBS screen and the key has no effect; when a remote caller invokes the door, however, Shift-F1 is fully functional in the normal manner. When used with a remote caller to enable/disable the local console screen, Shift-F1 now informs (only) the SysOp whether the screen has been enabled or disabled. 4.4: Bug Fix: Wasn't working with Digiboard when used with a fossil driver. Corrected. WHAT'S NEW IN KSP TELNET Bug Fix: The COM port number in DOOR.SYS was limited to COM1 through COM4 since this is all that can be supported by the async library; however, there should be no such limit if a fossil driver is used. Corrected. Bug Fix: The special break detect code used with fossil drivers was interfering with normal fossil operation; corrected. New Feature: Added support for an environment variable (ksp-ip) to set the IP address. Since the IP address is often the only parameter in WATTCP.CFG that changes from one BBS node to another, this allows using a single copy of that file for all nodes. New Feature: While user is in the door, pressing Shift-F1 on the local console of the BBS will toggle whether or not output also appears on the BBS's local console screen. Clean Up: Used to be that any function key (and others like Home, PgDn, etc.) on the BBS console would escape back to command mode. Now that function is restricted to Ctrl-F1. Clarification: Some Internet access providers configure their dial-up slip and ppp accounts with a very small segment size. You may need to set mss as low as 212 if your Internet connection is through such a connection. 4.3: Oops! When I fixed the search algorithm in 4.2, I accidentally broke the "include" directive in WATTCP.CFG. Corrected. 4.2: Bug Fix: Configuration parameter "ksp-tlnt.escape=disabled" was not functioning properly; corrected. Bug Fix: Dynamic parameters did not function properly; corrected. Change: Changed the search order for WATTCP.CFG to be downward compatible with earlier versions of KSP-TLNT. First, it checks for an environment variable called WATTCP.CFG that specifies the directory. Second, it looks in the current (default) directory. Third, if still not found, it looks in the directory that contains the executable (KSP-TLNT.EXE). WHAT'S NEW IN KSP TELNET 4.1: Enhancement: KSP Telnet now looks in three directories to locate the WATTCP.CFG configuration file. First, it checks for an environment variable called WATTCP.CFG that specifies the directory. Second, it looks in the directory that contains the executable (KSP-TLNT.EXE). Third, if still not found, it looks in the current (default) directory. Enhancement: Added a command line option (/CONFIG=, where "" is a non-zero integer such as "1") to facilitate dynamic configuration options. If used, then any WATTCP.CFG configuration file parameters of the form: ksp-tlnt[].= are ignored unless the integer number enclosed in square brackets matches that specified in the command line option. This also works for global parameters, such as "ksp[].". 4.0: Clean Up: Oops! The version 3.9 ZIP file went out with version 3.8 docs! Also, forgot to mention that foreign language support is only provided in the standard (i.e., not ANSI or RIP) user interface; if you want everything in a lnaguage other than English, you should include the following two configuration settings in WATTCP.CFG: ksp-tlnt.ansiinterface=disabled ksp-tlnt.ripinterface=disabled 3.9: New Feature: Added a command line option (e.g., /MAX_MINS=60) to limit the time a caller is allowed in the door. If used, time in the door will be the minimum of that specified by the option and their time remaining on the BBS. New feature: Added support for foreign languages by putting all the program text in a file called KSP-TLNT.TXT. This file can be modified using any normal text editor. The file MUST be placed in the same directory as KSP-TLNT.EXE and marked read-only. 3.8: Bug Fix: Found a second condition under which KSP Telnet might not unhook the serial port interrupt routine before exiting the program. Most users would never experience a problem since it required an improbable combination of events to cause it to occur. Corrected. WHAT'S NEW IN KSP TELNET New Feature: All of our software is now available via anonymous ftp at "scizzl.scu.edu", directory "ksp". Please note that there is no "e" at the end of "scizzl". 3.7: Enhancement: Reduced time required to close a connection. Enhancement: Some sysops have configured door commands to take users directly to some special Internet resource. This is done by simply creating a door batch file (e.g., "WEATHER") in which the remote host name (e.g., downwind.sprl.umich.edu;3000) is provided on the KSP-TLNT command line. Invoked this way, KSP Telnet returns to the BBS as soon as the user logs out of the remote host rather than returning to the Telnet command prompt. Once inside the door however, the user can escape back to the Telnet command prompt, close the current connection and open a new connection to anywhere they please. This made it impractical to provide unrestricted access to Weather forecasts while restricting general Telnet access to subscribers. Thus KSP Telnet has now been modified so that if the remote host name is passed on the command line, the "open" and "close" commands are not available ("quit", "exit", "bye" and "goodbye" do an implicit "close"). This change is implemented only in the "standard" (not ANSI or RIP) user interface; the other two must be disabled using WATTCP.CFG configuration parameters "ksp-tlnt.rip_interface" and "ksp-tlnt.ansi_interface". If all user interfaces are desired for regular Telnet access, then you will need two WATTCP.CFG files; the one for WEATHER should "include" the one for TELNET followed by commands to disable the two options described above. Having two WATTCP.CFG files means that each door batch file must also change the WATTCP.CFG environment variable to point to a different subdirectory containing the appropriate configuration file before running KSP-TLNT.EXE. Enhancement: Added the ability to override Waterloo TCP/IP's automatic search for the packet vector interrupt by using an environment variable, as in: set ksp-pv= where "" may be in decimal (e.g., "96"), in hex preceded by "0x" (e.g., "0x60"), or in octal preceded by "0" (e.g., "0140"). WHAT'S NEW IN KSP TELNET Bug Fix: The configuration option "ksp-tlnt.7bit_warning" added in version 3.5 did not work; corrected. Enhancement: Added information in the documentation about a packet driver shim for Novell with a Token-Ring_SNAP network. Enhancement: Added support for providing login name and password on the KSP-TLNT command line. The command line syntax is now: KSP-TLNT [ [ [login_password]]] where the square brackets "[]" indicate optional parameters. Enhancement: Performance problem when running under DESQview with PKTMUX solved by creation of KSP-DVMX packet multiplexer. Available as file KSPMUX*.ZIP, where "*" is the version number. Bug Fix: Users who hung up abruptly in the middle of a Telnet session could cause the software to hang; corrected. 3.6: Bug Fix: Pressing "Enter" incorrectly caused CR NUL rather than CR LF to be sent to remote host. This caused problems with some hosts such as downwind.sprl.umich.edu (port 3000); Corrected. 3.5: New Feature: Now DESQview "aware" to provide better performance in a multitasking environment. New Feature: Added configuration option "ksp-tlnt.7bit_warning". Normally, KSP Telnet will disallow 7-bit callers. This option can be used to allow such callers and to display a configuration-defined warning message. New Feature: Added configuration option "ksp-tlnt.local_bell" which can be set to "disabled" to silence the bell on the BBS console. New Feature: Added configuration option "ksp-tlnt.local_screen" which can be set to "disabled" to improve screen painting speed for the caller. WHAT'S NEW IN KSP TELNET Enhancement: Added Waterloo TCP/IP configuration parameter "dns_search_mode" to accelerate nameserver lookups. 3.4: CleanUp: Discovered that only the newest versions of the Novell packet driver shim (ODIPKT) allow command line parameters to be specified in hex; older versions require that they be specified only in decimal. Our docs describing how to install ODIPKT have now been modified to show decimal parameters since they will work in all versions of ODIPKT. 3.3: Enhancement: Configuration parameters such "ksp-tlnt.serial_port" that are common to more that one KSP product may now be enterred in the WATTCP.CFG configuration file once, as in "ksp.serial_port". Enhancement: Documented the "include" directive that helps when you have multiple nodes. CleanUp: Clarified the description of the batch file used to invoke the door. BugFix: If no WATTCP.CFG environment variable was used, there was a chance that part of memory might be corrupted. Corrected. BugFix: Ouch! Fix one problem, introduce another! Version 3.2 added code to filter out those VT100 escape sequences that ANSI.SYS interprets improperly, and which caused the display to change to 40 column mode. Unfortunately, this filter corrupts packets when downloading a file through the door. Although the code was intended to detect and be disabled during Zmodem downloads, that proved impractical; furthermore, there was nothing to disable the filter when downloading with other protocols. The filter has now been removed since there is no way to properly determine when it should be enabled and when it should be disabled. Moreover, the 40 column symptom only occurs on the BBS display, not the caller's display. That's because the BBS display interprets escape sequences using ANSI.SYS while the caller's display uses terminal emulation built into their communications program. One way to fix the problem on the local BBS display would be to modify the code of NANSI.SYS (a popular public-domain ANSI.SYS replacement) so that it ignores the two VT100 escape sequences that cause the problem: ESC[= and ESC[?. WHAT'S NEW IN KSP TELNET 3.2: Enhancement: Some remote hosts improperly force a VT100 termtype regardless of the termtype specified in KSP Telnet and negotiated at time of connection. Although ANSI and VT100 termtypes are quite similar, there are differences! Specifically, there is a VT100 sequence which ANSI misinterprets as a command to change to 40 column display mode. To prevent this possibility, KSP Telnet now intercepts and discards this particular escape sequence when the (default) ANSI termtype is specified. Enhancement: Added a "ksp-tlnt.reserve_mins" configuration parameter so that the user has some BBS time remaining even if time expires while in the door. Enhancement: The standard TCP/IP "port" for telnet sessions is port 23. Some telnet hosts, however, use a non-standard port and so some provision is needed to specify the port number. This can now be done by appending the port number at the end of the host id, separating it from the host id with any character from the set {,;:/}, as in: telnet> open machine.host.com;25 If omitted, the default port 23 will be used. 3.1: Enhancement: Fossil drivers do not support break detection. Added code to add that break detection when used with fossil driver provided WATTCP.CFG file contains a ksp-tlnt.serial_port configuration option. Bug Fix: When a user dropped carrier, KSP Telnet did not necessarily properly unhook the serial port interrupt routine. Corrected. 3.0: Bug Fix: 'Thought I had fixed the fossil interface, but apparently had not! This time it's been thoroughly tested and should work ok; if not, PLEASE let me know! Bug Fix: Detection of presence of KSP-FTP.EXE was based on looking in same directory as that of KSP-TLNT.EXE, but actual execution of KSP-FTP.EXE tried to find the file using the DOS path. When the directory was not in the path, the execution of FTP would fail. Corrected. WHAT'S NEW IN KSP TELNET New Feature: The "help" command may now be followed by an optional command name substring to obtain brief help on the corresponding subset of commands matching the string. New features: Added several configuration options to WATTCP.CFG: ksp-tlnt.max_mins: Places an upper limit on time in the door. ksp-tlnt.idle_mins: Sets the maximum time without keyboard input. ksp-tlnt.ophours: Limits the hours of operation of the door. ksp-tlnt.minbaud: Enables a minimum connect speed required to use the door. ksp-tlnt.termtype: Sets the default termtype reported to remote host when in either ANSI graphics or RIP mode. ksp-tlnt.escape: Allows disabling the ability (and initial message describing how to) "escape" back to telnet command mode. ksp-tlnt.ansi_interface: Allows disabling the blue interactive menu interface presented to novice mode callers with ansi graphics enabled and DCE rate of at least 9600 baud. ksp-tlnt.rip_interface: Allows disabling the RIP graphics interface. Enhancement: Now checks for and requires 8N1 operation. Enhancement: When user enterred an invalid command, KSP Telnet would complain (beep) on every character until the error was corrected. Now it beeps once and then eats characters after an error until keyboard input clears. Enhancement: Added a check for bad IP addresses. 2.9: New Feature: Added configuration parameter "ksp-tlnt.serial_port". If used, it overrides serial port address and IRQ values implied by "COMx" in DOOR.SYS and is provided to support non-standard configurations that don't use a fossil driver. WHAT'S NEW IN KSP TELNET 2.8: Enhancement: Improved handling of TCP/IP error conditions. 2.7: Enhancement: Vastly improved Z-Modem download (and remote screen update) performance! Configuration Change: Location of log file is now specified in the WATTCP.CFG file; the KSP-TLNT.LOG environment variable has been eliminated to save environment variable space. 2.6: Bug Fix: If Telnet option negotiation was enabled, the user was connected to a remote host, but had escaped back to the interactive ANSI graphics "blue" screen, and THEN changed from ascii to binary mode or vice-versa, the option negotiation progress messages would overwrite the blue screen screen. Corrected. 2.5: Enhancements to ANSI interactive menu: (1) Cursor keys now work in local console mode; (2) Home key now moves directly to Remote Host field; (3) End key now moves directory to Quit button; (4) Pressing Alt- in local console mode will always escape back to command mode, even with binary transmission mode enabled. Bug Fix: Found a pair of two-byte sequences (FF F2 and 4F FF) that would cause a CRC error if present in a Zmodem data block during download; zmodem uploads were NOT affected. The probability of a particular two byte sequence having one of these two data patterns is only 0.003%, so most downloads worked without a problem. Corrected. Bug Fix: Discovered that Fossil support was not working. Corrected. 2.4: Bug Fix: If an attempt to open a connection failed, KSP Telnet sometimes would mistakenly try to "close" the (non-existant) connection on the next attempt to open or quit. This caused an entry in the log file with a date and time of "Jan 01 0):00:00 1970" with a empty string as the name of the remote host. Corrected. 2.3: Enhancement: Added sections in the documentation on how to install packet driver shims for Novell, Lantastic, and Banyan Vines networks. WHAT'S NEW IN KSP TELNET 2.2: Bug Fix: Discovered that KSP Telnet would hang during option negotiation during the startup of a session with some remote hosts. The reason was that the remote host was negotiating with option numbers that were unknown to KSP Telnet and such a case was not being handled properly. Corrected. 2.1: New Feature: Added code to tell the remote host that the terminal type is "ANSI" if ansi graphics is enabled in users BBS configuration. Also added a new command called "term" to allow user to change the term type that is passed to the remote host. Change: The default key mapping for "interrupt process" is now ^Y instead of ^C so that it doesn't interfere with emacs-like editors running on remote hosts. New User Interfaces: Callers who have RIP graphics enabled are now presented with a RIP graphics interface. Others who have ANSI graphics enabled are presented with an ANSI graphics version of this interface provided they (1) are not in "expert" mode, and (2) their DCE (carrier) speed is at least 9600 baud. Otherwise, the standard command line interface is used. 2.0: New Feature: User logging added. If the environment variable "KSP-TLNT.LOG" is defined, it is used as the name of a directory where a log of user sessions will be recorded. The log file will be named KSP-TLNT.XXX, where "XXX" is the BBS node number. KSP Telnet appends a line to that file for each remote login session. The line lists the time and date of the login, the user's full name, the name of the remote host computer, and the duration of the session in minutes. New Feature: Added commands to switch between ascii and binary modes so that the user could invoke a file transfer command on the remote host and not have binary data misinterpreted. Enabling binary mode, however, also disbles the Telnet escape character (normally '^]'). Thus KSP Telnet now also recognizes a "break signal" sent by the user as a request to return to command mode. New feature: Added command to enable/disable xon/xoff flow control. New Feature: Now recognizes the start and end of a Z-Modem transfer and automatically changes to Telnet binary mode for the duration of the transfer. Added "zmodem" command WHAT'S NEW IN KSP TELNET to enable/disable this feature. New Feature: KSP Telnet used to always return to command mode after the user closed the connection in case he wanted to open a connection to another host. We made the following change since most users connect to a single host: If the host ID is given on the KSP-TLNT.EXE command line when the door is invoked, then closing the connection causes control to be returned to the BBS; if no host ID is given on the command line, then closing the connection returns the user to KSP Telnet command mode. Enhancement: KSP Telnet command prompt now indicates time remaining. Enhancement: Now issues a Telnet logout command to the remote host just before closing a connection. Some hosts need this to prevent leaving the process suspended. Enhancement: Added 5 minute keyboard timeout limit with warning beep once every minute when prompting user for input. If user does not respond, control is returned to the BBS. Enhancement: Significant improvements to serial I/O bandwidth, by optimizing internal algorithms and by converting code to use MarshallSoft's interrupt driven async library. Enhancement: Improved Telnet option negotiation code per RFC1143. 1.0: Initial release.