NetCommanderDoc.tioga
Michael Plass, November 7, 1990 5:14 pm PST
Willie-sue Orr, June 29, 1992 1:53 pm PDT
NetCommander
Cedar 10.1
NetCommander
Commanding your Cedar worlds over the network
Michael Plass
Ó Copyright 1990, 1992 Xerox Corporation. All rights reserved.
Abstract: NetCommander provides a means for creating a Commander instance that communicates over a network stream.
Created by: Michael Plass
Maintained by: Michael Plass <Michael Plass:PARC:Xerox>
Keywords: Commander, CommandTool, Network, TCP/IP, STREAM, Telnet, Chat
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

1. Introduction
It is often desirable to get in touch with an existing Cedar world; a common scenario is that you have left a world running on your workstation, and you would like to chat with it to do command oriented things.
DCedar has a package called RemoteCommandTool that supplies features like this. NetCommander is not a port of RemoteCommandTool; rather it is a re-implementation that uses the NetworkStreams interface.
Authentication is done in a very simple (hence not very secure) way: you can specify a password that needs to be typed on an incoming connection before anything else happens.
Port assignment is also done very simply. The user specifies a port number when the listener is started.
2. Commands
NetCommanderOn port [ transportClass ] [-lock password]
Make a Commander listener on the specified port (ARPA only for now). The default for transportClass is TCP, which will allow access via telnet; if lock is given, password is set for incoming connections.
NetCommanderOff
Destroy current Commander listeners.
NetCommanderLock password
Set a password for incoming connections.
NetCommanderListeners
List current Commander listeners.
NetCommander host:port [ transportClass ] [-lock password]
Connect to another Cedar world; this may be used instead of telnet if you are already talking to a commander. This will shove the password specified by password (or by NetCommanderLock if lock is NIL) down the wire, as well as a CD command.
3. Examples
From Commander 1

%
sh
$ CommanderWorld
...
Welcome to Basic PCedar 2.0.5 of September 25, 1990 2:20:01 pm PDT.
...
Commander % cd
/net/chroma/rojo/plass/
Commander % Basic
Global default switches for Run are -o
Commander % NetCommanderLock frob
Ran ...
Commander % NetCommanderOn 4800
Connection command: NetCommander [13.1.101.95]:4800 TCP
Commander %
From Commander 2
% NetCommanderLock frob Use the same password here as on the server side.
{ 0.02 sec }
% NetCommander [13.1.101.95]:4800 TCP
User name is plass
Password:[13.1.101.95]:4800 % /net/chroma/rojo/plass/NetCommander/
[13.1.101.95]:4800 % ls Net*.mesa
/net/chroma/rojo/plass/NetCommander/
NetCommanderImpl.mesa 16190 07-Nov-90 13:13:32 PST
NetworkStream.mesa 19877 07-Nov-89 09:24:19 PST
-- 2 files, 36067 total bytes
[13.1.101.95]:4800 %   That's a ^D
EOF
{ 29.56 sec }
% term "telnet moderato 4800"
{ 1.95 sec }
% NetCommander moderato:4800 TCP You can use a name instead of the address
User name is plass
Password:[13.1.101.95]:4800 % /net/chroma/rojo/plass/NetCommander/
[13.1.101.95]:4800 % exitworld Kill off the other world (be careful!)
EOF
{ 10.31 sec }
%
4. Bogons
* The authentication scheme is pretty primitive. Somebody help make it better.
* The telnet protocol is not properly adhered to. There is code in the CedarChest RemoteCommandTool that should be adapted here.