******** readme ******** ==== WARNING = WARNING = WARNING = WARNING = WARNING = WARNING ==== This is beta software. It is not currently known to have bugs or incompatibilities with existing STiK apps; nevertheless, use this software at your own risk. ==== WARNING = WARNING = WARNING = WARNING = WARNING = WARNING ==== GlueSTiK v0.02b1 Scott Bigham dsb@cs.duke.edu INSTALLATION AND USE Copy GSDRIVER.EXE and GSDAEMON.PRG to pretty much wherever you want them. Add the following line to your MINT.CNF file: exec c:\path\to\gsdaemon.prg exec c:\path\to\gsdriver.exe If you don't already have a STiK config file, you will need to create one. Create a subdirectory STIK_CFG in the root directory of your boot drive, and create in it a file called DEFAULT.CFG (if you want to put it somewhere else or name it something else, consult the STiK docs for the use of the STIK_DIR.DAT file). This file should contain at least the line: ALLOCMEM = 50000 Other STiK apps may require additional entries. Reboot your computer. You should see two new programs installing themselves: GSDaemon and GSDriver. Now connect to your ISP in the usual way and run your STiK apps. COMPATIBILITY I have done preliminary testing with the following STiK apps and found no compatibility problems: - CAB v1.31 - FINGER v1.00 - FORECAST v0.4 - TELNET v1.00 TECHNICAL STUFF Unless you're interested in how GlueSTiK works, you can stop reading now; just note the e-mail address at the bottom to report problems. Version 0.02 of GlueSTiK comes in two pieces. GSDaemon runs as a background process and is responsible for actually interacting with the network. GSDriver is a TSR that sets up the STiK function table and hands off STiK network commands to the network daemon. This is primarily to eliminate the library-level collisions that caused some STiK apps to crash with earlier versions. Note that the daemon and the STiK app communicate with each other by writing into each other's memory space. If you run MiNT without memory protection (by renaming MINT.PRG to MINTNP.PRG), this is not a problem; otherwise, you may need to use a program-flag setting utility to set the memory flags of your STiK apps to global. There are some places where I was unable to reproduce STiK's exact functionality; you can find these places by searching transprt.c for the word `Incompatibility'. Otherwise, comments are fairly sparse, mostly notes to myself. There are two main #define's for selecting compile-time functionality: DEBUG Activates the debugging log. Not likely to be of interest unless you're debugging GlueSTiK itself. BLOCK_OPEN Selects between blocking and non-blocking opens. In the Berkeley sockets package, connect() is blocking by default; that is, control does not return to the program until the connection is completely established and the socket is ready to receive data. In STiK, TCP_open() is non-blocking; that is, control returns to the program immediately, while the connection is still in progress, and the program must do its own waiting until the connection is established. Since handling non-blocking connections is conceptually hairy, this compile-time option allows GlueSTiK to be switched between blocking and non-blocking. This distribution is compiled with blocking opens; to date, I have not noticed any problems caused by this. testit.c is a quick-n-dirty program I threw together to do basic testing of GlueSTiK. It should not be used as a guideline for STiK application programming. ;) You can build it with `make test'. BUGS None that I know of; presumably a few that I don't. Report any problems you may have to me at dsb@cs.duke.edu. That's pretty much it. Remember, it's just a beta. -sbigham