[Error opening file `/wwwsys/mud.stack.nl/intermud/../header.txt': No such file or directory] [Error parsing directive]

Introduction




This file gives a description of how Circle, Merc and Envy MUDs can communicate with each other and the protocol used.

Intermud communication is done via udp packages, contrary to players connected to the mud whose communication goes through tcp. This has two consequences:

The protocol is usually implemented in 2 stages. Some functions are defined in the driver, some are defined in an external intermud program. This daemon communicates with the other daemons via udp and with the muddriver via a local unix socket. Some requests from the mud can be handled directly by the daemon, some are relayed to other daemons (and vice versa).

Protocol design

The typical message string looks like:

command|param1|param2|param3|

or in a slightly more formal description:

	message 		::= command '|' parameterlist

	command 		::= Digit Digit Digit Digit

	parameterlist 		::= /* empty */
			  	    | value '|' parameterlist

	value 			::= String

Where digit is any number 0 through 9, and 'String' is any printable text not containing the '|' symbol combinations.

New commands can be added without problems for backwards compatiblilty; whoever it is not possible to add extra parameters to a command.

Command types

The first digit indicates the type of the command:
1xxx
These are general support commands: startup, ping, mudlist.
2xxx
These indicate the normal request/reply messages: tell, page, who.
3xxx
For messages sent to all MUDs at once: wiz.
4xxx
Driver - local daemon communication commands: mudinfo, stats, debug.

Current protocol

Only a few commands has been implemented so far. The commands I know are listed here. [Error opening file `/wwwsys/mud.stack.nl/intermud/../footer.txt': No such file or directory] [Error parsing directive]