Upgrading TNOS to release 2.10 http://www.lantz.com/Update2.10.html TNOS 2.10 will be the next release of TNOS, to be released sometime before the formation of the United Federation of Planets. Hopefully, this list of changes will give you an idea of the scope of work that has occurred between versions. Of course, it may be faster just to re-read the docs when the next version is released. This document is divided into: * Bug Fixes * Improvements * Minor Changes * Known Bugs * To-Do List ------------------------------------------------------------ Bug Fixes: The following bugs have been squashed. * Fixed buglet related to finding Finger files and REQSVR Help file * Fixed buglet which sometimes stripped beginning of REQSVR uploaded file * Placed in a temporary workaround for a wpages design problem The problem occurs if an smtp message comes into the SMTP server of the form "user%bbs.#heir.address@hostname" *AND* the 'wp support' is on. It seems that the original string is getting passed TO the wpage_exp routine, and it can't handle it at this time. The result depends on your system. DOS, I don't know, but I suspect a glorious crash. Unix, if you have no (or little) swap space, then a TNOS crash. Unix with ample swap space, eternal thrashing with little chance of recovery short of hitting reset button. It seems to be getting into a recursive loop, with multiple memory allocations. Not really sure WHERE the exact problem is (at the present), but here's a simple workaround.... * Fixed an obscure bug that would crash if expanding a empty group * Fixed a bug that would crash handling the features.new file This only occurred on SOME systems, which is REALLY surprising. * Patch to 'ip access' command to insure proper number of parameters * Fixed buglet in 2.02 with PBBS forwarding messages with blank subjects * Fixed convers timestamp buglet * Altered BBS Send command parser to allow '$' in 'to' and 'bbs' names * Fixed a HUGE bug in FBB compression code * MANY, MANY assorted cleanups and bug fixes * The above are included in 2.02pl1 * Fixed a buglet with the BBS's 'editheader' function * Fixed a buglet that affected FBB forwarding negotiations * Added code to ensure that new messages PBBS forward (FBB) timely * Fixed an occasion crash with SMTP messages with long lines * Fixed a cosmetic bug with some 'forward' subcommands Some of the subcommands reports errors as being 'mbox' subcommand errors, not 'forward' subcommand errors. * RSPF timer routine fixed - thanks Paul * Fix for tracing to Xserver, if using dumb session mgr (UNIX only) * Fix for T/TCP from Paul * Fixed problem if mail queued for fwding is being held ACTUALLY, this bug COULD have occurred with each and every forwarding session, causing crashes or freeing others memory. It seemed to only occur after the system has tried MANY times to fwd traffic, but it still remains held for review. Usually result would be a reset. * Found and fixed a MAJOR memory corruption bug (hopefully the only one) This one was because the SCRIPTING additions (if enabled) didn't allocate enough memory (one byte short) when processing a locally entered console command. * Fixed PBBS forwarding problem with BIDS containing '@'s * Fixed a couple of buglets involving POLLEDKISS and KISS w/CRC * Several assorted bug fixes in the forwarding code * The above are included in 2.02pl2 * Added a patch to allow ';' in BIDS to be accepted (God knows why ;-) * Fixed bug that prevented error message display if catalog.cat missing * Fixed incorrect handling of X-fwd response of 'SY 0' * Added code to allow username and flood zone to begin with a '$' Again, GOD only knows why........ * Fixed a MAJOR bug that at times truncated outgoing PBBS traffic * Fixed an FTP buglet, which got response messages out of sync This only would occur if the transfer type was ASCII, and the file type was BINARY. A warning message was being output, but it was missing a needed '-' character after the message number, to cause the receiver to ignore this string, and search for the next string. * Fixed an FTP buglet, which made Netscape barf This occurred because Netscape ALWAYS asks for 'get's of a file using the complete pathname (starting with '/'), regardless of the directory it believes it is in. This wasn't being handled correctly. Since a human wouldn't do this, it was never caught in testing. * Also, fixed a bug in the dir_ok() function This function is suppose to check for validity of a directory. It WOULD, though, not catch if someone tried to (for instance) do a 'cd xxx' in the ftpserver and 'xxx' was NOT a directory, but was instead a file. The ftpserver would return '257 "xxx" is current directory'. * Added code to clean up the 'pbbs' listing if an invalid gateway is found * Fix for PPP and the newest Livingston Portmaster, used by ISP's * Fixed a buglet that had crept in on msgs requiring Return Receipts * The above are included in 2.10b2 * Fixed a bug which didn't handle the remote password as documented * Fixed the quirk where there would be two X-Forwarded-To lines at times * The above are included in 2.10b3 * The above are included in 2.10b4 * The above are included in 2.10b5 * FTP permissions bug fixed for Unix When adding the new UNIX-like dir display a buglet crept in. While fixing this, I expanded the support for symlinks to make it consistent with normal Unix displays. Also, the '.' and '..' files are now displayed for Unix. * Fixed a security hole in the HTTP PBBS code ------------------------------------------------------------ Improvements: The following optimizations and improvements have occurred. * Added to SQL support in TScript ability to use variables in query line * Added a 'mbox prune' command to expire personal areas All deleted messages are removed, as well as any messages over 1/2 year old, from all personal areas (areas NOT in the areas.sys file). * Added a 'sendmail' command, for sending quick notes from Command Session Syntax is 'sendmail toaddr [fromaddr] subject data', where 'data' is either a string, or a filename preceeded by a "<" (with no space between). If no 'fromaddr' is given, it is addressed from 'sysop@'yourhostname. * Added a HTTP server! This is built from the code patches from Selcuk Ozturk produced for JNOS. The HTTP he produced/modified were a hybrid between HTTP 0.9 and HTTP 1.0, meeting NEITHER spec, really. This code was first ported to TNOS and UNIX, made completely compliant with both 0.9 and 1.0 specs, enhanced RADICALLY, and mostly rewritten. All resemblance to the original code at this point is strictly coincidental ;-) The default base directory for HTTP is 'http/' from your TNOS root directory, and the default port is 80, which is the normal HTTP server port. You can just 'start http' and it will use these defaults, or you can 'start http ' to specify other than the default port and base directory. You can have up to MAXHTTPPORTS servers, on different ports. MAXHTTPPORTS is set to 10. You can stop an active HTTP server with 'stop http [portnum]'. Two commands affect the pacing of the servers. The 'http maxcli' command sets the total number of connects to be accepted at a time. The 'http simult' command sets the number (of connected sessions) that will be served simultaneously. The 'simult' number is the number being serviced, while the 'maxcli' - 'simult' is the number who we will accept connects from, but that must wait their turn. The 'http tdisc' command sets the inactivity timer. There are four commands that customize the information logged. The 'http agent' command selects whether you wish to log info on the 'User Agents' used to access your server; that is, the client software used (Netscape, Mosaic, etc). This info, when logged, is kept in 'spool/log/agent.log'. The 'http referer' command selects whether you wish to log info on which Web pages 'referered' to your pages, which led them TO you. This info, when logged, is kept in 'spool/log/referer.log'. The 'http post' command selects whether you wish to log info sent if a page tries to 'post' a form to your TNOS server. Currently the only support for the HTTP 'POST' command is to log the info. No parts of TNOS/HTTP act upon a 'POST' request (yet). This info, when logged, is kept in 'spool/log/post.log'. The 'http misc' command selects whether you wish to log info from the other header lines received within client requests to your server. These are only really useful if debugging problems in accessing the server from a particular Client Software product. This info, when logged, is kept in 'spool/log/mischttp.log'. The 'http exec' enables Server Including of 'exec' directives (only available on TNOS/Unix). More on this later. The 'http status' command will list the active servers, and the settings of the other 'http' subcommands. All standard HTML files can be served, as well as graphics files, etc. A request for 'http://hostname/' will access the file named 'http/root.html'. Giving a URL of a directory name, will do several things. First, it will look for a file in that directory named, 'wwwpre.cat', and if found it will be sent as the beginning of the page, otherwise a default title and heading will be created. Then the contents of the directory will be added. These are set up with links to icons, to be set up in a 'http/icons' directory. These icons can be found on ftp.lantz.com in '/tnos/icons'. Then, lastly, it looks for the presence of a 'wwwpost.cat' file, and adds it if found, or generates page ending code, if the file doesn't exist. The 'wwwpre.cat' and 'wwwpost.cat' files allow you to customize the page in any way you wish, and each directory can be different. There is ALSO full support for Server Includes (also called Server-Side Includes in some books). These allow you to include certain information as the page is being rendered. Each Include is of the format: These are documented in most available books on writting HTML pages and maintaining HTTP servers. The available standard commands/parameters are: * echo var="DATE_LOCAL" Displays the current local date/time. * echo var="DATA_GMT" Displays the current date/time in a fixed GMT format. * echo var="DOCUMENT_URI" Displays the current document's URI/URL. * echo var="DOCUMENT_NAME" Displays the current document's filename. * echo var="LAST_MODIFIED" Displays the current document's last modification date/time. * include file="filename" * include virtual="filename" Includes the contents of the named file, as if it's text were a part of this page. The 'virtual' filenames are relative filenames from the servers base directory, while the 'file' filename are relative filename from the directory of the file being processed. There is is NO WAY an included file can be processed UPWARD from the base directory of the server. Filenames starting with '../' have these stripped off of them. * fsize file="filename" * fsize virtual="filename" This includes the size of the named file. The 'file' and 'virtual' parameters are described above. * flastmod file="filename" * flastmod virtual="filename" This includes the last modification date/time size of the named file. The 'file' and 'virtual' parameters are described above. * exec cmd="filename" - TNOS/Unix only This allows you to insert the output of ANY other Unix program, into the page, *IF* the 'http exec' command is set to 'on'. * config timefmt="timestr" Configures the output format for date/time strings within Server Include directives. The 'timestr' is a string passed to 'strftime'. * config sizefmt="ABBREV|BYTES" Configures the output format for filesizes. Setting to 'bytes' gives the total number of bytes. Setting to 'abbrev' get output rounded to the next K or Meg. The default is 'abbrev'. * config errmsg="errorstr" Sets the error message added to the page if an unknown directive is used. The commands that are unique to TNOS are: * echo var="HOSTNAME" Displays the hostname of the TNOS server machine. * echo var="TOTAL_HIT_COUNT" Displays the total number of hits to this server. * echo count="filename" * echo icount="filename" * echo scount="filename" Gives/sets number of times a file has been accessed, based on the checkpoint file 'filename'. The 'filename' file is located in the 'http/counts' directory. The 'count' parameter is used to simply return the current count recorded in checkpoint file 'filename'. The 'scount' parameter increments the count in the checkpoint file 'filename', but does not add it to the displayed page. The 'icount' parameter does both; it increments the count and displays the new count from the checkpoint file. * Added to the spec for the forward.bbs file, an 'IF MODE = xx' condition This allows you to set up different forwarding conditions for unusual times (like ARES/RACES activations), and modify how the forwarding will be parsed. This looks at the value set by the 'forward mode' command. * Outbound forwarding first checks and doesn't start if all messages are held * The above are included in 2.02pl1 * MAJOR, MAJOR, MAJOR, MAJOR, MAJOR CHANGE!!!!!!! Well, not THAT big, just don't want to answer a NEW FAQ daily! ;-) The 'mbox' command is renamed to the 'pbbs' command (break that 'mb' habit). All log messages that used to have 'MBOX' in them, now have 'PBBS'. The spool/log/mbox.log file is now the spool/log/pbbs.log file. The etc/help/mbox.hlp file needs to be renamed to etc/help/pbbs.hlp. The source file 'mboxcmd.c' was renamed to 'pbbscmd.c'. These changes should complete the partial change in terminology from MBOX to PBBS. Some internal source code references still use 'mbox' internally, but all external usage should now be PBBS. The BBS 'mboxusers' command remains, but will be phased out later. A new 'pbbsusers' command was added, and is the desired command. A 'mailbox' (or 'mbox') is now used strictly to reference a users mail file, while the process used to access this file (and public files) is the PBBS. CHANGE THESE!!!! (don't say I didn't try ;-) * Removed the never-completed TNOS-to-TNOS LZW forwarding So long, to the 'forward lzw' command, and (for now), the 'T' in the PBBS SID. * Added code from KA9Q/JNOS for a Terminal Server * Added code to handle W0RLI X-compressed forwarding protocol * The above are included in 2.02pl2 * Added additional Server Side Includes to the HTTP server for PBBS usage * echo var="VERSION" Displays the version release number of the TNOS server machine. * echo var="USERNAME" Displays the current HTTP/PBBS username, or 'unknownUser' for not PBBS usage. * echo var="QUOTE" Displays the current Quote of the Day string, if the quote server enabled. * echo var="AREANAME" Displays the current area name, if applicable. * echo var="MESSAGENUM" Displays the current area message number, if applicable. * echo var="PERMISSIONS" Displays the output of the PBBS command 'security' for this user * echo var="PREV_MSGNUM" Displays the current area message number - 1, if current is > 1. * echo var="NEXT_MSGNUM" Displays the current area message number + 1, if more messages. * echo var="PREV_LIST_START" Displays the current area message number - 100, if current is > 100. * echo var="NEXT_LIST_START" Displays the current area message number + 100, if more than 100 more messages. * echo var="PREV_MSG_BUTTON" Inserts the /bbs/pmbutton.cat file if there is a previous message. This is used to insert a PREV button, using PREV_MSGNUM to create a URL. * echo var="NEXT_MSG_BUTTON" Inserts the /bbs/nmbutton.cat file if there is a next message. This is used to insert a NEXT button, using NEXT_MSGNUM to create a URL. * echo var="PREV_LIST_BUTTON" Inserts the /bbs/plbutton.cat file if there are previous messages to list in an area. This is used to insert a PREV button, using PREV_LIST_START to create a URL. * echo var="NEXT_LIST_BUTTON" Inserts the /bbs/nlbutton.cat file if there are more messages to list in an area. This is used to insert a NEXT button, using NEXT_LIST_START to create a URL. * echo var="AREA_LIST" Inserts the actual listing of an area, within the /bbs/arealist.html file. * echo var="AREA_MSG" Inserts the actual body of a message, within the /bbs/msglist.html file. * echo var="TOTAL_HITS" Same as 'TOTAL_HIT_COUNT' - included for compatibility with JNOS HTTP patches. * echo var="REQ_FROM" Inserts the calling system's 'From:' line's data, if one was sent. * echo var="REQ_REFERER" Inserts the calling system's 'Referer:' line's data, if one was sent. * echo var="REQ_AGENT" Inserts the calling system's 'Agent:' line's data, if one was sent. * exec bbs="command" Executes the command 'bbs' within the PBBS, logged in as the current user. Only available if the Command Session command 'http execbbs' is set to 'on'. CAUTION should be taken to only use commands that are NOT interactive, since no interaction is available. Requests for /bbs or /bbs/ are changed to /bbs/.html Requests for /bbs/area are changed to /bbs/area/.html Requests for /bbs/message/ are changed to /bbs/area/.html Requests for /bbs/.html are created from the /bbs/user.html file Requests for /bbs/area/.html are created from the /bbs/areaopt.html file Requests for /bbs/area//xx.html creates an area list for 'areaname' starting with message 'xx'. If 'xx' is the string 'new', then only new messages in this area are listed. This is based on the /bbs/user/arealist.html file. Requests for /bbs/message//xx.html creates a message listing for message 'xx' in area 'areaname'. This is based on the /bbs/user/msglist.html file. * Added a Command Session 'register' command, for TNOS registration info * Added a PBBS 'registry' command, to display TNOS registration info * Added a completly configurable WWW interface to the PBBS All URL's starting with /bbs have required authentication. The existing ftpusers file is used. * Complete revamping of Unix Makefile * Added direct URL request of PBBS command All URL's of /bbs/cmd/xxxx send back a text file of the 'xxxx' PBBS commands' output. To pass parameters to the 'xxxx' command, follow the command with a '?' and separate each parameter with a '?'. All URL's of /bbs/cmd/area?yyy/xxxx send output like the above, but first change areas to the 'yyy' area of the PBBS. Examples: http://ko4ks.ampr.org/bbs/cmd/finger?ko4ks http://ko4ks.ampr.org/bbs/cmd/area?world/l?1?10 *** NOTE: The 'http execbbs' Command Session command must be 'on'. This COULD provide a security problem, so enable at your own risk! * Added SIZE command to FTP server, for Netscape d/l remaining time gfx Discovering this omission comes from reading an email of Selcuk (seost2+@pitt.edu) to the NOS-BBS mailing list. I had THOUGHT I had added this already, but hadn't. * Added display of etc/banner.ftp (if exists) to login for FTP server * FTP permissions improved for Unix The new UNIX-like dir display needed a little more work with the permissions portion of the display. Now, for TNOS/Unix, the actual file permissions are displayed. NOTE: symlinks display the ACTUAL permissions, following the symlink. * Added PASV support to FTP server * Added a 'etc/reject.dat' file, like FBB's 'reject.sys' file This is to help prevent message spamming, among other things The format is: #REJECT.DAT # action is one of 'R'eject, 'H'old, 'L'ocal hold, 'D'efer, or 'A'ccept #type from to @bbs bid max_size action #B * * * *_AZGATE 0 R # B * * * *_HOLD 0 H B * * * * 6000 A It will work with PBBS messaging and smtp gatewaying. X-FWD'ing only sends the BID during negotiation, so only that is checked at that time. If the SMTP server sees a REJECT or DEFER action, it will mark the message as deleted. Only messages sent by a non-BBS in the PBBS are eligible for a LOCALHOLD. The 'etc/reject.dat' file lines are processed in order, and concludes at the first match. This is all the same data as the FBB 'reject.sys' file, with the parameters changed in their order. * Added a 'pbbs reject' command, to enable/disable 'etc/reject.dat' processing * For Unix - Added a script to analyze system and build a 'make.inc' file This should properly care for GCC, ELF, ncurses, tclsh, and LOCKDIR configuration. * Added a 'warnings' command, to warn of missing vital commands This idea came from the tales of woe of one of our number who did not have a default IP route set. Seems that under certain circumstances (not all) TNOS barfs if someone connects to them, and there is not a route TO them, and the default route is not set. The WARNINGS commmand lists possible problems, which MIGHT have made life easier, at least for this ONE individual. The WARNINGS command automatically executes after the autoexec.nos (if not disabled within it), listing things which SHOULD be set, that are not; i.e. hostname, ip address, default route, etc. That display can also be called from the Command Session console, with 'warnings ?'. You can explicitly enable/disable the startup warning from autoexec.nos with 'warnings on' and 'warnings off', respectively. It also will remind you of the problems every 20 commands in the Command session, unless it is disabled. Better to be a nag, than to have us in ignorance! ;-) * Added two new permission values to ftpusers file These are related to the HTTP PBBS support currently in TNOS (and later to be added). These are: # LABEL DECIMAL HEX DESCRIPTION # no_http_ip 33554432 0x02000000 (Disallow http PBBS access via IP) # no_http_ax 67108864 0x04000000 (Disallow http PBBS access via AX25) * Added an 'http anonsend' command, to allow restricting mail postings This allows you to restrict the HTTP PBBS code to only allow non-anonymous users (those with entries in the ftpusers file) to be able to send mail. * Added a MAN Command Session command, to display manual pages Not much use till some man pages are made ;-), but the coding is done in anticipation.... While TNOS man pages will be created in typical Unix MAN page format (requiring nroff to format), the TNOS 'man' command will read CAT files, which are the pre-formatted version of the man pages. While both formats MAY be distributed, only the CAT files are used internally by TNOS. * Added to distribution MAN files for all callable functions in TNOS This is NOT user level documentation, but it is automatically generated man pages of the entire source tree, listing all non-static functions within all *.c files. This uses a tool called C2MAN (at fine search engines near you). This CAN be used by those TNOS-hackers, to help wade through the wealth of files making up TNOS. They can be viewed within TNOS with the 'man' command, or Unix users can add TNOS' 'man' directory to their MANPATH environment variable, and then 'man' from their favorite shell. Currently, there are 716 development man pages, so more useful than others. * Changed the NNTP server code to the 'experimental' code This is the code that Gareth Rowlands (gareth@lightfox.demon.co.uk) started the port to TNOS on, and was distributed in an experimental package for several months. I've cleaned up the sources a bit, and replaced the old code with this. * Forward file locking added If a record got added into a *.fwd file when a forwarding session is concluding, sometimes the new record got missed, and the *.fwd file gets deleted, losing that new record. Rare, but needed to be addressed. Now the fwd file is locked before cleanup and before adding a new entry. The code will continue to try to lock the file once a second until it is available. There is no way for the previous problem to now occur. * The above are included in 2.10b2 * The above are included in 2.10b3 * Added code to scan R: lines of incoming messages for altered BIDs There are two commands 'forward alteredbids' and 'forward alteredhold'. The first turns on/off the checking. The second command determines if any messages found with altered bids will be held (if on) or deleted (if off). * The above are included in 2.10b4 * The above are included in 2.10b5 * Added a PBBS 'bid' command How many times have you seen a message (usually sent to SYSOP@WW) indicating a troublesome message, and all that was given was the BID? Kinda hard to find on a multi-area BBS, huh? No longer! A new BBS command 'bid xxxx' will search for bid 'xxxx', and tell you which area it can be found in. Then you can change to that area, and use the 'L$ xxxx' command to find the message. This adds the area to the information in the history file, and will NOT be able to help you with the messages on your system prior to release 2.10, but it will try, and tell you it couldn't find it.... * Added FreeBSD patches ------------------------------------------------------------ Minor Changes: The following minor changes have occurred. * A few Convers optimizations added by Dave Salaman * Added code to prevent crashes with corrupted wpage/history files * A few assorted conditional code changes and Sun fixes from Bob Smith * Completed the compiling sanity checking in config.chk * Now forces a users.dat update when asked for HOME BBS This is rather than waiting until the user exits. If the user DIDN'T exit normally, this would not get updated, and they would be asked again next time. * Added code to prevent eternal SMTP looping if *.txt file missing Shouldn't happen in reality, but discovered this in testing. * Added a log file entry for each MH/MA/MT/MP command * Added a pre-defined finger 'user' of 'uptime' * System error message now addressed to 'syserror', not sysop If you do not have 'errors off' and wish it to work as with prior releases of TNOS, add a 'syserror sysop' to your rewrite file. * Added signal handling code for SIGWINCH, for X window size changes * Changed 'smtp batch' from default of 'on' to 'off' * Creates the LOCKDIR if it doesn't exist * Changed 'forward mode' from an on/off value to a numeric value Setting mode to zero, disables forwarding. * The above are included in 2.02pl1 * Added missing code to verify checksum on received YAPP messages (FBBCMP) * Changed default of 'forward ctlz' from off to on * Added a 'forward active' command * Added a 'forward laston' command * Several tweeks to the forwarding subchannel code * Several tweeks to the AX25 code to properly handle pthresh == 65535 * Added a 'PERSONALS' and a 'BULLETINS' attribute to the forward.bbs file syntax See revised TNOSFWD.TXT * Added an 'include' directive to the forward.bbs file syntax See revised TNOSFWD.TXT * Added a 'forward minidle' command * Added a new PBS forwarding connect type of 'incoming' This is for PBBSs that are incoming connects, only. A blank (or missing) CONNECT line in forward.bbs will NEVER allow outbound forwarding. Use 'CONNECT = incoming' for any PBBSs that you NEVER connect out to, but that poll you or drop off traffic to you. * Added Dave Horsfall's patch to strip trailing blanks on headers for MW * Added code to eliminate XLZW negotiations w/non-44 SMTP remotes * Changed order of 'forward summary' subcommand End result is 'fo s' (or 'fo su') is 'forward summary'. 'fo su' USED to be 'forward subchannel'. Might want to check the autoexec.nos file, if you have abbreviated this.... * Added a new forward.bbs attribute, 'LIMITTYPE' This allows you to limit the forwarding protocol type used with this BBS. Values are 'FBB' (for FBB compressed forwarding), 'FBB-NONCOMPRESSED', and 'MBL' (or 'RLI') for non-FBB forwarding. The default is 'FBB'. * Added code to prevent the BBS sending more than one SID * Added to PBBS forwarding script WAIT command Now, you can specify both a positive string, and a negative string. For example, when forwarding via a modem (coming soon), you can do 'WAIT 60 CONNECT|BUSY' and if 'CONNECT' is found, it succeeds, but if 'BUSY' is found, it fails. A special case exists if you do, for example, 'WAIT 60 CONNECT|'. In this case, if 'CONNECT' is found it succeeds, but if ANYTHING else is found, it fails. * Extended the BBS 'MK' command to allow kicking individual PBBSs The Mailbox Kick (MK) command (which is the same as the Command Session 'forward kick' command, now can also be called as 'MK PBBSNAME [poll]', which is the same as the Command Session 'forward kickone PBBSNAME [poll]' command. * Added code to by default suppress POLLEDKISS polls from trace display Added an optional 'attach asy' flag for devices of type 'pkiss'. This flag ('t'), if used, restores the displaying of POLLEDKISS polls in the trace display. * Many assorted tweeks of the forwarding code * The above are included in 2.02pl2 * Added commandline option (-A xxx) to allow setting of max AX25/SLIP devices * Added commandline option (-B xxx) to allow setting of max BBS processes * Supressed the printing of data for inactive subchannels in 'fo sub' * Added to the 'fo sub' syntax a description name * Added a 'forward sysopprotect' command This (if on) will treat personal messages in an area named 'SYSOP' the same as public bulletins, that is, the messages will NOT be deleted after they are forwarded. Since I and most others place SYSOP@* messages in an area named 'SYSOP', that is NOT available as a public area (in the 'areas' file), these messages will normally be deleted when they are forwarded to the first forwarding station. Since a 'SP SYSOP@*' is ACTUALLY a special case, and treated much the same as a bulletin, this command allows this. * Added code to make incoming PBBS forwarding sessions mark laston time Discovered that I missed these.... * Added code to do one last pass through the forwarding areas With FBB and X-compressed forwarding, there was a chance that if you were in the last areas forwarding, and new messages came in for that PBBS, there was on occasion the possibility that the PBBS would disconnect, not seeing these messages, leaving them for the next pass. I added code (that no one will really notice, unless you run with the 'fo fbbtr' on all the time), that will make ONE last pass through when it is done, until it makes at least one pass in which it forwarded NO messages. This additional check should ensure that all mail passes off (unless held) before a disconnect. * Added a '-?' commandline option, to simply display the version info * Added a check upon startup of the catalog.cat file The check is made right at the beginning for the catalog.cat file. If it is NOT found, an error is reported, and the program ends. If the file looks corrupted, then an error is reported, but it attempts to run. If the version in the header of the catalog.cat file does NOT match the version of the TNOS executable, a warning is given, since death could occur soon afterward ;-) * Code added to insure forwarding queue rescan if additions while forwarding Previously during FBB and X-compressed forwarding, if a new message came in for an area already scanned (probably personal or at least higher priority mail), it could have waited for as many as the third following negotiation. While this was not bad, it was also not optimal. Now, when any new message is added to the queue, it forces a new rescan at the next negotiation. * MAJOR rewriting of the HTTP code, removing hardcoded sequences * MANY assorted cleanups * Added logic to mkconfig.tcl to flag new options with '' * Minor change, but lengthy in time - rcsid strings in all *.c files * Added display of RCS symbolic name (if present) to the 'status' command * Added the compilation date/time to the info in the 'status' command * In addition to 'desc.ftp', '.message' is also displayed by FTP server This is for non-MSDOS, for the obvious reason that '.message' is not a valid MSDOS filename. These files (if they exist) are displayed when a user does a 'cd' into the directory. * More strings moved to catalog.cat * Added '?' option to prompts of mkconfig.tcl, with help for most items * Changed it so that Permanent PBBS messages cannot be killed They must FIRST be made non-permanent (temporary) with the 'MT' command. * Attempting an 'all areas' kill must pass an 'are you sure' prompt I have from time to time done a '!k' when I meant to do a '!l', which ended up deleting the first unread message (or message 1 in areas with no new messages). Now this potentially danger global command must pass a sanity prompt. * Added a 'smtp gateway none' option, to clear a previous gateway * Added a verification msg to the PBBS 'group' command * Added a new compile flag (Unix only) to enable uptime in 'ps' display * Changed default for 'domain update' from on to off * The above are included in 2.10b2 * Added a TNOS lockfile, for easy checking for existance of running TNOS I will be adding a TNOS lockfile, named 'tnos.lock', which will be placed in the TNOS home directory on startup. It will have a single line in it, which will be the PID of the active TNOS process. TNOS will look for this on startup, and if found, it will check to see if that PID is still active. If it *is* active, the new TNOS will die, otherwise it will blow away the stale lockfile. This is just like the way the TNOS (and uucp, etc) deal with the lock files that protect serial ports. It will also give another (better) way to check for TNOS being active in scripts, for those of you who wish to (I have found NO need for this, but to each their own). Instead of the ps piped into grep, you could: ps -p `cat /nos/tnos.lock` to check for it being up. * Added command line variable expansion to processing of onexit.nos * The above are included in 2.10b3 * Added code to display X-BBS-Hold header line when SYSOPs reading msgs Allows easier determination of why the message is held. If there is NO X-BBS-Hold line, it was caught by the userhold.dat file or the wordhold.dat file. Otherwise, the reason will be in the X-BBS-Hold line. * Changed default flow control for Command Session from on to off * MANY, MANY, MANY cleanups, due to lint'ing * The above are included in 2.10b4 * The above are included in 2.10b5 ------------------------------------------------------------ Known Bugs: The following are known bugs that are being worked on during the development of release 2.10. These may or may not be fixed in release 2.10. * Sending mail to the proxy server, doesn't seem to work properly The first problem with this was that the proxy server was NOT accounting for the fact that some messages will have mini-RFC headers in it. There is another problem, though, that I am looking into, which seems to be related to calling scripts from within scripts (which proxy.scr DOES). * Displaying parameter strings with a '\r' needs adjustment If you define a parameter string (like 'ax25 bctext') to be multi-line strings with a '\r', the output to the screen may not be what you expect. * Duplicate entries in the WP files While not harmful, the WPages routines SHOULD be overwritting existing entries, NOT creating new ones. * Problem with a CC: to a public area If you send a 'SP' BBS message (or 'SC') and end up with a CC: to a public area it has an 'X-BBS-Type' line defining it as personal, when it should be bulletin. * Convers compatibility problem with NON-TPP servers If the callsign/nickname combo's is larger than 9 characters, this will prevent a Jnos host that is linked in from hearing what that person is saying.. TPP has this problem, too..... * None other at this time.... ;-) ------------------------------------------------------------ To-Do List: The following are things on my 'to-do' list that may eventually be done, but not necessarily by the next release. * Complete the spec and coding of the non-IP HTTP PBBS interface * Investigate incorporating into TNOS a userfs extension This would allow *any* Linux (and possibly other Unix) program to open a file and access certain TNOS features. For instance a terminal program like minicom could open a device: /tnos/connect/lan/k0zxf/ko4ks-1/813044 and do the equivalent to 'connect lan k0zxf ko4ks-1 813044'. You could incorporate a copy of your current usage stats into a email message in Pine, by simply inserting a file named /tnos/stats/usage/general. * Add capability to allow use of OS commands Due to the obvious restriction of MS-DOS, this WILL be limited to Unix version only. * Add better support for PBBS<->Internet mail address translation The 'translate' file and improved handling of aliases is a START, but more work needs to be done here. Maybe a 'translate.out' file... * Still better handling of AUTO/LOCAL ax25 routes Improvement by making an ax25 route entry part of the connection block, using this unique AUTO route for this connection only. * Support (optimization) for ncurses 1.9.x for performance * Color support output to Unix console The various color commands don't work with the Unix kernel and curses. Annoying, but just possible unexpected output. No crashes. * Consider adding a 'R x - x' syntax to the BBS read command * Consider adding IP MASQ support * Add code to allow a TIP socket type, for use with LL Modems * Tweek the WPages code a bit Need to improve the code that insures that the wpagebbs entries are correct, of the proper length, and actually look like hier addresses. Also, make the expiring of WPages files less fragile if the file has become corrupted.