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:
irn-startup-req
irn-mudlist-req
irn-mudlist-altered
irn-mudlist-delta
irn-chanlist-req
irn-chanlist-altered
irn-chanlist-delta
irn-data
irn-ping
irn-shutdown
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.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
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.
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 *dalet and *Kelly is available from the Dead Souls website.
The code used by *wpr is currently not publicly available.
Notes:
- This specification was written based on discussions between Aidil and Adam, for use on the test routers initially.
- The intermud 3 version used by a mud is communicated between routers, but only has any use to the router the mud is directly connected to.
For discussing this draft please go here.