Documentation about mudlink (from README and how.it.works)

You have successfully unpacked the MUDLINK version 2.3-Beta release.  PLEASE
go read the src/copyright.c file.  If you disagree with any portion of it,
delete this source code and go on with your life.

Put very simply,  MUDLINK allows you to exchange remote pages and remote
WHO lists between 2 or more MUDS. It also allows you to check the spelling
of objects, look up words in a dictionary, and set up 2 (or more) way 
Conference rooms. When you are finished with this installation, you will 
have 6 new global commands.

Rpeers     Lists out known MUDs in your database.
Rpage      Sends a remote page to Player @ MUD.
Rwho       Get a WHO list for a remote MUD.
Rversion   Get MUDLINK's current version number.
Rlook      Look into a Conference room and/or its contents. (local command)
@spell     Check spelling for an object
@dict      Look up a word in the dictionary.

MUDLINK runs mostly independent of the local MUD server and therefore if 
it crashes or a network connection hangs it won't affect your MUD server.   
MUDLINK uses reliable TCP connections.  This means if the connection can be 
made, the information will eventually be transferred.  MUDLINK is 
multiplexing, thus it can exchange information with multiple MUDS very 
rapidly.  This software is capable of receiving and establishing connections 
but only with other MUDLINKs.  (With the exception of your local MUD)

MUDLINK interfaces with your MUD through a player.  Although many people may
say that this is a kludge, it isn't.  Today there are many different types of
MUDS.  Attempting to port source code to all of these is time consuming and
not a very efficient way of doing things.  However all MUDS have players and
most MUDS have some type of programming capabilities now.  This gives us the
advantage of making MUDLINK more or less independent of the MUD type.  I
say "more or less independent" because it IS written for TinyMUD type servers.
I HAVE added support for  LP and Diku  MUDs at the C source code level.  Anyone
who is VERY familiar with these type servers and wants to help finish the port
should contact me at  howard@pa.itd.com

MUDLINK is small, about 3000 lines of code.  It typically consumes not more
then 355K of RAM with 100 database entries and 20 active connections.  The
source is written in ANSI C and you need an ANSI compiler.  If you have gcc
I'd suggest using it.  The limit on connections is set by the system OS.  
Under SunOS and other machines that support the "unlimit" command you can
gain up to 252 active connections at any given time.  All connections with
MUDLINKs are password protected.  This means you MUST establish a mutual
password with another MUDLINK before any information can be exchanged.

Now that you have an idea as to what MUDLINK is, go to the the install 
directory and read the INSTALLATION file.  Also you may wish to see the
how.it.works file.


Quick docs on how MUDLINKs work.
MUDLINK connects a player called MUDLINK to the local MUD.

------------
| Local MUD|               |--------|
|    1     |               | MUD    |
|          |               | LINK   |
| PLAYER   |---------------|        |
|          |               |---|----|
------------                   |
                               |
Info Serv establishes a two way|link with a remote MUDLINK and its associated
local MUD when a message needs | to be delivered.   It closes the link if no 
messages are exchanged within a|reasonable time.  (default is 30 mins)
                               |
------------                   |
| Local MUD|               |---|----|
|    2     |               | MUD    |
|          |               | LINK   |
| PLAYER   |---------------|        |
|          |               |--------|
------------

Messages are exchanged by spoofing.  Internal programs, (MUSH, MUF) spoof 
messages to the player MUDLINK which sends the messages to the MUDLINK.
MUDLINK attempts to parse and process the message.  It delivers requests to
remote MUDLINKs and delivers any responses back to MUDLINK, which spoofs them
back to the original player.  Its not terribly efficient but the design DOES
get around several problems.

First, MUDLINK itself is not server specific.  If the local MUD has the
programming capability to send and receive spoofs it can use MUDLINK.

Second, MUDLINK will never adversely affect the local MUD server.  It can
crash, freeze up, or even spew garbage and the impact on the local server is
minimal in the worse case senerio (spamming).

Thirdly, MUDLINK consumes only one player and thus one descriptor.  Its 
possible (SunOS) for the local MUD to have up to 252 connected players AND
have MUDLINK connected to an additional 252 remote sites at once.  MUDLINK
spawns only one process that handles these connections in a non-blocking
manner.  MUDLINK will never hang due to network delays.

Fourth and last, MUDLINK has password protection.  Only authorized remote
servers can connect and exchange information.  The passwords can be changed
while connected.  Its impossible to forge information without the password,
provided the internal MUD programs are kept secure.
