DESCRIPTION
Matrix is a replacement for the Topic menuing system by Markku
'Hack' Mellanen. I used Topic for half a year, but eventually
became frustrated with its quirks and lack of expandability
and got tired of hex-editing in my corrections, so I wrote my own.
Matrix is intended for use with AXsh, but it can be used from
AmigaDOS or another BBS if you want (consult the OTHER SYSTEMS
section for this). Matrix is largely compatible with Topic, but
it also provides a large number of extensions. Here's a summary
of the differences:
- full shell support (local/global variables, piping, etc)
- all options can be combined
- better support for submenus
- all actions by users are logged
- expert/verbose mode selection
- instant menu redrawing, pause option
- support for "timeout" utility, detection of AXsh:etc/nologin
- commands to run from outside for page, forced chat, and abort
- user-definable abort/chat/force commands
- attempts to notice carrier loss and acts accordingly
As of Jan 1994, Timeout (a time limit utility) is not ready for
release, so ignore references to it here.
NEW FEATURES
Matrix v1.1 is a stopgap release to fix the massive security bug
I realized had been in it (and Topic) all along. Namely, if
the user decided to create his own menu file...perhaps with a menu
item like "axsh:bin/axsh -con -user root"... Need I say more?
Matrix now supports a MATRIX_DIR variable where the sysop can enter
legal directories for menus.
The other changes are also primarily security/safety features.
Being an intermediate release, the code actually has some of
the nifty client/server multitask code I was working on, but it's
#ifdef'd out and never invoked.
Features added or significantly changed in Matrix since v1.0:
- Aforementioned security bug fixed with ENV:MATRIX_DIR variable.
- Users kicked out of Matrix if 5 invalid commands are given. This
is an attempt to deal with carrier drops, which often cause the
modem to spew/repeat junk for a while, making Topic/Matrix 1.0
loop endlessly.
- CTRL-C processed instead of just aborting instantly.
- Users cannot enter MSG_* in menus.
- All gets() replaced with fgets(stdin), now users cannot crash
machine simply by entering tons of junk.
- Superuser rights given to all users with one of these accesslevels:
assistant, superuser, wizard, system
I attempted to implent an autologout system, bu evidently WaitForChar()
doesn't like AXsh or serial input, so I had to resort to the current
approach. I'll try it with a different approach for v2.0.
REQUIREMENTS
Matrix requires an Amiga with Kickstart 2.0 or higher and an input
device of some kind (ie. a serial port or a keyboard).
AUTHOR _
Jani "Guru Gnosis Sahib" Poijärvi
Internet: root@brahman.nullnet.fi
BBS: Brahman, +358-0-498-797, USR 16800 DS, 24h/7d
(official Matrix support site)
|