Welcome to TNOS release 1.10b Please remember that this is beta code. You probably will find bugs, just make sure to report them. Also, DO NOT give out any copies of beta-test code to ANYONE without the authors permission. Doing so will cause us BOTH a lot of grief (mine from them, yours from ME). One of the new things here is the VIEW command, which you are in now. This table shows how to move about in the VIEWER. Try these keys out, now! keys actions =========== ============================== h,H,< move to the top of file (HOME) e,> move to the end of file ^D move down the file 1/2 screen ^U move up the file 1/2 screen d,^N,j move down the file one line D,^V move down the file one page u,^P,k move up the file one line U,v move up the file one page ^C,q,Q,ESC exit VIEWER other keys redisplay screen This is the new features file, named 'features.new'. If you rename this file (or move it to another directory, you will not be prompted for viewing this on each startup. *** NOTE: CDROMs can be used in all areas of TNOS the same as any other disk with one exception. DOS (or the CDROM drivers) seems to return a 'file or directory not found' error when checking for the existence of the root directory of a CDROM. When trying to 'cd' to the root directory of a CDROM you will encounter this error. You can read files from the root and you can change to a directory on the CDROM, you just can't 'cd' to the root. NEW TO 1.1.0...... - Changed the BBS SID to properly reflect the version number - Added an FTPMAXCLIENTS command to limit number of active clients - Fixed the BBS FWDing bug - Fixed the groupcommand() function to create the groups file if it doesn't already exist - Fixed problem with Conference Bridge 'smiley' command not closing the 'smiley' file. - Added some pwait() calls to try to make the smtp server a little more CPU-time-friendly during expansion of mailing list messages - Made many minor changes to the Conference Bridge to make it more compatible with the PingPong conversd code. While this is GOOD to PP code, it CAN be bad to TNOS v1.0.0 code. If you are linked to other TNOS v1.0.0 converse servers, you MAY experience unknown problems with the linked sessions. I strongly suggest that all TNOS systems using the Conference Bridge upgrade to v1.1.0. - Fixed a few minor Conference Bridge bugs relating to groups (thanks Ron/N8FOW) - Made changes to the Quote-of-the-Day server's data file, to make it easier to manage. If you are using the Quote server with v1.0.0, you must make minor changes to it for v1.1.0. The format now is: [d] %file ....... ....... [d+1] where 'd' is the day of the month ([1], [2], etc.). The "%file" is optional. If you use it, the data for the quote is read INSTEAD from "file". The entire "file" (as much as 4K) is returned as the quote. If "file" is NOT included on the "[d]" line, all following lines (until the next "[d]" line) is returned as the quote. - Added change to alloc.c (from Andrew Benham) to handle an obscure bug if "mem minheap" is set to > 32767. - Added code to allow receiving ip type=4 for encap interfaces. - Added a "ip encapnew [on | off]" command that allows transmission on an encap interface using ip type=4. - Added a "ax25 rosecall " command to set an entry Rose switch callsign. Also added syntax to the connect and split commands to allow rose connects like "c 2m ko4ks @ 813105". This has also been added to the BBS connect command. - Added FBB-style forwarding. This includes the "5 at a time, back & forth" style of protocol, but does NOT add FBB message compression (at least, not yet). Thanks Jack! - Added a bunch of code and code changes to allow TNOS to be compiled under Linux. Several long standing bugs were found due to the GNU compiler. - Revamped the code in version.c (again) to make it easier to maintain. - Fixed a few assorted bugs in expire.c dealing with bid and wpages processing. Also made a sysop WPAGES command addition force a WPAGES KICK for the users (WPAGES) file, but not the BBS (WPAGEBBS) file. - Then later reverted, temporarily, the bid and wpages lookup/expire code to non-sorted mode while I look into a better way to handle LARGE files. Even though only minimal info is kept in memory while the file is being sorted, it can take up most/all of available memory, which CAN cause lockups if other "stuff" is going on at the same time. The sort code will be re-addressed in v1.11. - Cleaned up the config.h and makefiles for readability. - Added a DELEGATION SERVER. The idea is this, a user who is going to be away for a period of time can set the system up to selectively (1) hold their mail, (2) forward their mail to another email address, (3) notify the sender that they are away (with an optional personal message), and (4) set the beginning and ending dates for forwarding DELEGATION to be in effect. Neat stuff! - Added a "CONVERS ALIAS " command, to allow 2 diffferent calls/aliases to the Conference Bridge. - Added to the Mailbox "WP user @BBS" command the ability to set the WPAGEBBS heirarchial address also, by giving a complete heir address for "BBS". - Was totally blown away when I realized that there was not a SINGLE pwait() call in all of the Conference Bridge code. What this means is that if the converse code had more to do, it did it, and didn't give the other processes any CPU time, including the process that would deliver the data! A few have been added in the appropriate places and performance of the entire system has improved. Previously, a system would sometimes MYSTERIOUSLY become unstable, with plenty of memory, if the Conference Bridge became highly active. The mystery has been solved! - Added a "convers console callsign" command to provide more flexibility. It is initialized to the first section of the hostname. This is what the user from the console gets identified with if he issues a "conference" call. - Changed defaults to "conv umaxq" to 3K and "conv hmaxq" to 6K. - Fixed a long standing bug in finger (actually any command calling the pathname function) when the default location of a file begins with "./" or "../", as they ALL do in the Linux version. - Added the "forward fbbstyle" output to the "forward status" command. - Added code to allow a remote sysop to view the output of the "start ?" command. - Changed the home bbs setting routine to use the AX MYCALL as default, rather than the HOSTNAME. - Added a "tcp connections" command that is basically the same thing as the "tcp status" command, except that the TCP MIB values (those variables and numbers at the top of the status command output) are not displayed. This is good for quick peeks at the connections. The syntax is the same, only the name was changed to protect the innocent ;-) The "tcp status" command remains intact. - Added to the Information Server a "~sp num" command, which seeks the current data file to the position saved in integer variable 'num'. Also changed the integer variables from 16-bit values to 32-bit values for this reason. And added an additional text control sequence of "~p", which is replaced with the offset position of the current data file. For example, ~i2=~p (save current position) ....... (do something) ~sp 2 (later, return to beginning position) Also now the following attributes of a parent script get inherited by a child script when using the "~$" command: user I/O socket (this was previously the only inherited attribute) whether it was an IP connect or AX25 call sign of user, if AX25 all integer variables, and string variables all open connection sockets (they should NOT be closed by the child) (you WERE warned!) the current data file is NOT inherited, allowing the child to have a separate data file, without closing the parent's file - Additions to Information Server: A new text control sequence "~l" which is replaced with the elapsed time of the current script. A new feature to the "~$" command to allow executing a child script in the background. To do this, make the command "~$$ scriptname". A child script inherits all 10 of the string variables (if they are defined) from the parent script, but the first five (0-4) remain local (private) to the child, while the last five (5-9) are shared with the parent, allowing global string variables. All 10 integer variables are inherited, and the last 5 (5-9) are also shared with the parent, allowing global integer variables. - Added a "mbox maxtimer " command, to permit the BBS to gracefully "bump" off a user that is on for an excessive time. This is added to allow a maximum BBS forwarding session length, but can also be used with "human" users that monopolize the host's resources. - Added a "server" function that I call ProxyMail. It goes like this: At a specified time (probably middle of the evening), ProxyMail kick off and for it's subscribed users is obtains listings of new messages that have been received in the last day. The setup contains the desired areas that each user wants. These listings are sent to the user in a single mail message. If the user has a TNC on, this can be received and waiting for him/her when they awake. This cuts down on bandwidth for listings at peak times. ProxyMail has been implimented as a Script, partly as an example, mostly because it is a simple task that can be handled WELL in a script, and it allows easy customization. Other parts to the ProxyMail Trilogy (coming soon to a theater near you) are the parts to allow the user to set this information without SYSOP intervention (probably a script, also) and a part to allow a user to send a single message to the BBS giving areaname-messagenumber combinations which will generate a SINGLE message in reply, for easy "fetching". - Added a BBS "cmd" command, which allows SYSOP-customizable commands, via Scripts. They are script files, kept in the "spool/cmds" directory, that have an extension of ".cmd". There is a user-displayable help/summary file for this named "spool/help/usercmds.hlp", which the user can get with just "cmd". The syntax is "CMD cmdname arg0 arg1 arg2 ... arg9". All parameters are optional. If any arguments are given, they are passed to the script as string variables ~0-~9, and the number of user arguments passed to the script can be found in integer register ~i0. - Fixed a newly discovered, long standing bug with the Information Server script language in properly handling scripted telnet connections with the "~$" command. The telnet negotiations were not being handled, causing a inability to connect to telnet port 23 (the BBS of a TNOS system), as well as some other ports. This is now fixed - The third part of the ProxyMail trilogy is complete (yes I've skipped number 2) and it also is handled in a script (mainly). In fact, it is the SAME script used in the first part. There was an additional smtp server added for mail to "PROXY" (or rewritten to that name). This server copies the data to a temp file, and spawns off "spool/cmds/proxy.cmd". A PROXY request can contain any BBS commands that the user can normally do from the command line. - Added a new function to the game named mbscripthook(). This allows a script file to be called (if it exists) at certain times in the BBS. These scripts must be located in the spool/cmds directory. They each are passed in one parameter, though in some cases the data given isn't much help. In all hook scripts, the callsign (available with "~c") is valid. Initially, I have only 4 hooks in the BBS code: dosend.sys called in the dosend() function if this is NOT a BBS. This is called early in the process, but after the rewrite has been run. The parameter in "~0" is the originalname, a dash, and the rewritten name. For example, "sp ko4ks@ko4ks.ampr.org" on my system sends "ko4ks@ko4ks.ampr.org - ko4ks". newuser.sys called when a non-BBS user logs in for the first time, after sending the "spool/newuser" file. The "~0" parameter is "newuser callsign". login.sys called right before first prompt is sent, if this is a non-BBS user. The "~0" parameter is "login callsign" logout.sys called at the beginning of the logout process, after the user selects the "bye", "exit", or "quit" command, if this is a non-BBS user. The "~0" parameter is "logout callsign" - Fixed a bug in beta 13 that crept in between b8 and b12 with rlogin. The problems was caused by checking in the mbxrecvline() function for the link type being TELNET_LINK, and only then analyzing for telnet negotiations in the data stream. This protection is good for keeping binary color files from possibly being interpreted as telnet sequences. The problem was, I should have been checking for RLOGIN_LINK, as well. - Added a fix to what seemingly WOULD be a common problem with the DELEGATION server. The "new" DELEGATION user seems to want to TEST that it is doing its job by sending a message to him/her self. Well, IF he has the DELEGATE option on of notifying the sender of the absence, then we now have an INFINITE LOOP. Think about it, ME sends a message, BBS now notifies ME, which in turn notifies ME, etc.... Now, if a user has DELEGATION on and tries to send a message to him/her self, the dosend(() function says, "nope!", tells the user why, and aborts the message. It is also logged in the log file. - Fixed the BBS "operator" command, which DID do a disconnect from the BBS if the user used the escape key to terminate the chat session on his end. Now, he is PROPERLY returned to the BBS, no matter who terminated the session. - Fixed a bug with dosend.sys and the SR command. - Fixed a long standing bug with the HOSTNAME command. It now will properly remove a trailing "." on the hostname. - Added a new script command, "~ap to from", which appends a string variable (from) to the end of another existing variable (to). For example, to make a filename of the form "/nos/scripts/~9.cnf", with string variable 9 as a basename, use something like: ~a 1 /nos/scripts/ # directory name in 1 ~a 2 .cnf # file extension in 2 ~ap 1 9 # add the basename to 1 ~ap 1 2 # and add the extension to 1 This is necessary since the ~f and ~o commands either take a hardcoded string, or a single variable (i.e., "~o ~1", in this example). - A few misc cosmetic fixes. - Linux fixes: * fixed a bug in the directory code that DIDN'T add a before the disk-space line, if there were an odd number of directory entries. * fixed a bug in the finger daemon found if fingering "@host". The filespec being used was a DOS one, "*." for finding all filenames without an extension, which in Linux finds all files ending in ".". - Added a "nlist" command to the ftp client, in addition to the "nlst" command, for those who are used to the other name. - Added a line to the FTP banner, which tells how many FTP users are currently on the system. - Fixed a quirk in dosend() which caused a DNS lookup if sending to a user without a "@host" or "@BBS" in the address. - Added code in the Conference Bridge to flush a socket if 2400 bytes are queued and it has not been flushed. A JNOS user earlier reported that data loss occurred at 2560 bytes if flushing had not occurred. Whether or not this has been a problem in TNOS, I don't know, but it was easy enough to put in the protection. - Reviving the sorted searches of history, wpages, and wpagebbs files. These were "tabled" earlier, since sorting a large file stole all of memory. Now it used my Virtual Memory System, which has been used for storing screen memory. The VMS code used XMS (if available) or disk. While it is not very easy to replace normal code with accesses to the VMS, this localized usage was easy to convert. Now when sorting, you either use XMS or disk, so if there is no available XMS, you will have an additional file open during expiration of bids and wpages. ONLY ONE file can be sorted at a time. This is paced by the VMS code, making any SECOND process simply wait until the first is complete. - Added a new form of memory allocation, pooled memory. There has long been a problem with memory fragmentation, caused by several tables (mbox user list, ax25 heard list, ip heard list, etc.) which are linked lists that are NEVER freed. Under low usage conditions these are not a problem, but when the system is stressed and a new entry needs to be created, it is created "high" in memory. Then when the load is reduced, there is no way to move this SMALL piece of memory. The memory will remain fragmented. And so enters POOLED memory. The idea is this, instead of allocating dozens of little allocations, we will allocate a smaller number of LARGER allocations, in pools. Initially all pools will be allocated in multiples of 50, though this might become configurable at a later date. While this may sound large, the size of these individual components are about 20-30 bytes each, making a pool of 50 only 1K to 1.5K. There is no penalty, for example, for ax25 heard if you do not set up "ax25 hport"s, since the pool memory is not allocated until the first request comes in, or until the current pool is exhausted. While this is not perfect, it SHOULD reduce memory fragmentation dramatically for these routines for most systems, without noticable overhead. - Fixed 2 bugs in TNOS/Linux that was inherited from previous unix coders. When completing a shell command, there WAS a "zombie" process that would hang around until tnos died. Also, the Command Session screen was NOT being restored when coming back from the shell command. Both of these are fixed as of beta 20. - Added a line to the mailbox stats (BBS 'ms' command, Command Session 'mbox mailstats' command) that tells the number of queued SMTP messages waiting to be processed, if there are any. This info is also displayed when fingering "bbs" or "stat". - Made an "adjustment" to the dialer code. Up until now, the filename that you pass it to use as the dialer script got ran through the rootdircat() function, that pre-pended the xNOS root directory. This made the script name RELATIVE, and if you passed in a complete pathname, it STILL added the root directory to the front. Now the code only calls rootdircat() if the first character is NOT "/" or "\". - Fixed a recently discovered TNOS bug that has existed since 1.00. When I added the separate callsign for each interface for IP traffic, I seem to have missed the ARP code, which was still sending ARP requests out with the AX25 call, NOT the IP call. This caused some occasional auto-routing woes. Now the ARP code sends from the IP call sign. - Added a new smtp feature for rewriting "from" addresses. This uses a spool/translat file, which is similar to the rewrite file, except that the original senders address is changed. The format of the translat file is "fromname newfromname". If the file doesn't exist, then the address remains unchanged. You might already be asking "WHY!" (or be dialing 1-800-KILL-KO4KS). Let me give you two different VALID uses to rewrite the from, especially at a gateway. 1) I run a Linux system, with TNOS/Linux running on the same machine. For some DUMB reason, I prefer using a REAL mail program than the BBS mailer. On the Linux system, I am "brian@lantz.com". I want to respond to mail, sent from regular PBBS, which has been forwarded to my "brian" account. BUT I want it to be FROM "ko4ks@ko4ks.ampr.org". This addresses that need. 2) A gateway can provide Internet addresses now, and the mail can even be forwarded to other non-IP BBSs, if that is desired. BUT if the user sends mail, it MUST be sent from an IP BBS that is known from the Internet. With translate, the user can send from a non-IP home BBS (if arrangments have been made with the IP sysop), and have that mail TRANSLATED to look like it was coming from the Internet-known IP BBS. That sysop COULD set up a forward.bbs entry for that user that rewrites the TO address to the one expected by the non-IP BBS, and voila! Two way Internet traffic with a non-IP endpoint. A warped mind, you say! You don't know the half of it ;-) - Added code in main.c to automatically create the spool/mail/control and spool/mail/users directories, to make JNOS->TNOS upgrading a little less painful. - Changed the expire code for bids and white pages to only expire if new entries were added. This MAY cause some entries to remain longer than desired, but will remove the performance penalty if frequent passes are made. NEW TO 1.0b43...... - fixed a bug with the mailfor "# of messages" line, with the number in conference being displayed wrong. - fixed the command session "rdate" help message. - added a 'ping' command to the BBS and fixed ping for remote sysop usage - added 'domain query' and 'domain ?' commands - fixed FTPUSERS permission bug - cleaned up minor bugs in REQSVR and GROUPS - added code to make nntp-style area names work transparently, including support for control files. - changed the VERSION command to read a text file (created by a new command, MKVERS.EXE) instead of reading the data from program memory. - added a "quick kludge" to give subscription information to the REQSVR group subscription. Will come back and re-do this later. - added original message in body of a REQSVR GROUP INFORM message - fixed bug in BBS that required IHEard instead of IHeard - added a BBS "version" command, which yeilds the same results as the Command Session "version" command - fixed a bug which made public BBS areas "sometimes" remember an incorrect last message number. This was caused by parsing for the "idAAxxx" string but not taking ONLY the first one. - Added code to the BBS "list" command to parse off leading spaces in the Subject field - Added logging of each FTP connect request to a SPOOL/ftp.log file - Added a "mbox logging on|off" Command Session function to allow/deny logging of each MBOX connect request to a SPOOL/mbox.log file - Modified finger "@host" to also tell of built-in finger names - Modified to eliminate telnet permission check for QUOTE, CALLBOOK and FINGER service from the BBS - Many assorted bugs squashed - Added a confirmation prompt when you give the "exit" command from the Command Session. NEW TO 1.0b42...... - fixed a long-standing bug where a received BBS BID was being converted to lower case (along with the rest of the command line. It seems that the BBS spec converts the command line to upper case, including the BID. BIDs are now kept in uppercase. - changed the POP3 client to pass to SMTP one message at a time. Previously all messages were received, deleted, and THEN passed to SMTP. If an error occurred, it was too late... The messages were already deleted. - modified the display for the command session "mbox mailstats" (which is the same as the BBS "MS" command. Now includes heapsize, available, etc. for the memory section. - modified BUILDCTL.EXE to delete any '.ctl' files that do not have a coresponding '.txt' file. This is primarily for use with PCELM. - added to the Conference Bridge a "/join groupname" command, which changes to channel of group 'groupname', or creates a new 'group' channel. Added to the Conference Bridge entry messages the count of how many are in the conference bridge and how many groups are active. Also added a "/groups" command, which lists all named groups and nets. - changed grammer of "for a total is" to "for a total of" in Conference Bridge "ROLL" command. - converted the internal representation of the MID to upper case for less confusion to the AX25 BBSer at two places. - changed the lookup of bids and white pages to use a binary file search algorithm. Much faster. Now the "HISTORY", "WPAGES", and "WPAGEBBS" files are kept in sorted order. This sorting is done when the "OLDBID/OLDWPAGES" command is executed. All new entries for either of these three files are kept in a file with the same name and a suffix of ".new". These new entries are merged as a part of the "OLDBID/OLDWPAGES" command. - changed the algorithm to fix the 'disappearing USERS.DAT file' bug in case of a file open error. - changed the time base of the OLDBID and OLDWPAGES commands. The second parameter, which WAS the number of hours between clean-ups, is NOW the number of MINUTES between clean-ups. - and also changed the OLDBID/OLDWPAGES commands to have sub-commands and operate more consistantly with other TNOS commands. OLDBID is now BID. OLDWPAGES is now WPAGES. Each of these has three sub-commands: AGE, KICK, and TIMER. - added to the mailfor "# of messages" line, the number in conference NEW TO 1.0b41...... - fixed a bug when using the SF BBS command. Dup bid was being wrongly found. - modified BUILDCTL.EXE to allow easy usage of PCELM 3.1 with TNOS's message control files. If you are using PCELM, use the enclosed MAIL.BAT to execute PCELM, and your control files will always be in sync. Change the directory on the BUILDCTL line to reflect your TNOS root directory. PCELM 3.1 should be available from the same source that you received TNOS from. - fixed a memory buffer overflow error with POP and long data lines. NEW TO 1.0b40...... - made oldbid and oldwpages into separate processes NEW TO 1.0b39...... - changed version number style from 1.0.39b to 1.0b39 in preparation for release version 1.0. Format is VV.RRDLL, where VV=version number, RR=release number, D=development stage (d=development, a=alpha, b=beta, r=release) and LL=development level. If no "DLL" given, the default is "r00". - If expanding an mail group, we now strip off received R: lines, since this is now a NEW message being generated. - fixed return receipt RFC line in relation to data RFC lines - fixed rmail 'To:' RFC line in relation to data RFC lines - added mail group RFC line in data RFC lines - made cosmetic display changes in the BBS commands "ML" and "WP" - fixed a bug that put a blank line after the MessageID line on messages with custom bids - tested and modified POP2 and POP3 client and server code to permit proper handling of TNOS control files. - Added the number of active messages to the MAILFOR broadcasts - reverted back to previous alias/group expansion (changed in 1.0.38b) since this was not found to be necessary. Setting "SMTP GATEWAY yourhostname" causes all unknown hosts to be handled locally. - fixed bug with over-zealous white pages expansion. Now the white pages lookup checks first to see if the name has a standard IP suffix, if found it's a hostname. If not, it attempts to resolve the name. If it doesn't resolve, then it is assumed to be a AX25 BBS user, and white pages expansion takes place. To ensure that a user's mail goes out SMTP, either use "user@host.ampr.org", or place entries in your rewrite to rewrite to this format. To ensure that a IP user's mail DOESN'T go out SMTP, add a line to the rewrite file like "user@host* user". NEW TO 1.0.38b...... - SAM callbook support directly, through the Request Server and through finger. If the callbook server is located locally, then the conference bridge can also access it with the /CALL command. - Now marks as invalid a MID stored in the history file for a personal message that has been forwarded off the system. This allows it to be able to come back on (no matching bid, now) if it needs to be. - Fixed bugs with the Request Server and the Information Server. - Moved logging of White Pages BBSs from the BBS send routine to the SMTP server. - Added in outbound forwarding sessions checking for a session being 'bumped'. - Fixed a bug with alias/group name expansion that occurred if the expanded name was in the form of "user@dest". Previously this was treated as an IP hostname, even when it was a AX25 BBS. Now the name is searched for a standard IP suffix, if found it's a hostname. If not, it attempts to resolve the name. If it doesn't resolve, then it is treated as a BBS hier address. - Added the BBS user's realname, with auto-fetching from SAM database, if it is located locally. The realname is placed in the message headers. - Added BBS "NAME" command to allow user to change his realname. - Added RFC headers to the body of locally generated messages. - Fixed bug that would allow a MID to be sent, even when the receiving system doesn't support MIDS. - Fixed bug which made messages with no "@addr" forward out as "user@user". - Fixed bug which stripped out blank lines from all forwarded messages. NEW TO 1.0.37b...... - Added a "mbox rstyle" command, to allow the use of "W0RLI-style", short R: lines. Modified MID to meet proposed spec, i.e. numbers in range of 1-65535. Also, made MID numbers separate from sequence numbers. - Added to the BBS SYSOP "bump" command the equivilent of the command session command "mbox zap user" with the bbs command "bump user now". - Added two new commands to the information server script language, one to allow calling a script from within a script, the other to search for a substring within another string. - Added a Command session "script" command, to directly call an Information Server Script file from the Command Session. - Added four other commands to the information server script language to support connect/disconnects from within a script. - convers maxq code added; you can now set limits for users and hosts with 'convers umaxq' and 'convers hmaxq' . If set to 0, there is no limit, otherwise connections will be reset if there is more then the maxq value data outstanding on the connection. This should now also reset connections, instead of the previous graceful close... - 'convers allow' is now replaced with 'convers filter' 'convers filter mode [accept|refuse]' shows or sets the mode (default refuse) 'convers filter [ipaddress|hostname]' add an ip address to the filter table. If filter mode is refuse, then convers links from hosts in the list will be refused. If filter mode is accept, then only links from hosts in the list will be accepted. - mailbox 'K', 'KU', 'MH', 'MT' and 'MP' commands now work on the current message if no message list is given. - Mailbox K/KU/MH/MA/MT/MP commands allow message ranges... Eg: 'K 1-4' - ax.25 resets will send a disconnect to be polite. - expire process is prevented against multiple invocations. - Bulletins with NO BID can be refused if 'mbox nobid off' off means refuse them, on means accept. Default is OFF, ie refuse ! - several system errors and permission infringements will now send a message to the user 'sysop'. This is controlled with 'error [on|off]'. Default is on. - Monitor Trace mode added. Gives a shorter, easier trace display. 'trace 3xy' sets this, where x=1 sets input, y=1 sets output - Added a command session 'time' command. - The 'at' command now works properly. - ftp server has additional information possibilities: if a file 'message.ftp' exists in the initial directory (eg. /public, or whatever), it will be send right after the login. When CD-ing, if a file 'desc.ftp' exists in the new directory, the server will send the text in this file to the user... - 'repeat [interval in ms] command Starts a new session screen with the output of the command updated every interval ms. If you hit F10 it ends the session. Eg: repeat 1000 t s (repeat every second 'tcp status' command) - small problem with non ampr.org. domain names fixed. - Interface names are now case insensitive - 'mem efficient' command deleted, since it has been totally useless for "eons" :) - 'domain addserver' has optional timeout value in seconds for this server. if not set, timeout defaults to 3 * tcp irtt. Eg: 'domain addserver wg7j.ece.orst.edu 30' - 'domain startdns' is gone. Domain Name Server can be turned on and off, with 'domain dns [on|off]' - new domain commands, "domain cache dump", "domain subnet", "domain ttl", and "domain update" - fixed an apparently long-standing white pages bug, and added code to eliminate check the white pages twice for BBS generated messages (once in the 'send' command, once in the SMTP server. Now, white pages are NOT looked up if message is a bulletin, otherwise they are checked immediately following the "SP/SB/etc" command line. SMTP only looks up white pages if (1) an alias is being expanded, (2) a group is being expanded, or (3) the message was NOT created in the BBS (if it came onto this system via SMTP). - fixed color operation for users with BBS permissions who log in interactively. - added to the BBS 'get' command the ability to issue the command without parameters, which will give a summary of the user's profile settings. NEW TO 1.0.36b...... There are M-A-N-Y bugfixes, too many to list! There is now color support in the BBS (set g) and conference bridge (/color). These are defeated by TNOS (sorry) if you are using a split screen session. This will be fixed soon. If color is desired in the Conference Bridge and you are running TNOS locally, you must "TELNET host 3600", rather than "CONFERENCE host". This places you in telnet mode, not in ttylink mode. You also have to do a "/na yourname" upon entry to the conference before you are a part of anything. For color in BBS sessions, use the "connect" command, not the "split" command. The Conference Bridge has four new commands, /roll, /cut, /news, and /smiley. The BBS MA command now will allow zero parameters, which will release ALL held messages in the current area. There is now a LH command in the BBS to list all HELD messages (SYSOPS, only). There is a FORWARD command session command, which sets BBS forwarding options. FTP will now corectly send the "spool/ftpmotd", if it exists. MD5 support, which is a very elaborate CRC scheme, using a 16 byte value. FTP has several new commands: RENAME to rename remote file. LRENAME to rename local file. MD5 to MD5 remote file. COMPARE compares (with MD5) remote and local file MCOMPARE compares (with MD5) remote and local files UPDATE sets flag to first check with COMPARE before using the get, mget, put, or mput commands. You now get different data from the 'help" and the "?" commands in the command session, BBS, FTP, and Conference Bridge. The "help" command gives details, the "?" command gives a short summary of available commands. Changed the BBS forwarding algorithm to start at beginning of the *.fwd file if a new message has been queued for forwarding. This happens at the end of processing the current area. The passwords in the ftpusers file are now MD5-encoded. This is done/checked automatically on startup. To change a password, replace the MD5-encoded password with the word desired, and re-start. The statusline flutter has been reduced. Added a MBOX BUMP and MBOX ZAP command. If a user goes to send a message that the system doesn't know how to route (one that's going to the 'check' area), the user is warned of the problem, and the suggestion is made that the user probably should abort the message and re-enter the address. Added the RLOGIN client and server. After password validation, you are placed in remote-sysop mode. The BBS now send the 'I' flag in the SID, showing that it can accept lines for self-identification purposes. These ID lines are lines beginning with ';' in place of commands. When reading BBS messages (regularly, not with the 'v' command), the user is now given a "Message ID:" line, with the "traditional BBS" MID/BID. The internal format remains the same. Should now have a "clean" disconnect for all BBSs after a forwarding session. * When you are in split-screen (chat-type) TTYLINK sessions, the "local" window (the last 2 lines) are now displayed in the reverse colorset (like the status line). * The "color" command has been expanded. The previous syntax works the same as before ("color background foreground), and changes the color of the Command Session. All new sessions inherit the colorset of the Command Session. This has been expanded with an additional optional parameter, "session#". Placing a session number on the color line sets the colorset of the given numbered session, and leaves the Command Session alone. The contents of the session's screen are changed to the NEW colorset, including any highlighted characters! * A Command Session command has been added, "prompt [hostname | dirname]". The default is "hostname", which works as it previously did. Changing it to "prompt dirname" will make the Command Session prompt the DOS drive and current directory name. This is very similar to most people's DOS prompt, except that the TNOS prompt will be in lower case and the "\"s are changed to "/"s. This makes it easier to tell at a glance whether you are in DOS or TNOS. * The biggest changes come in pre-defined fkeys. The following are the actions for the specified keys ONLY is you have NOT re-defined them with the "fkey" command. You have the ultimate control!! Those marked with a "@" were already in there prior to 21b, but are listed here for the record. @ INSERT - toggles the current session's status line state on/off DELETE - toggles the current session's flow control state on/off HOME - "kick"s the current session END - ends the current session ("reset") PGUP - toggles to the next lowest numbered session (not the Command Session or the Trace Session). Wraps around to the last session PGDN - toggles to the next highest numbered session (not the Command Session or the Trace Session). Wraps around to the first session @ F9 - toggles to/from the Trace Session @ F10 - toggles to the Command Session @ F1-F8 - toggles to the numbered session (if it exists). F2 goes to session #2, etc. ^B - places last executed line into the input buffer ^R - reprints the current line ^W - erase last word in current line (including preceeding space) ^X - delete entire current line Also, the PAUSE and PRINTSCREEN keys respond like they do in DOS AND MUCH MORE, that I'm sure I have forgotten....... Get in there, look around, and have fun! Brian A. Lantz/KO4KS