8 	STATUS is a monitor/finger/whatever type program, which> allows you to specify exactly what you want to see and how youD want to see it. You can specify any GETJPI (or one of several GETSYIA items) to be displayed (or selected upon), plus a few extras. See @ STATUS.HLP for more info. See WHO.COM for some general examples,A SHOWSYS.COM for an example that looks quite like SHOW SYSTEM, and > SHOWUSERS.COM for an example that looks quite like SHOW USERS.  I It has been written in such a way as to be easily modified, and added to. - See the file MODIFY.DOC for more info on how.    To use: @ 	Either edit STATUS.CLD so that the IMAGE clause points to whereF you are storing the image, or define a logical name STATUS to point toH the image, or store the STATUS image in SYS$SYSTEM.  Then you can eitherA do SET COMMAND STATUS, or add it to the system command tables via E SET COMMAND/TABLE=SYS$SHARE:DCLTABLES/OUT=SYS$SHARE:DCLTABLES STATUS. 6 If you do the latter, be sure to reinstall the tables.  G From an appropriately privileged account execute STATUS.COM, which will G start the DECnet server task (SERVER.EXE). You will then be able to use  the STATUS command.    To restrict use:A 	If you don't want users to be able to see certain items, you can I comment them out of KEYWORDS.DAT (or remove them entirely). Then run MAKE F to recompile the program. Users will no longer be able to access those< items. Simple eh? You don't have to be this drastic though..> 	Security has been enhanced. You can associate an access levelB for an item, and any client meeting (or exceeding) that level willF be allowed to see it. The clients access level is set via the routines5 in SECURE.C, by default it is implemented as follows: E 	The client node/username is used to index into the User database, if G no record is found, then the client node is used to index into the node C database, if no record is found then the client node is compared to ? the server node, if its the same, the level is set to 3, if not @ then the node is checked to see if it's a member of the cluster,> if so, the level is set to 2, otherwise the level is set to 1.> 	In KEYWORDS.DAT, the last number defines the access level forC an item. By default all items are set to level 1. You might want to E (for example) change all the items that return a privilege mask to be @ at level 4, then enable the User database and define a few users to have level 4 access.   
 To manage:. 	There are a few logical names you can define:K STATUS_ORGANIZATION is a string which is returned for the ORGANIZATION item   B STATUS_TERMINALS determines where the terminal database is locatedA STATUS_WHO determines where the personal name database is located C STATUS_NODES determines where the node security database is located C STATUS_USERS determines where the user security database is located   : 	There are a few databases that you can optionally create.@ The Terminal database, the Personal name database, the Node/UserC database, and the Node database. These are all simply indexed files @ with one key (which can be any size). You can use INDEXED.COM toE create these files if you wish. The names for these files are defined D in CONFIG.H and can be easily changed. More comments can be found in& CONFIG.H. The defaults are as follows:  D The Terminal database: (by default this database is enabled for use) filename = "STATUS_TERMINALS" % default-spec = "SYS$SYSTEM:.LOCATION" B The key is the name of the terminal. This should look exactly likeA what WHERE returns when it doesn't find a record in the database. F For example, "TTA0", "TXA0". Note that they are all uppercase, and theI leading underscore and trailing colon have been removed. Terminal servers J are supported, the key should be "server/port" where server is the name ofB the server, and port is the name of the port. Note that the "/" isJ necessary. The non-key portion of the record can contain whatever you wishH to be displayed for the WHERE item. The key can contain trailing spaces.  M The Personal name database: (by default this database is not enabled for use)  filename = "STATUS_WHO" " default-spec = "SYS$SYSTEM:.NAMES"< The key is a username. The non-key portion of the record can; contain whatever you wish to be displayed for the WHO item.   D The Node database: (by default this database is not enabled for use) filename = "STATUS_NODES" " default-spec = "SYS$SYSTEM:.LEVEL"? The key is a nodename. The non-key portion of the record should @ contain the access level (0 means no access) for that node. NoteA that the record should contain a textual number (i.e. "0"), not a ! binary number (ie. a longword 0).   I The Node/User database: (by default this database is not enabled for use)  filename = "STATUS_USERS" " default-spec = "SYS$SYSTEM:.LEVEL"? The key is "nodename/username". Note that the "\" is necessary. A The non-key portion of the record should contain the access level C (0 means no access) for that node/user. Note that the record should @ contain a textual number (i.e. "0"), not a binary number (i.e. a longword 0).  : Note that I have written a very meager program for working; with these files, called MANAGE. You can use this to create @ and modify the databases if you like, or you can use INDEXED.COM to create the databases.  @ The IMAGE item checks for RTPAD (set host command), and displaysC where the outgoing connection is being made. If you have CMU TCP/IP < (version 6.2?) then the same will happen for TELNET and FTP.  H There is also a WHO item, which can do an indexed file lookup if you setH one up, followed by a call to SYS$GETUAI to retrieve the Owner field outK of the authorization file if it doesn't succeed in the indexed file lookup. E It builds an internal tree so that it doesn't have to repeatedly call H SYS$GETUAI (because it's SO ssllooww!). You might consider disabling theL SYSUAF search if you use the owner field for something else. To do this editN CONFIG.H, changing the line "#define WHO_SYSUAF  1" to "#define WHO_SYSUAF  0"  D A MAKEFILE is included. If you do not have MAKE, you can execute theF COMPILE.COM procedure. If you just need to relink, you can execute theF LINK.COM procedure. Note that if you change KEYWORDS.DAT you will need to recompile almost everything.    Future enhancements:% 	Add support for the /SORT qualifier.   5 	Add a /HIGHLIGHT option for enabling highlighting of < changed items in a continuous display. At the same time, add< support for bolding/reverse/flashing/underlining in the text; via ^b, ^r, ^f, ^u, and ^n (for normal). Allow any of these < to occur anywhere, plus allow the highlighting option to set= of these to use. Only GETJPI items will support highlighting.   0 	Support for other networks: TCP/IP, BITNET etc.   Note: ; 	If you are linking with an older version of the C run time E library you may not have the mem functions (memcpy, memmove, memset), I if you don't, you can compile (and link with) MEM.MAR, which will provide G similar functionality. These aren't functionally equivalent to the Unix J or the VMS run time library versions, but they are close enough for my use	 of them.. 