Way of the Force

Intermud 3 irn v1 specification

This protocol was developed by Tim@TimMUD and Cratylus@Dead Souls based on the notes about irn in the original Intermud 3 specification. It is a fully connected network (every router connects to every other router) and is currently in use by the *yatmim, *wpr, *i4 and *dalet routers.

Packet specifications:

irn-startup-req
irn-mudlist-req
irn-mudlist-delta
irn-chanlist-req
irn-chanlist-delta
irn-data
irn-ping
irn-shutdown

Startup

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 its complete mud and channel lists (as irn mud/chanlist delta packets).
The receiving router validates the startup request and if valid, sends its complete mud and channel lists as irn mud/chanlist delta packets.

Channels

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.

Code

The code used by *i4 and *yatmim is available from the Dead Souls website/
The code used by *wpr is available as part of the dgd networking package at svn://wotf.org/dgd-devel-net/I3/router

Notes:

aidil@Way of the Force