| CONCEPT |
| imp |
| |
| LAST UPDATED |
| Deepthought, 10-Nov-92 |
| Pepel, 18-Nov-93 |
| |
| DESRIPTION |
| This document describes IMP, the intermud message protocol, |
| also known as Intermud-1. |
| |
| Imp messages are exchanged between muds using UDP |
| (unreliable datagram protocol) packets. Each mud provides |
| a connection endpoint which is given by the ip host address |
| and the UDP port number. Muds may then send messages to |
| this port by using the efun send_udp(). The applied function |
| receive_udp will be called by the driver in the master |
| object if a imp message arrives at the mud's UDP port. |
| |
| Imp message packets have the following format: |
| |
| password@objectname@functionname[[@argument]...] |
| |
| <password> is the connection password to verify incoming |
| imp packets. It is encoded using crypt(E) and compared to |
| the stored password. Each mud participating in the imp |
| network has a secret password which is encoded by the |
| admin and distributed to remote muds with which the mud |
| should have direct connection. Encryted passwords may also |
| propagated to other muds over already secure channels. |
| |
| <objectname> is a logical name which is not to be confused |
| with mudlib object filenames. It is used by receive_msg in |
| the master object to route the message to another object by |
| associating the logical object name with a real mudlib file |
| name. A good idea would be to reserve a special directory |
| for imp objects, e.g. /secure/net/<objectname>. |
| |
| <functionname> is the function which is called by the master |
| object in the object described by <objectname>. |
| |
| <argument> are additional arguments which are handed to the |
| function <functionname>. The exact definition of functions |
| and arguments are left to the imp applications. |
| |
| AUTHOR |
| originally Deepthought |
| |
| NOTE |
| The above is only particularly correct nowadays. Recently a |
| package name ``inetd'' was published, that is based on the IMP |
| mechanism in the driver (send_udp() and receive_udp()), but |
| it uses a different message format. That package seems to |
| enjoy much publicity and is installed in a number of muds. For |
| details look into the inetd description. |
| |
| An other method of inter mud connection is the Mudlink |
| package, which uses a normal user connection that is connected |
| to a special user object, and an auxiliary process that does |
| the connection to other muds. |
| |
| SEE ALSO |
| send_udp(E), receive_udp(M), intermud(C) |