WHAT IS THIS? ~~~~~~~~~~~~~ I've added in the following routines to make porting easier: term_gethostbyname() term_connect() term_rcmd() term_bind() term_getsockname() term_listen() term_accept() term_shutdown() term_close() . . . At the end if this file I've included instructions for using these new routines I've tried to make it so "term" binaries will be usable for users of other networking software as well. Sometime in the future, users might be able to modified their shared libraries instead of recompiling everything. For now this is still sometime off in the distant future. For programs that were ported back in the days of client.a, you can still recompile them for use with newer versions of term simply by changing the client.a reference to libtermnet.a PORTING OF SOFTWARE: ~~~~~~~~~~~~~~~~~~~~ Here is the new simplified porting procedure. If installed in /usr/local by root: 1. Add to the compile flags "-include /usr/local/include/termnet.h" 2. Add to the library list "-ltermnet" If installed in your home directory: 1. Add to the compile flags "-include ~/term/termnet.h" 2. Add to the library list "-L ~/term -ltermnet" That should do it!!! If you are using term in "shared" mode, you'll need: As root: chgrp term chmod g+s As an ordinary user: chmod u+s Some commands like "rlogin" will be privileged. i.e. Only the person who started "term" and "root" may use privileged commands. Some term commands will be "term" transparent and only use term when there is not another option. Some common examples are: telnet, ftp, ... Others require an external flag to tell them it is all right to use term. These programs include: xarchie, fsp, ytalk, ... You can either flag these programs to use term by setting the environmental variable TERMMODE as specified in README.security, or running "make installnet". Eventually the "termnet" file created will contain special networking instructions, but for now only its existence is checked. If you add an ethernet connection, you can then simply remove the "termnet" file and continue to use the same binaries! PORTING CAVEAT: ~~~~~~~~~~~~~~~~ The termnet functions don't always act exactly like real networking code. Still needed: - To deal with duplicated socket descriptors. - To gracefully deal with binds to privileged ports and other misc. problems.