INetShell V2.1a ©1994 TKA Services
Written by Paul Leclair
Have you ever wanted to get an easy-to-use shell interface between
CNet BBS and AmiTCP (or other sana2-complient software)? I did. Since
we put up AmiTCP (a great program!) on our BBS, we had to find an easy
way for our users to access the Telnet/FTP/etc clients. We've tried a
couple of different packages, but either the programs would not do what
we wanted them to do, or they were buggy and there was not enough
programming support from the creators. Therefore, this project was
conceived.
I wanted something that my users, especially those who don't have a
clue about Internet and the clients, could go into the shell program
and travel the Internet easily. So I started working on INet. The
earlier beta-versions were very functional, but I wanted MORE than
functional. I wanted something that was also nice to look at. So I
tried to come up with something that was not only easy, but also very
asthetically pleasing.
INetShell is probably the easiest package available for CNet (that
I'm aware of) for doing everything. The users will be able to Telnet
to sites off a pre-defined menu, they can enter a manual Telnet which
they can enter the site/port number. It also has the ability to allow
users to add notebook/phonebook entries (registered version only) to
which they can call up during a visit to the Telnet area. FTP and
Finger options also have user-definable database files...no more need
for thousands of little post-it notes scattered all around your
computer desk. :-)
I also wanted to make it idiot-proof and lazy-proof. So, I decided
to make all of the options and commands hot-keyed. The less keypresses
that someone has to make, makes it that much faster to get around.
I also added a directory maintenance utility (built-in) which is also
hot-keyed and does all of the functions you could ever wish for in
a DirMaint utility for manipulating files that you FTP'd. And the
HELP section was set up to be based on the CNet style HELP function so
that it would be easy to use and very informative.
This project has taken about 6 weeks of programming (my first time
at sitting down and writing an ARexx program of this size) and I was
very pleased with the end result. I hope you will be also.
Installation:
o Unarchive the INetShell archive to an empty directory
o Make a directory in PFILES: called "InetShell"
o Move the files in the "c" directory to your C: directory assign
: RPSTART - program to install the Rexx Plus environment
: RPHI - the Rexx Plus "halt" command (stops rexx programs
from running/halts execution)
o Edit your S:user-startup file and add "RPSTART" on a new line
so that Rexx Plus's environment can be loaded. (Only do this if
you don't have Rexx Plus running on your machine already)
o Move the libs/rexxplslib.library to libs:
o Copy the remainder of the contents of the archive into
Pfiles:InetShell/
o If you have been running another kind of interface program or
have had users using FTP and have previously set up the .netrc
file(s), they must be all deleted. Usually, they will reside
in "Mail:users/
". You can delete them all by doing the
following command:
Delete mail:users/#?/.netrc
o Run the RPStart program (to get RexxPlus activated) - it should
be located in your C: directory if you moved it there in the
step above. You should see a message "RPStart...bla bla, installed"
If you have Rexx Plus's environment already installed, you can
skip this step.
o Run the arexx program called INetMaint. The program is self-explanitory.
o Set up a directory to store the user's profiles/FTP Files (this directory
must match the name used in the INetConfig entry)
(ie. MAKEDIR )
Suggestion: use a drive that has a lot of storage because
this is where all FTP files end up when a user
does an FTP.
It is HIGHLY suggested that you do NOT set up
the directory to merge with "mail:users/" due
to users having the ability to download from
this directory area.
o Edit your cnet:bbsmenu file(s) and add the following command
to section "3; Main Prompt"
NET |{#0PFILES:INetShell/INet}
^
Control-Q
(INet can be shared over different ports)
o Save bbsmenu file(s) and reload your BBSTEXT/MENU files from the
CNet Control panel.
o IMPORTANT: Be sure that the pure bit on the main INet file is set.
(do a "List pfiles:inetshell/inet" and see if the "p" bit is set.
if it isn't, do a "protect pfiles:inetshell/inet +p")
o The main INet file is pure and can be made resident to save memory
and increased speed for loading.
To make resident, do:
"resident pfiles:inetshell/inet pfiles:inetshell/inet pure add"
(you can add this in your CNet startup script)
o Add an Event entry in Cnet's CONFIG for INetMaint. You can set
this to run once a week if you like. It only checks to see if
there is a purged bbs user who still has an INet account. If it
is there, it will purge the INet directory and info for that
user. This is an Arexx program.
o Logon and type "NET" from your main prompt and away you go.
======================================================================
*** INSTRUCTIONS ON HOW TO EDIT DATA FILES ***
There are 10 types of config files that the shell uses. The files are
located in PFILES:INetShell/config/
Inet - main program configuration file
TelnetMenu - main list of telnet sites (menu) (registered only)
Telnet# - actual telnet sites (registered only)
FTPMenu - main list of ftp sites (menu) (registered only)
FTP# - actual ftp sites (registered only)
ArchieServ - list of Archie servers
IRCServer - list of IRC servers
newuser.txt - displayed for new users (all users)
newuser1.txt - display only if sysops allow users to choose UUCP ID
MOTD - entry screen (supplied by Piper of eyesoftime.com)
-----------------------------------------------------------------------
TelnetMenu: (only used in the registered version of INetShell)
TelnetMenu is the primary menu that users see when they first enter
the Telnet command off the main menu of INetShell. This is just a
list of available sub-menus that the user can enter. There is no limit
to how many sub-menus you can create.
The format of TelnetMenu is:
2
Menu Item 1
Menu Item 2
Line1: the total amount of entries in the file (excluding line 1)
Line2: name of directory
Line3: name of directory
etc
See the example that is packaged with INetShell.
-----------------------------------------------------------------------
FTPMenu: (Only used in the registered version of INetShell)
FTPMenu is the primary menu that users see when they first enter the
FTP command off the main menu of INetShell. The data format is the
same as TelnetMenu.
-----------------------------------------------------------------------
IRCServer:
This is a list of IRC Servers that you can reach. The data file format
is set up like so:
1
IRC Server (US)
irc.pitt.edu
Line1: number of total servers listed
Line2: Name given for the server (the name that will show up on the
server listing)
Line3: the actual server domain name or IP#.
See the example IRCServer file in the config directory.
As with TelnetMenu and FTPMenu, there is no limit to how many
servers you may add to this list.
-----------------------------------------------------------------------
ArchieServ:
This file contains the available Archie servers that your users can
use when doing an Archie file search.
The format is:
site.name.or.ip
site.name.or.ip
site.name.or.ip
etc
etc
There is a maximum of 8 sites you can have listed. This may change
in the future if there is a need for a larger list. Note that this
file format does NOT contain the # of sites at the start. It only
contains the domain or IP# of the Archie server site.
-----------------------------------------------------------------------
Telnet#: (Only used in registered version of INetShell)
The Telnet(number) file(s) contain the actual sites and descriptions
of the Telnet sites. These files are connected with the TelnetMenu file.
Here is how it works:
If in TelnetMenu, you have 3 entries, you must have 3 Telnet# files
(Telnet1, Telnet2 & Telnet3). When the user picks item 1 off the
main Telnet list, it will load up and display the Telnet1 sub-menu.
The format is:
1
The Kobayashi Alternative BBS
tka.com 23
This is a CNet BBS and home of
the INetShell interface program.
Line1: number of Telnet sites in the file
Line2: the domain.name or IP# and (optional) port number
Line3: description line 1
Line4: description line 2
Note, you MUST have 2 description lines before the next entry. These
can be blank lines if you wish not to have any description listed. There
is no limit to how many sites you can have listed in these files.
-----------------------------------------------------------------------
FTP#: (Only used in registered version of INetShell)
The FTP(number) file(s) contain the actual sites and descriptions
of the FTP sites. These files are connected with the FTPMenu file.
The format and how it works is the same as the Telnet# files.
-----------------------------------------------------------------------
NOTE:
In the unregistered version, the telnet and ftp menus are read from
the files called "TELNET" and "FTP" in the config/ directory. These
files follow the format of TELNET# and FTP# which is listed above.
=======================================================================
What happens when a new user gets into the INetShell:
1. The program will check to be sure that they have a valid
Internet Name (UUCP ID). If this has never been set, it
will ask the user to enter a name.
2. The program will then create the user's FTP storage directory
in the location you specified in the "INet" config file.
3. It will then copy the default "." files from the INetShell/new/
directory into their FTP storage directory.
4. It will then create a .netrc with default settings in the
user's "mail:users/" area.
5. Then it will maintain the AmiTCP:db/passwd file (as specified
in the INet config) and add an entry for their account.
6. Finally it will let them into the main menu.
=======================================================================
BUGS & ERROR REPORTS:
Should the program have a programming error (GOD FORBID!), it will
report it in E-Mail to User ID#1 (usually the sysop). Please forward
this mail file to me at my Internet address (limahl@tka.com).
Note that the program may and will error out should you run the
ARexx "halt" (hi) command. Usually, it will give some kind of
syntax error. The next release (1.5) should have this taken care
of.
=======================================================================
OTHER STUFF:
I would like to thank Mainiac (Dean C. Banks) for helping me figure
out how to get the menuing system working and to keep pushing me to get
this project finished.
I'd also like to thank my 2 beta-testers for the INet project. Piper
of Eyes of Time BBS (piper@eyesoftime.com) and Runr of Laserbase
Communications (runr@laserbase.com). With their bug reports and ideas,
the shell has become quite stable and VERY easy to use for both sysops
and users.
Also I want to thank Piper for creating the nice entry screen for
INet Shell.
This project took me about 6 weeks to complete. Most of the work was
done in the last 2 weeks (12 hour days). This is also my first attempt
at creating a complex ARexx program so please be kind. :)
Added in the distribution of the demo of INetShell is a nice little
utility that allows OLMs sent to users online should new Internet
E-Mail be imported from the UUMail: directory. Note that this program
uses CNETREXX0 and may spit out a number when an olm comes to you on
port 0. This is a CNETREXX port problem which I will try to have
fixed in a future release of this UUMailScan program.
If you have any comments, please E-Mail them to me at the above listed
address.