MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | CONCEPT |
| 2 | imp |
| 3 | |
| 4 | LAST UPDATED |
| 5 | Deepthought, 10-Nov-92 |
| 6 | Pepel, 18-Nov-93 |
| 7 | |
| 8 | DESRIPTION |
| 9 | This document describes IMP, the intermud message protocol, |
| 10 | also known as Intermud-1. |
| 11 | |
| 12 | Imp messages are exchanged between muds using UDP |
| 13 | (unreliable datagram protocol) packets. Each mud provides |
| 14 | a connection endpoint which is given by the ip host address |
| 15 | and the UDP port number. Muds may then send messages to |
| 16 | this port by using the efun send_udp(). The applied function |
| 17 | receive_udp will be called by the driver in the master |
| 18 | object if a imp message arrives at the mud's UDP port. |
| 19 | |
| 20 | Imp message packets have the following format: |
| 21 | |
| 22 | password@objectname@functionname[[@argument]...] |
| 23 | |
| 24 | <password> is the connection password to verify incoming |
| 25 | imp packets. It is encoded using crypt(E) and compared to |
| 26 | the stored password. Each mud participating in the imp |
| 27 | network has a secret password which is encoded by the |
| 28 | admin and distributed to remote muds with which the mud |
| 29 | should have direct connection. Encryted passwords may also |
| 30 | propagated to other muds over already secure channels. |
| 31 | |
| 32 | <objectname> is a logical name which is not to be confused |
| 33 | with mudlib object filenames. It is used by receive_msg in |
| 34 | the master object to route the message to another object by |
| 35 | associating the logical object name with a real mudlib file |
| 36 | name. A good idea would be to reserve a special directory |
| 37 | for imp objects, e.g. /secure/net/<objectname>. |
| 38 | |
| 39 | <functionname> is the function which is called by the master |
| 40 | object in the object described by <objectname>. |
| 41 | |
| 42 | <argument> are additional arguments which are handed to the |
| 43 | function <functionname>. The exact definition of functions |
| 44 | and arguments are left to the imp applications. |
| 45 | |
| 46 | AUTHOR |
| 47 | originally Deepthought |
| 48 | |
| 49 | NOTE |
| 50 | The above is only particularly correct nowadays. Recently a |
| 51 | package name ``inetd'' was published, that is based on the IMP |
| 52 | mechanism in the driver (send_udp() and receive_udp()), but |
| 53 | it uses a different message format. That package seems to |
| 54 | enjoy much publicity and is installed in a number of muds. For |
| 55 | details look into the inetd description. |
| 56 | |
| 57 | An other method of inter mud connection is the Mudlink |
| 58 | package, which uses a normal user connection that is connected |
| 59 | to a special user object, and an auxiliary process that does |
| 60 | the connection to other muds. |
| 61 | |
| 62 | SEE ALSO |
| 63 | send_udp(E), receive_udp(M), intermud(C) |