Way of the Force

Intermud 3 irn v2 specification

Working documentation for changes to the irn protocol on wotf.org and themud.org test routers.
Also see the v1 version currently in use.

Packet specifications:


The mudlist

The mudlist is a shared set of data, telling the routers which muds are online, to which router they are connected, and also contains various information about the muds. Keeping the mudlist in sync is important because routing packets depends on this.


When an irn router starts, it tries to connect to all other known irn routers. When an outbound (mudmode) connection is established, the router sends an irn-startup-req, followed by irn-mudlist-req and irn-chanlist-req packets with the mud/chanlist ids it last received from the router it connected to. Note those ids are kept for each known router.
The receiving router validates the startup request and if valid, authenticates the irn node. It replies with sending irn-chanlist-req and irn-mudlist-req packets with the last chan/mudlist ids it received from the connecting router.


Every router is responsible for delivering channel messages to muds directly connected to it. Channel messages received from directly connected muds should be forwarded to every known irn router. Channel messages received from another irn router should only be delivered to directly connected muds.
Routers can change the channel names in a channel message sent to/ received from another irn router.

When a router receives an administrative command for a channel, it should verify if it is allowed, execute it and forward it to other routers (by means of an irn-chanlist-delta packet). This includes adding/removing channels, listeners, banned and allowed muds.


The code used by *i4 and *dalet and *Kelly is available from the Dead Souls website.
The code used by *wpr is currently not publicly available.


aidil@Way of the Force

For discussing this draft please go here.