parent $has_commands parent $network_root object $connection_interfaces var $root dbref 'connection_interfaces var $root child_index 3 var $root fertile 0 var $root manager $connection_interfaces var $root owned [$connection_interfaces] var $root owners [$connection_interfaces] var $root writable [] var $root readable ['parameters, 'methods, 'code] var $has_commands commands [] var $has_commands shortcuts [] var $root inited 1 var $connection_interfaces connection 0 var $old_command_environment verb_cache #[] var $old_command_environment command_cache [] var $old_command_environment shortcuts_cache [] method timeout // the connection is asking the interface if it should timeout // and close the connection. return 1; . method parse_line arg line; var cmd; // don't use the normal parsing system because it involves // a bit of overhead. catch any { while (line && ((line[1]) == " ")) line = substr(line, 2); if (!line) { return .null_cmd(line); } else { cmd = .match_command(line); if (cmd) return (> .(cmd[1])(@cmd[2]) <); else return (> .invalid_cmd(line) <); } } with handler { if (((traceback()[1])[3]) != 'no_traceback) { .send($parse.traceback(traceback())); return 'disconnect; } } . method init_connection_interface (> .perms(caller(), $root) <); connection = 0; . method uninit_connection_interface (> .perms(caller(), $root) <); connection = 0; . method connection_going_away arg addr, port; (> .perms(caller(), $connection) <); (> .perms(sender(), connection) <); (> .destroy() <); . method linelen return 79; . method new_connection arg addr; (> .perms(caller(), $connection) <); connection = sender(); . method send arg what; connection.send(what); . method null_cmd arg line; return 'disconnect; . method invalid_cmd arg line; return 'disconnect; . method connection return connection; . method connection_starting // called by connection.connect() . method tell arg line; // this is redundant, but .tell() is standard in the core, and things break // without it. (> .send(line) <); .