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.