The following optimizations and improvements have occurred.
- Trace display of encap frames improved
Added code to the tracing of encapsulated packets to show the encap
IP type, which is either 4 or 94. Until the 94 type is completely history, this will
assist in debugging encap problems.
- Home BBS prompt message not in a changable file
Changed the ASKHOME first-time prompt message from being a compiled in
message to being one read from a file named '/spool/askhome.dat'.
- Completely customizable prompt
Added a new option to the 'prompt' command, "prompt custom 'promptstr'"
which allows you to fully customize the prompt to whatever you wish. To use
imbedded spaces, surround the string in quotes.
- Two new short-cut commands
Added two new command session commands, 'gone' and 'here'. These 'gone'
command is the same as 'attend off' and 'mbox attend off'. The 'here'
command sets these both to 'on'.
- Made the rewrite file parsing more dependable
The routine that parsed the rewrite file was very dependent on having only
a single space or tab between fields. This is no longer a problem.
- A small change to Conference Bridge flow control
Made a small change to the flow control, which places the Conference stream
in non-CR flow mode during the processing of Conference Bridge commands,
and then places it back into CR flow control while waiting for new commands
or data (the original flow control). This allows the incoming data messages
to come out as soon as they arrive, without queueing, but makes the output
of commands (like /who) come in the most efficient manner for the interface.
- Added run-time configuration of the ARP expiration timeout
Now there is a 'arp expire numseconds' command. The default is the old
hardcoded value of 900 (15 minutes).
- Added an 'unlock' command
Necessity again adds to the command set! There is now a command session
command 'unlock unlockpassword' that can be accessed as a remote sysop
to bring a mountaintop TNOS box out of keyboard lock, so you can allow
a volunteer to assist on site without giving the password out.
- Also now allow remote locking
To allow the keyboard to be secured remotely, the previousi restriction
to the 'lock' command, which would not allow it to be executed remotely,
has been removed. The idea is, if they have remote sysop permissions,
then you are already trusting them, so allow it.
- Added ability to ALWAYS display MOTD file
The MOTD file used to be a one-shot only, that is, you only saw it once,
on your next login only. To display it again after changes, you used
the 'mbox newmotd' command. There is now a 'mbox motdalways' command, so
if you desire to, you can always have the MOTD file displayed on EACH login.
- Extended the flexibility of security permissions
I've added two new security subcommands, 'amprperms' and 'nonamprperms',
which ought to be obvious on who they are for ;-)
I also made a change to how these work, so let me explain from scratch:The security subcommands of 'amprperms', 'ax25perms', 'nonamprperms',
and 'tipperms' serve as a way to have a greater deal of control over
anonymous logins to the BBS. These all default to a value of zero, which
disables their use. When a user logs into the BBS anonymously, they get
whatever value the 'univperm' entry is set for (if it exists). Then the
type of connection is determined; i.e. ampr telnet, ax25, non-ampr
telnet, or tipmail. IF the corresponding security permission is non-zero,
then THAT value will be used, overridding the 'univperm' permissions.
This allows you to have different anonymous permissions for each of these
four groups, or use the old way if you prefer.
- New BBS script hooks for access denial
There is also a new set of mbox script hooks in all of the routines that
deny access for gatewaying to either converse, netrom, ax25 connects,
telnet, or if the use is denied because the 'mbox secure' flag is on.The script that will be called (if it exists) is the
spool/cmds/denied.sys script. It is passed in  0 a string of 'denied xxxx',
where 'xxxx' is either 'converse', 'ax25', 'telnet', 'netrom', or 'secure'.
This allows you to make a custom and more friendly message explaining the
denial.
- TAPR Hierarchical Addressing Protocol enforced
This release enforces the TAPR
Hierarchical Addressing Protocol (x.3.4) as published. The 'mbox haddress'
command will NOT accept an address that is not using one of the 19
4-character Continent Identifiers listed in the protocol or an address
that is not using a 3-character Country Identifier.While I have avoided coding in items that restrict the user, I believe
that the Protocol, as recommended by TAPR's BBSSIG and TAPR's board, is
important and should be adopted.
- Command to limit number of BBS incoming sessions
Give them a stable xNOS, and then they want to limit the number of users ;-)
Well Mat requested:"BTW, what do you think of a 'mbox maxusers #' command to limit
online users?"
Well, it's in 1.12.
- Added a command session uptime command.
Didn't take much, and I got tired of typing 'mbox mailstat'...
- Further security options....
There will also be a greater degree of security in release 1.12 in the
area of email. There are now three new permission flags, no_pbbs_mail
(Disallow PBBS mail addresses), no_inet_mail (Disallow non-ampr mail
addresses), and no_ampr_mail (Disallow ampr mail addresses).
- New command 'mbox bidsuffix'
There is a new command session command 'mbox bidsuffix', which allows you
to define the string used to make up the bids on messages created
locally. This was normally based on the first part of the hostname, but
for hosts like 'gw.n9xxx.ampr.org', the "12345_GW" didn't cut it. Most
won't need this, but if you do it's there.
- New command 'mbox rcall'
There is a new command session command 'mbox rcall', which allows you to
define the string used to make up the first element of the haddress used
in the R: lines ('mbox haddress' should NOT include the callsign). This
was normally based on the 'ax mycall'. While this is normally not needed,
some are maintaining more than one TNOS machine (myself included) and
this allows the callsigns to be the same (or different) and the haddress
to be varied, also.
- Introducing 'ax25 smartroute'
Smart routing is where when an address is overheard which is NOT to your
TNOS box, it looks in (1) optional remote calls associated with the axip
interface (more later), (2) the current ax25 routing table, (3) the ax25
heard listings. If the call is intended for one of these (someone that
TNOS can identify with an interface - and not the interface it came in
on), then the packet will be digipeated to the proper interface
automagically!For instance, K1XXX is a user located on port '2m' of TNOS system N4YYY.
N4YYY can connect to him in his BBS with 'C 2m K1XXX'. Now W3ZZZ is
another xNOS system, connected to N4YYY via an axip link, on his port
named 'link1'. W3ZZZ can now connect to K1XXX directly
using 'C link1 K1XXX' and K1XXX can connect to W3ZZZ
using 'C W3ZZZ' from HIS
station, without using, or knowing TNOS, and without knowing of the
existence of N4YYY.
Notice that I said W3ZZZ was a xNOS user, and not a TNOS user. One TNOS
smart router can serve both ends.
- Maintainence Mode added
There are three new commands that alter what I call Maintainence Mode.
This provides a way to prevent further BBS connects in order to do
maintainence chores, like expiration.
- mbox maintainence [on | off]
displays/sets state of maintainence mode
- mbox maintmode [on | off]
displays/sets whether maintainence mode is really used
- mbox maintstr [string]
displays/sets the string given to the users that try to
connect while maintainence is being done.
For example, if 'mbox maintmode' is on, then you can type 'mbox
maintainence on', and no further logins will be permitted until you
type 'mbox maintainence off'.
The expire code now uses this mode, if it is enabled, to set maintainence
mode, and then it waits until any current users log off. Once the BBS is
clear, then the expiration continues.
The White Pages expiration code uses this in the same way.
You will want to schedule these to occur at non-peak times (4 a.m., etc.).
- LOOK comes to TNOS
One feature that made it into JNOS a while back seemed to escape my
attention, the 'look' command. If you come to TNOS from a recent JNOS,
you probably already know about LOOK (except for my additions ;-)
Thanks goes to Mike Dent <g6phf@unixphf.ampr.org> for making me aware of
this one.Typing 'look user' or 'look socket#', gives the sysop a 'split' screen
picture window of whatever the user you are looking at types OR receives,
as though you where that user. Special commands for the sysop include:
- /chat
starts a chat session to the user, user sees "***SYSOP initiated CHAT".
- /quit (or /bye or /exit)
stops the look session or the chat session, if active.
- /msg message
sends a '<sysop>:' followed by your message.
- /help (or /?)
gives a SMALL help message.
- /insert command
allows the sysop to take over and do the typing for users from the
sysop's look session. The user would still see the text the sysop was
typing.
- Selective holding of locally generated mail
Added a command 'mbox holdall' to allow you to hold all locally generated
BBS messages for SYSOP review.
- AXUI mode developed
Well, added another SYSOP tool, AXUI, which allows you to monitor all
broadcast UI frames, and allows you to send UI's message to a definable
callsign out a definable interface. The source callsign is the 'ax user'
callsign.Commands syntax is: 'axui <iface> [callsign]" If 'callsign' is
not given, then 'ID' is used. This gives the sysop a 'split' screen
picture window of all of the UI non-protocol frames from ALL interfaces.
The commands within AXUI are:
- /call callsign
changes the outgoing destination callsign to 'callsign'
- /quit (or /bye or /exit)
stops the axui session
- /interface iface
changes the outgoing interface to 'iface'
- /help (or /?)
gives a SMALL help message.
This is a tool I've needed many times when debugging TNOS or debugging
the local network. Also, there WAS no way to easily send a keyboard UI
before. Hopefully this will be useful.