blob: 27d9ab9e21dc69780a2a10e028dd0cd05358ed4a [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001CONCEPT
2 imp
3
4LAST UPDATED
5 Deepthought, 10-Nov-92
6 Pepel, 18-Nov-93
7
8DESRIPTION
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
46AUTHOR
47 originally Deepthought
48
49NOTE
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
62SEE ALSO
63 send_udp(E), receive_udp(M), intermud(C)