ldmud-3.2.9/doc/
ldmud-3.2.9/doc/efun/
ldmud-3.2.9/mud/
ldmud-3.2.9/mud/heaven7/
ldmud-3.2.9/mud/heaven7/lib/
ldmud-3.2.9/mud/lp-245/
ldmud-3.2.9/mud/lp-245/banish/
ldmud-3.2.9/mud/lp-245/doc/
ldmud-3.2.9/mud/lp-245/doc/examples/
ldmud-3.2.9/mud/lp-245/doc/sefun/
ldmud-3.2.9/mud/lp-245/log/
ldmud-3.2.9/mud/lp-245/obj/Go/
ldmud-3.2.9/mud/lp-245/players/lars/
ldmud-3.2.9/mud/lp-245/room/death/
ldmud-3.2.9/mud/lp-245/room/maze1/
ldmud-3.2.9/mud/lp-245/room/sub/
ldmud-3.2.9/mud/lp-245/secure/
ldmud-3.2.9/mud/morgengrauen/
ldmud-3.2.9/mud/morgengrauen/lib/
ldmud-3.2.9/mud/sticklib/
ldmud-3.2.9/mud/sticklib/src/
ldmud-3.2.9/mudlib/uni-crasher/
ldmud-3.2.9/pkg/
ldmud-3.2.9/pkg/debugger/
ldmud-3.2.9/pkg/diff/
ldmud-3.2.9/pkg/misc/
ldmud-3.2.9/src/autoconf/
ldmud-3.2.9/src/bugs/
ldmud-3.2.9/src/bugs/MudCompress/
ldmud-3.2.9/src/bugs/b-020916-files/
ldmud-3.2.9/src/bugs/doomdark/
ldmud-3.2.9/src/bugs/ferrycode/ferry/
ldmud-3.2.9/src/bugs/ferrycode/obj/
ldmud-3.2.9/src/bugs/psql/
ldmud-3.2.9/src/done/
ldmud-3.2.9/src/done/order_alist/
ldmud-3.2.9/src/done/order_alist/obj/
ldmud-3.2.9/src/done/order_alist/room/
ldmud-3.2.9/src/gcc/
ldmud-3.2.9/src/gcc/2.7.0/
ldmud-3.2.9/src/gcc/2.7.1/
ldmud-3.2.9/src/hosts/
ldmud-3.2.9/src/hosts/GnuWin32/
ldmud-3.2.9/src/hosts/amiga/NetIncl/
ldmud-3.2.9/src/hosts/amiga/NetIncl/netinet/
ldmud-3.2.9/src/hosts/amiga/NetIncl/sys/
ldmud-3.2.9/src/hosts/i386/
ldmud-3.2.9/src/hosts/msdos/byacc/
ldmud-3.2.9/src/hosts/msdos/doc/
ldmud-3.2.9/src/hosts/os2/
ldmud-3.2.9/src/hosts/win32/
ldmud-3.2.9/src/util/
ldmud-3.2.9/src/util/erq/
ldmud-3.2.9/src/util/indent/hosts/next/
ldmud-3.2.9/src/util/xerq/
ldmud-3.2.9/src/util/xerq/lpc/
ldmud-3.2.9/src/util/xerq/lpc/www/
#define TELNET_OB     "secure/sockets/telnet_ob"

mapping sessions = ([ ]);

status main(string str) {
  string host;
  int port;
  if (!adminp(this_player()))
   return 0;
  if (!str) {
    if (sessions[this_player()] == 0)
     return
      notify_fail("telnet: Could not find detatched session.\n");
    (void)sessions[this_player()]->reattach();
    return 1;
    }
  if (str == "-q") {
    if (sessions[this_player()] == 0)
     return
      notify_fail("telnet: Could not find session.\n");
    destruct(sessions[this_player()]);
    return 1;
    }
  if (sessions[this_player()])
   return
    notify_fail("telnet: You have a detatched session.\n"
                "Type 'telnet' to reattach to it.\n");
  if (sscanf(str, "%s %d", host, port) != 2)
   host = str, port = 23;
  sessions[this_player()] = clone_object(TELNET_OB);
  (void)sessions[this_player()]->start(host, port);
  return 1;
  }

void help() {
  write("telnet [<address> [<port>] | -q]\n"
        "Telnet to the address given, or reactivate a dormant session.\n"
        "You may only have one session at any given time.\n"
        "Several telnet commands are available, a telnet\n"
        "command starts with the escape character (^[).\n"
        "Use \"^[?\" to get a list of available telnet commands.\n"
        "The \"-q\" option allows you to close a telnet session\n"
        "from the commandline.\n");
  return;
  }

mapping query_sessions() { return copy_mapping(sessions); }