WHAT'S NEW IN KSP SLIP 3.7: New Feature: Configuration parameters "blocked_ip_list" and "allowed_ip_list" have been replaced by "blocked_tcp", "blocked_udp", "allowed_tcp", and "allowed_udp". Also, rather pointing to another file, the data is now entered directly into the WATTCP.CFG file immediately after the parameter name. For "blocked_tcp" and "blocked_udp", you may now append an IP address and optional port to which the blocked packets will be forwarded. Enhancement: Added protocol (TCP, UDP, or ICMP), port, and application (e.g., telnet) information to BBS status screen display. Also displays appropriate message when target destination is blocked or forwarded. 3.6: New Feature: Added configuration parameter "ksp-slip.hangup". If set to "disabled", KSP-SLIP will not hangup on the user when exiting from the door. Default is "enabled". Enhancement: Entries in the files specified by configuration parameters ksp-slip.blocked_ip_list and ksp-slip.allowed_ip_list have been generalized by adding an optional address mask and port number. Now a single entry can specify a set of IP addresses and blocking can be specified by port as well. Enhancement: At the end of a timed-out session, KSP-SLIP now waits for the serial output buffer to empty, hangs-up (if enabled, to protect the BBS command line interpreter from tcp/ip packet garbage), and then flushes the serial input buffer. 3.5: Bug Fix: At the end of a session (usually due to expiration of time), version 3.4 returned the user to the BBS without hanging up. This created problems because user was typically unaware that time had expired, and thus continued to transmit packets to the BBS which saw them as illegal command line input. This version now hangs up as before. 3.4: New Feature: Added an option (ksp-slip.allowed_ip_list) to specify the name of a file containing a list of allowed IP addresses. Users will only be allowed to connect to destinations that appear in the list. Attempts to connect to any other IP address will cause a TCP/IP ICMP type 3 (host unreachable), code 10 (communication with destination host is administratively forbidden) error notification packet to be sent to the user's SLIP client. WHAT'S NEW IN KSP SLIP New Feature: KSP-SLIP now writes a one-line ascii text file at termination, containing three numbers. The first is the number of packets sent to the user, the second is the number of good packets received from the user, and the third is the number of bad packets received from the user. A companion program called PKTCOUNT.EXE has been provided to read and exit with one of these numbers as its errorlevel (limited to 255); this program can be used in the batch file that runs the door for various accounting purposes. See KSP-SLIP.DOC for detailed information. New Feature: KSP-SLIP now exits with an errorlevel that indicates the reason for termination. See KSP-SLIP.DOC for detailed information. Clean Up: KSP-SLIP 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. 3.3: Clean Up: Vastly Improved the run-time performance of the multi-threaded code. SysOps: Be sure to tell users to configure their slip software (e.g., Trumpet Winsock) so that RWIN is no greater than MSS; otherwise some packet transfers to the BBS may get lost and performance will suffer due to retransmissions. 3.2: Clean Up: Redesigned as multi-threaded code using the MIX Multi-C library. Clean Up: The inactivity timer was being restarted everytime a character was received on the serial line, and thus noise could sometimes keep the timer from reaching zero. Now the timer is only restarted upon receipt of a error-free inbound slip packet. 3.1: Clean Up: Improved handling of "ksp-slip.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. 3.0: New Feature: Added an option (ksp-slip.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, and a TCP/IP ICMP type 3 (host unreachable), code 10 (communication with destination host is administratively forbidden) error notification packet WHAT'S NEW IN KSP SLIP is sent to the user's SLIP client. 2.9: Bug Fix: If the minutes remaining passed to KSP-SLIP in the DOOR.SYS file was zero, the user would get unlimited time; corrected. 2.8: 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. 2.7: Bug Fix: Fossil drivers do not typically detect an incoming serial "break" signal. Thus when used with a fossil driver, the configuration parameter called "serialport" 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 displayed properly to the caller. However, the minutes remaining was not tracked properly while running the door when it was a very large number (like 1440 minutes = 24 hours). Corrected. 2.6: Bug Fix: Wasn't working with Digiboard when used with a fossil driver. Corrected. Bug Fix: Configuration parameter ksp-slip.serialport=, was not working properly; corrected. 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. WHAT'S NEW IN KSP SLIP 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. 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. 2.5: Oops! When I fixed the search algorithm in 2.5, I accidentally broke the "include" directive in WATTCP.CFG. Corrected. 2.4: 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-SLIP. 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-SLIP.EXE). 2.3: 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. Enhancement: KSP SLIP 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-SLIP.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-slip[].= are ignored unless the integer number enclosed in square WHAT'S NEW IN KSP SLIP brackets matches that specified in the command line option. This also works for global parameters, such as "ksp[].". 2.2: Bug Fix: KSP SLIP was sometimes hanging on exit because it had not unhooked the serial port interrupt routine before exiting the program. Corrected. Bug Fix: There is a special end-of-frame marker that identifies the end of each slip packet. A common practice is to also send one of these at the beginning of a data packet so that the receiver will see an empty packet followed by the (real) data packet; this helps the receiver tolerate line noise by effectively telling it to flush its input buffer in preparation for the arriving data. A common performance enhancement is to eliminate the extra empty packet if it falls "on the heels" of the previous data packet; it would be redundant since the receiver will have just flushed its input buffer anyway. KSP-SLIP was making the decision to insert the empty packet or not by reading the line status register of the UART to see if it was still transmitting. Unfortunately, reading the this register also resets it, and thus screwed up the interrupt driven serial communications routines. The new code checks the output queue instead of the UART; this seems to virtually eliminate several problems that have been reported, such as a suspiciously high number of bad slip packets, corrupted remote IP addresses, and stalled transfers. 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". 2.1: Enhancement: Now sends out a dummy IP packet at startup to correctly record the IP address of the BBS node in KSP-DVMX (in case it is being used). See discussion in WHATSNEW.DOC of KSP-DVMX, version 1.1. Cleanup: Replaced "Returning to PCBoard..." message with the more universal "Returning to BBS...". 2.0: Bug Fix: Would crash at startup if no packet driver was found. Corrected. Enhancement: Added the ability to override Waterloo TCP/IP's automatic search for the packet vector interrupt by using an environment variable, as in: WHAT'S NEW IN KSP SLIP 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"). Enhancement: Added information in the documentation about a packet driver shim for Novell with a Token-Ring_SNAP network. 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. Cleanup: Edited documentation to remind user to make *.MSG display files read-only to avoid file sharing conflicts in a multi-node system. 1.9: New Feature: Now DESQview "aware" to provide better performance in a multitasking environment. (NOTE: Two KSP SLIP doors running simultaneously on one machine will experience severe performance degradation due to problems in PKTMUX; we're working on a replacement for this package.) New Feature: Added configuration option "ksp-slip.local_bell" which can be set to "disabled" to silence the bell on the BBS console. New Feature: Added configuration option "ksp-slip.local_screen" which can be set to "disabled" to improve screen painting speed for the caller. (Does not affect status displays.) Enhancement: Added more information to local BBS console status display, including user name, location, total time remaining, idle time remaining, and IP address of remote connection. Enhancement: Added a sample script file for Trumpet Winsock that dials the BBS, logs in, runs the SLIP door, and grabs the IP address from the screen when STARTUP.MSG is displayed. This solves the caller's problem of not knowing which node (and thus which IP address) he will get when calling in through a rotary. WHAT'S NEW IN KSP SLIP 1.8: 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. CleanUp: Moved the copyright notice so that it appears before the startup message rather than after it. 1.7: CleanUp: Whoops! The bug fix introduced in version 1.6 to correct the status display bug was unfortunately an incomplete fix. If the "ksp-slip.status" configuration parameter was not used at all, the screen would still be erased and the packet counters displayed, but without ever changing their values from zero. Corrected. 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. 1.6: Bug Fix: The status display packet counters were not being updated properly (all counts were output to the bad packet count field). Monochrome versus color monitor detection was not working. Corrected. 1.5: Enhancement: Added a "ksp-slip.reserve_mins" configuration parameter so that the user has some BBS time remaining even if time expires while in the door. 1.4: 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-slip.serial_port configuration option. Bug Fix: When a user dropped carrier, KSP SLIP did not necessarily properly unhook the serial port interrupt routine. Corrected. 1.3: Bug Fix: Discovered that Fossil support was not working. Corrected. WHAT'S NEW IN KSP SLIP Enhancement: Users may now send a break signal to terminate the SLIP connection and return to the BBS. Enhancement: Now checks for and requires 8N1 operation. Enhancement: Added ksp-slip.countdown configuration option to eliminate the "press any key to begin" and nine-second countdown at startup. 1.2: Enhancement: Replaced local console "Whirly Gig" with a continuously updated count of SLIP packets. Added a configuration parameter "ksp-slip.stats" to select output method: ansi, bios, or direct. New Feature: Added configuration parameter "ksp-slip.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. 1.1: Enhancement: Added a "Whirly Gig" on the local console to indicate SLIP packet activity in progress. 1.0: Initial release.