Here is JNOS 1.11f, the sixth update to Jnos 1.11, for both MSDOS and Linux. Please send comments and bug reports that pertain to the either version to me, James Dugal, N5KNX at this address: Email: jpd@louisiana.edu or n5knx@k5arh.#lft.la.usa.noam Post: James Dugal, N5KNX P.O. Box 44844 Lafayette, LA 70504 U.S.A. ------------------- OBJECTIVE: The objective of this code is to improve the use and features of NOS. A lot of the work is done through cooperative discussion and testing among the subscribers of the Internet maillist 'nos-bbs@hydra.carleton.ca' (to subscribe, send mail to 'nos-bbs-request@hydra.carleton.ca') A lot of new stuff comes from code fragments or suggestions contributed by people on that maillist, most of which are avid users of the code. This code is a continually developing piece of work, and as such, it should be seen as a BETA software, no matter whether it is indicated as such or not. You should not expect this to be a 'plug and play' solution to tcp/ip over packet radio. If you experience problems, feel free to contribute 'constructive' critisism to the author or the discussion group. VERSION NAMING CONVENTIONS: JNOS cycles through three identifiable stages as source code is being put out. Code goes from testing stage (aka. beta code), to somewhat stable released code, to maintenance/bugfix updates. Note that the OBJECTIVE above still applies to ALL code being released, whether it is identified as beta, release or bugfix...! As of v1.10, there is a 'new' version naming scheme. 1) eXperimental code put out by me will be a version number with 'x#' added. 'x' stands for eXperimenting, and # is the number of test release. This will be the first step toward a new 'release' Eg: JNOS 1.10x1 is the first test release for version 1.10 . 2) When an 'x' version seems stable, I might decide to put it out as a 'released' version. This is the time the 'general public' jumps on it :-) This version will drop the 'x#' designation. At this time I will have at least one executable available, and the full source set. The source set will be versionname.ZIP, and the executable versionname.EXE . The executable might be a self extracting exe with some miniscule docs etc... Eg: JNOS 1.10 is the 'official release' version of 1.10 JNOS110.ZIP is the source set, and JNOS110.EXE is the executable. 3) As bugs are found after step 2, bugfix/maintenance updates will be numbered with the version name plus a single letters added. (Using x for experimental should be okay, as long as we don't get many bugfixes... :-) ) Eg. JNOS 1.10a is the first bugfix after the release of version 1.10 I strongly advise everyone that makes mods to use the same base version number, INCLUDING experimentation or bugfix suffixes, with a personal extension. This allows others to see what your base code was. Eg. JNOS 1.10x3-Mods If you send bugfixes and mods to the nos-bbs list or me, they will most often get put into the next release... COMPILER: Starting with 1.08, I use Borland C++ 3.1 for all executables I distribute. In the makefile, you have the option of compiling with TC2.0, BC++2.0, BC++3.1, or BC++ 4.x . You can also choose the cpu to compile for (see note!) We only use the Borland command-line compilers, NOT the IDE versions. Also, the makefile to use is called makefile.bcc. *** NOTES *** : I DO NOT GUARANTEE the code will compile without glitches with other compilers. The use of C++ comment delimiters (//) will present problems for TC2.0. BC versions prior than to 3.1 may have optimizer problems (so try compiling without -G and -O options). If you use an older version of Borland's TASM.EXE assembler, it might choke on line 2 in asmgloba.h : '.MODEL USE16 LARGE,C'. Simply remove the 'USE16' to solve this problem. NOTE: this should no longer be an issue, since we now test for TASM versions less than 3.0, and make this change automatically! Please also refer to the FAQ, mentioned above, for more info on compiling the code. UNIX NOTE: I have used gcc version 2.7.2 and ncurses 4.0 to compile Linux Jnos, with excellent results. Use makefile.lnx as the makefile. CONFIG.H: There are several different configurations in the source archive. I also DO NOT GUARANTEE that other variations of config.h work. It is impossible to test all different configurations possible with the many options in config.h. Thus there might be certain combinations that result in either compiler or linker errors...Find someone with good C and NOS programming knowledge :-) ... distconf.h - used to create the distribution executable (8086 code) bbsconf.h - as I run it on my bbs system. (WG7J.OR.USA.NA) gwconfig.h - as I run it on my Internet gateway system (wg7j.ece.orst.edu) users.h - end-user, with serial port and scc drivers, but no bbs options homeslip.h - mailbox and SLIP to an internet service provider. unixconf.h - everything that makes sense is turned on for use under UNIX. HOW TO COMPILE YOUR OWN VERSION: You should place all files in the distribution source archive into one directory. Then edit config.h to select which features you desire, using #define or #undef to turn features on or off, respectively. Then rename makefile.bcc to makefile, and edit makefile to provide the paths to the compiler on your system, and to select which CPU to compile for, the compiler version you have, and whether a "packer" program is available to compress the resulting nos.exe. Finally, invoke the make.exe program provided with the Borland compiler while you are in the same directory as the source files. If all goes well, you will have a new nos.exe. If you get an error like this during linking: Error: Group DGROUP exceeds 64 K this means you have probably #define'd too many modules in config.h. You should #undef more modules, but there is a small chance that reducing the value of DATASIZE in the makefile could help (or it may seem to compile OK but won't run). UNIX NOTE: see readme.lnx for the compilation procedure. MAIL INDEX FILES: ==> As of 1.10x15, JNOS now senses index file status at startup and after returning from shells. Index files for changed mailbox files will be automatically updated at this time.! This means you can now use ANY EXERNAL MAILER !!! As of version 1.10x3, JNOS stores an index file for each mail *.TXT file. This drastically speeds up switching of areas, and listing of mail headers. As of version 1.10x10, the format of the index files have changed. They are now variable length binary records. See index.h for the content of the record. (The indexfiles are now named *.IND) As a side effect, there is no limit anymore to the number of messages held in a mailbox. This now is only limited by system memory :-) Manual manipulation of index files is NOT advised !!! Jnos will keep the index file in sync with the associated .txt file. DOCUMENTATION: The latest docs files, for JNOS 1.11, are docs111f.zip, thanks to an effort by Bob Fahnestock WH6IO to update the prior work by Doug Thompson, WG0B, and Johan Reinalda, WG7J, done for the Jnos 1.10 version. Also, a more-recent on-line version of the Jnos console command docs, can be found in CMDSHELP.ZIP (or CMDSHLPn.ZIP for updated help files). Much information about configuring and using Jnos can be found at: http://mikeday.rexnet.net/kf9ug/gateway/ Info about using Jnos with Windows 3.x, Win-9x, and Win-NT, along with pre-compiled DOS Jnos versions, can be found at: http://www.gb7iph.demon.co.uk/newsoft.html Information on using Jnos as an Internet gateway/wormhole for passing amateur traffic, can be found in the directory: ftp://hydra.carleton.ca/pub/hamradio/packet/tcpip/gateways or ftp://minnie.cs.adfa.oz.au/hamradio/gateways or http://www.fuller.net/Gateways/ (most recent site) Information on using Jnos with Linux can be found at: http://people.zeelandnet.nl/pa3gcu/linux_xnos.htm and http://www.wa4dsy.net/56kb/PackeTwin.html Questions and answers sent via the nos-bbs maillist since September 1994, can now be searched and viewed at this URL: http://hydra.carleton.ca/mailman/listinfo/nos-bbs or http://hydra.carleton.ca/mailman/listinfo/nos-bbs There are several programs to assist a new user in setting up Jnos for the first time. Please check for instjnos.zip or nosview*.zip at whichever site you obtained Jnos, or look at http://www.gb7iph.demon.co.uk. SOURCES: If you obtained sources, feel free to do with them as you please, as long as you keep and abide the copyrights in the different source modules! If you add substantial stuff to the code, please modify the version string in version.c to reflect this. (So I won't have to answer tons of questions about stuff I didn't write) Latest sources can be obtained on Internet by anonymous ftp from among others: pc.usl.edu in pub/ham/jnos [the HOME site!] ftp.ucsd.edu in hamradio/packet/tcpip/incoming mvangel.npt.nuwc.navy.mil in public/tcpip db0fho-l.et-inf.fho-emden.de in pub/hamradio/tcpip/jnos/jnos111*/* hydra.carleton.ca in pub/hamradio/packet/tcpip/jnos They can also be found on several phone bbs systems, often shortly after the release date. Here are some to try (all in the U.S.A.): N8EMR's Ham BBS (614) 895-2553 N1BEE BBS (401) 944-8498 RPM-packaged Linux versions can be found at http://move.to/hi8gn/ . NOTE: Due to large workload, I no longer will send you sources!!! If you add/modify anything that might be useful to others, I would appreciate the mods, to possibly add to the code. Y2K STATEMENT: Jnos 1.11b and successors are Y2K compliant, by using a windowing technique: year yy is 19yy if yy >= 50, and is 20yy if yy < 50. Where conversion to a Unix-style time value is done, said conversion will fail in 2038. However, no guarantee of proper functioning is made, nor should be inferred. THE LAST WORD: "Definitive is the source, not this note :-)" HINT HINT HINT HINT : if you are experiencing problems receiving with certain tnc's with this code, set the dtr and rts parameters correctly: 'param dtr 1' AND 'param rts 1' (this is due to a rewrite of the original 8250 drivers in KA9Q 911218 and later) You can also assert both dtr and rts with just one command: param up FTPUSERS PERMISSIONS: Name: value (hex) FTP_READ 1 0x1 /* Read files */ FTP_CREATE 2 0x2 /* Create new files */ FTP_WRITE 4 0x4 /* Overwrite or delete existing files */ AX25_CMD 8 0x8 /* AX.25 gateway operation allowed */ TELNET_CMD 16 0x10 /* Telnet gateway operation allowed */ NETROM_CMD 32 0x20 /* NET/ROM gateway operation allowed */ SYSOP_CMD 64 0x40 /* Remote sysop access allowed */ EXCLUDED_CMD 128 0x80 /* This user is banned from the BBS */ /* 256 and 512 are used in PPP*/ NO_SENDCMD 1024 0x400 /* Disallow send command */ NO_READCMD 2048 0x800 /* Disallow read command */ NO_3PARTY 4096 0x1000 /* Disallow third-party mail */ IS_BBS 8192 0x2000 /* This user is a bbs */ IS_EXPERT 16384 0x4000 /* This user is an expert */ NO_CONVERS 32768 0x8000 /* Disallow convers command */ NO_ESCAPE 65536 0x10000 /* Default is no escape char */ NO_LISTS 131072 0x20000 /* No lists displayed from mailbox */ NO_LINKEDTO 262144 0x40000 /* disable '*** linked to' */ NO_LASTREAD 524288 0x80000 /* Ignore lastread in .usr (shared accts) */ NO_FBBCMP 1048576 0x100000 /* Avoid FBB compression */ XG_ALLOWED 2097152 0x200000 /* Allow XG (dynip route) cmd */ To set options, simply add values. Format in /ftpusers file is: name password rootdirlist1 #perm1 rootdirlist2 #perm2 ... is a semicolon-separated list of directories the user is permitted to visit (at or below). The initial directory is the first listed, UNLESS one of the following directories is preceded by an '=' to flag it as the initial directory. Example: anonymous * /pub/wr_only 2 /pub/rw_del 7 =/pub 1 f:/ 1 A directory must not end in a "/" or "\" unless it is a root dir. Note also that the MSDOS subst command can be used to make any dir appear to be a root dir of a new disk drive, and this is useful if your Jnos is to be accessed by Netscape or other programs that think you always start out in the root dir! is the access permissions value to be applied to each directory in the preceding list. can be a *, so that any password is allowed. is a login name, such as a callsign, or certain keywords: "univperm" - any name not found explicitly in the ftpusers file will be treated as if it were "univperm". If a password is set, this password needs to be used. Eg: univperm * /public;/ham 132103 gives anyone not otherwise known login permission, but no ax.25, netrom, lists, etc. and also ftp downloads are allowed... NOTE: as of Jnos 1.10H, there is another protocol-specific permissions that takes precedence over "univperm", when the user's actual login name is not found in ftpusers. These are: tcpperm - telnet login to mailbox ax25perm - ax.25 login to mailbox nrperm - netrom login to mailbox confperm - convers signin pppperm - PPP login ftpperm - ftp login tipperm - tip login to mailbox ERRORS IN NOS: Here is the long awaited list of error numbers used in nos! The numbers listed are directly from the sources (socket.h), and when appropriate, are followed by a little description I've shaken out of my pen :-). Where Jnos and MSDOS share a name, the MSDOS value is used, NOT these: #define EMFILE 201 Too many open files (ie too few file handles) #define EBADF 202 Bad file number (programming error) #define EINVAL 203 Argument invalid #define ESOCKTNOSUPPORT 204 Socket type not supported #define EAFNOSUPPORT 205 Address family not supported #define EOPNOTSUPP 206 Option not supported #define EFAULT 207 Generic error (unknown) #define ENOTCONN 208 No connection established #define ECONNREFUSED 209 Already connected, or connection refused, #define EAFNOSUPP 210 Address family not supported #define EISCONN 211 Already connected #define EWOULDBLOCK 212 Socket would have blocked #define EINTR 213 Interrupted operation #define EADDRINUSE 214 Address already in use #define ENOMEM 215 Not enough system memory to do task #define EMSGSIZE 216 Msg too big? #define EALARM 217 Timer timed out #define EABORT 218 Action aborted #define ECONNNOROUTE 219 No tcp route to target address Note: the AX.25 forwarding code may log error messages containing an error code returned by the Borland runtime or by MSDOS. These codes are found in the Borland errno.h include file. Some problems found during compressed-FBB forwarding are reported by number: 0: Subject Packet does not start with a SOH (01) Byte. 1: Checksum of message is wrong. 3: Received binary frame is not STX (02) or EOT (04). 11: Proposal has fewer than 6 fields. These errors could be due to dropped characters if a serial interface was used; use the asystat command to investigate this possibility. FILES FOR JNOS: Please check the file NOS.CFG in this distribution for the names and locations of the files used on JNOS. For file format information, see below for a description in the release notes when that file was first introduced. See also any related console command helpfile. COMMAND LINE OPTIONS: JNOS can be started with a number of command line options. All but one start with a '-'. Options should be separated by tabs or spaces. The option and the option argument (if any) should be contiguous (ie NO spaces). -b : Use BIOS for the console i/o (instead of direct writes to VRAM) -c# : set the number of columns on the screen to #. -drootdir : set the root dir for configuration file path. This is overwritten by the files included in the -f config file. The UNIX version does a chroot if rootdir ends in '/'; this is very secure but is also troublesome to support. -e : pause after each error line in autoexec.nos. -fnos.cfg : set JNOS config file names as indicated in the file 'nos.cfg'. This overrides the -d option. -gn : set trace colors, when tracing to console (ANSI.SYS needed): n=0 => none (default). n=1 => tailor to grey-scale monitor n=2 => tailor to color monitor Add 4 to above values if colors are desired also in traces sent to other than the system console. -i : always re-index mail files at startup -I : never re-index mail files at startup (instead, test at 1st access) -l : do not remove *.lck files in the mail and news subdirectories (default is to remove those *.lck files!) -mn : set the default screen swap mode. n = 0 : Use EMS (if compiled in and EMS is available). (Default if ems is available) n = 1 : Use XMS (if compiled in and XMS is available). (Default if xms is available and ems is not available) n = 2 : Use memory. (default if no ems/xms available) n = 3 : Use a temporary disk file. -n : no trace session. -r# : set the number of rows on the screen to #. -t : trace the autoexec.nos file. You will be asked before each if you want to execute it. 'y' accepts, anything else skips the line. -u# : set the number of status lines, valid values are 0-3 -v : verbose. Print line from autoexec.bat before parsing. -wf+b : set the foreground and background color for the system status -xf+b : set the foreground and background color for the session status -yf+b : set the foreground and background color for the 'main' window -zf+b : set the foreground and background color for the 'split' window autoexec.new: Name of the startup file. If not given, \autoexec.nos (or as indicated with the -fnos.cfg option) is used. UNIX additions to the command-line arguments: -C : allow core files to be created following certain errors. -D : disallow using the interval timer ... testing vestige from 1.09 Jnos. -Smgr:o : set the default session manager to , with options . -Tmgr:o : set the default trace session manager to , with options . Supported session managers are "curses", "dumb" and "raw" (depending on what compile-time #define's were used). DOS MEMORY: Most DOS environments provide up to 640 KB for a program to use. However, there are ways to increase this. If you use the QEMM memory manager, then the VIDRAM program can provide up to 704 KB of memory by disallowing graphics modes on EGA or VGA equipped systems. Tom, N1KIO, reports that vidram under QEMM version 8.0 can provide 736 KB if qemm386.sys is given the VREGA option. Here is how to obtain similar results with EMM386: ---- Date: Sun, 13 Feb 94 18:58:52 UTC From: k5rw@k5rw.ampr.org Subject: VIDRAM alternative To: nos-bbs@hydra.carleton.ca DOS users that want extra memory for NOS/JNOS can use the following instead of VIDRAM from Quarterdeck. In your config.sys file for color video adapters load EMM386.EXE this way: DEVICE=C:\DOS\EMM386.EXE NOEMS I=A000-B7FF NOHI In your config.sys file for mono video adapters load EMM386.EXE this way: DEVICE=C:\DOS\EMM386.EXE NOEMS I=A000-AFFF NOHI Configured this way, EMM386 converts a portion of the area normally reserved for the video buffer to usable RAM and links it with conventional memory. Executable programs sizes can approach 700K or larger. Don't switch to a pgm that uses graphics mode. This should probably only be used for boxes dedicated to NOS/JNOS or other non-graphic applications. FILE HANDLES AND BUFFERS: You should be sure to allocate sufficient file buffers and handles by appropriate FILES= and BUFFERS= statements in your config.sys. The maximum number of file handles for programs compiled with Borland C is set by the _NFILE_ constant in <_nfile.h>, typically 20. You can observe the dynamic number of free file handles in the first status line, by #defining SHOWFW in config.h. Should you need more handles, the following note extracted from the BC++3.1 readme may prove useful: ----- - You can now increase the number of files that can be open at one time in a DOS program by a simple modification of the runtime library. First, modify _NFILE.H in your INCLUDE directory by changing the #define for _NFILE_: #define _NFILE_ n where n is the number of files you want to open. Make sure the FILES statement in your CONFIG.SYS file specifies at least this number. Then compile the two files FILES.C and FILES2.C in the LIB directory: BCC -c -m files.c files2.c where is the memory model you're using. Then link them directly with the program which opens the files, for instance: BCC myfile.c files.obj files2.obj If you want the change to apply to all modules, add FILES.OBJ and FILES2.OBJ created above to the libraries you use; from the LIB directory, type: TLIB c +-files.obj +-files2.obj where matches what you used for the BCC command above. ----- Additions/changes to Jnos follow in reverse chronological order: 1.11f (001128) - Linux changes: rspf fixed to interoperate with DOS jnos rspf without crashing. /var/lock is now the default lockdir. - z8530 DOS driver enhanced, thanks to Piotr SP3UQS. - SMTP_DENY_RELAY compile-time option fixed. - info command enhanced to show more compiled-in options. - NNTPS server and client tasks now have increased stack sizes, preventing some crashes. - The kiss driver will no longer filter out unknown param codes, leaving it to the tnc to handle unsupported codes. Thanks to Robin G8ECJ. - The trace module will use ANSI color escape sequences while tracing to other than the system console, if Jnos was invoked with -g4 or -g5, for grey-scale or color displays, respectively. Thanks to Robin G8ECJ. - ttylink will display (and log) connect attempts in the command-session window if the sysop is flagged as busy. From Andrew G8FSL. 1.11e (991224) - Linux changes: global.h improved to permit compiling under recent Debian and Slackware distributions. Mailbox alias .hlp files now work. The size of the finger daemon stack was increased to work right under RH6.0. - SMTP server now handles extra-long lines correctly. - The mailbox can now be configured to always use the linemode more? prompt, by adding #define LINEMODE_PROMPT_ALWAYS 1 to config.h and recompiling. This supercedes the XP command. - The finger server can be made to recognize 'ifconfig' as a pseudo-user, by adding #define FINGER_DIVULGE_IFCONFIG 1 to config.h. - Jnos can be made to ignore the TOS (type-of-service) bits in IP headers, when deciding to use datagram (UI) or VC ax.25 packet transport methods. This is useful when the interface defaults must be obeyed, and can avoid sending a long datagram which exceeds the interface paclen. Thanks to Patrick F1GYG for the implementation. Enable this feature by adding #define NO_TOS_AX25_MAPPING 1 to config.h. - The 'detach encap' command can now be used to remove any routes involving the encap interface, to facilitate updating Jnos with new encapped routes. No actual detach is done! - I added the ability to limit a mailbox user to telnetting to only, or never to, amprnet destinations. This feature is enabled when AMPRNET is #define'd to a numeric value, presumably 44, but in any case equal to the first octet of the Telnet destination IP address to be limited. Two new permissions flags were added for use in ftpusers: #define T_NO_AMPRNET 4194304L /* 0x400000 Disallow Telnet to 44/8 */ #define T_AMPRNET_ONLY 8388608L /* 0x800000 Allow Telnet to only 44/8 */ I expect most users wanting to use this feature will add #define AMPRNET 44 /* Test mbox Telnet cmd destinations */ to their config.h file. Otherwise, leave it undefined so as to minimize the size of Jnos. 1.11d (990627) - Linux changes: Compiles under latest GLIBC. TERMSERVER feature added. IBM character codes > 127 can now be displayed on the console, by using the 8bit option with the curses driver. The S and T command-line arguments now accept options specified in the usual way (e.g., -Scurses:8bit ). With the proper font loaded, one can now read FRANCA messages with accents. - AX.25 change: the outbound ssid can now take on both odd and even values. - The nntp server will now only update the poll reference timer when the nntp session terminates normally. Also, the parsing of some header lines during importation of smtp messages, was fixed. - The bid generation algorithm for transferring SMTP-originated msgs via AX.25 forwarding, was improved in the case where the Message-id was very long. - The POP3 client will never ask for more than POP_MAX_MSGS at a time, if this is #define'd to a positive integer in config.h. The POP protocol requires a successful disconnect before any deletes occur, so a poor circuit and lots of messages awaiting transfer, can result in a disconnect with no requested deletions occurring. Choosing a small value for POP_MAX_MSGS could improve this situation. - The pop drop and pop kick commands now take an optional username argument, to allow which pop host entry is to be affected: pop kick pop.usl.edu jpd Otherwise, the first-found entry is used. - The DNS server now handles unsupported RR types better, avoiding a crash. - The SMTP Gateway name is expanded to an IP address once per maturation of the SMTP timer, thus accommodating those sites that provide a different IP address per lookup in an attempt to do load balancing. - The exit command can be made to write the mailbox mailstats into the log, if EXITSTATS is #define'd. This is automatically done under UNIX, where memory is not usually so constrained as under DOS. - The RIP-98 protocol variant to RIP-2, can be supported if Jnos is compiled with RIP and RIP98 both #define'd. See rip98.txt for details on how it works (basically, its packets are manually directed to specific hosts). Thanks to Gareth G4HIP for porting the code. - The misspelling of AGGRESSIVE_GCOLLECT in the sample header files was corrected. Check in your config.h that two G's occur after the first A! - Neil VK2ANK provided a modification to the http server, to allow operation without needing a root.html file in the server root dir (it is treated like any other dir, that is, a directory listing is produced). This will facilitate using a CDROM as the server's rootdir: in the 'start http' cmd provide the drive letter of the cdrom, and set the rootdir to "". Also, one can now #define HTTP_INDEX_NAME "index" to have Jnos search for "index.html" instead of "welcome.html" in a directory. "index.html" seems more common nowadays. The default remains "welcome.html" (idea by KF9UG). I also made changes to fix http directory listings under Unix. - I changed the DOS Jnos to recognize operation under Windows 98 DOS 7. - Miscellaneous small fixes and enhancements; see readme.knx for details. 1.11c (981119) - Linux changes: newest GLIBC is supported. Ncurses 1.1.9e works. HOLD_PARSER can be #define'd as the path to a program which will scan incoming messages for content, and hold selected messages, when 'mbox holdlocal yes' is in effect. See comments in scanjmsg.c in the Jnos source. - Email can be rejected if sent to an id not present in the popusers, ftpusers or users.dat files, by compiling with SMTP_VALIDATE_LOCAL_USERS #define'd. - NNTPS compatibility improved by sending IHAVE before MODE READER, from Stewart G0LGS and Robin G8ECJ. - Solaris SPARC modifications have begun, by Brandon KF8NH. - Miscellaneous small fixes and enhancements; see readme.knx for details. 1.11b (980403) - Linux changes: the shell (!) command is now fixed, and behaves like the DOS version (the /c prefix to invoke the shell is NOT required; the SHELL is always invoked to process the command). Example: at now+0001 "! find / -xdev -name core > /tmp/cores &" - SMTP-related changes: 1) if SMTP_DENY_RELAY is #define'd, Jnos will not act as a mail relay for hosts that are not trusted, that is, not a member of one of the system's subnets. For this to work right, be sure the netmask is defined correctly for all interfaces (see ifconfig command description). 2) I added the ability to rewrite a message into an area (or smtp desti- nation) based on the message's envelope From and To address. The rules are stored in /spool/refile by default (set Refilefile to a different value in nos.cfg to change the default filename). The rules are similar to those used in the standard rewrite file, except that field one contains the expected From address immediately followed by a '|' symbol, then immediately followed by the expected To address. This feature is enabled by compiling with SMTP_REFILE #define'd. If the refile attempt fails, then the standard rewrite is performed. Example: to file nos-bbs messages arriving for user n5knx on gateway w5ddl.ampr.org, into a area called nos-bbs, use: nos-bbs@hydra.carleton.ca|n5knx@w5ddl* nos-bbs As always, a mapping to "refuse" will result in the message being rejected (or returned to sender, depending on the protocol used). 3) I fixed a mail loop bug when 'smtp gateway' is defined to be the system's IP address. This somewhat unusual setting is not recommended in general. - The dynamic IP support (MBOX_DYNIPROUTE or UDP_DYNIPROUTE) has been enhanced so Jnos behaves like K2MF's MFNOS in adding and deleting dynamic IP gateway routes. For a route to be added, there must be no existing route, OR the existing route must be via the Loopback interface, or via the encap inter- face with non-zero route timers. The typical procedure would be for the sysop to route a subnet to loopback, in anticipation of it being changed later by a dynamic-ip gateway (thanks Barry, K2MF). - CDROM callsign server changes: Buckmaster now prints country, email and URL adresses, and QSL manager (thanks Bob WA2MNO). QRZ no longer prints a '.' after the lastname, and a Linux crash when the callsign was too long is now fixed. - A bug in editor invocation after composing a msg in the mailbox was fixed. - Convers users can now list users by channel: /who #nnn where nnn is the channel number. Also, if CNV_TIMESTAMP_MSG is #define'd, msgs sent to local users are prefixed with a hh:mm timestamp (thanks Glenn, WB6W). - If SCC and FINGERSERVER are both #define'd, the sccstat pseudo-user is now available to display the scc statistics. - The mail2ind utility now has a -f option, to display summary info for all areas. - Miscellaneous small fixes and improvements, see readme.knx for more details. 1.11a (980107) - Linux changes: param {up | down | dtr {on|off}} are now supported, and the dialer 'status' and 'control' commands now work. TRANSLATEFROM now works. Allow up to 9 asy/slip ports. The Linux ftp server can be made to interoperate better with Netscape ftp clients, if FTPSERV_XPERM is #define'd in config.h. - NNTP and NNTPS code will now time out after waiting 900 seconds with no input received, while acting as an nntp client. This value can be changed by: #define NNTP_TIMEOUT <#seconds> in config.h. A value of 0 disables any timeout. - The remote command/facility has been separated into two pieces, that which pertains to client functions, and that pertaining to server functions, enabled by REMOTECLI and REMOTESERV #defines, respectively. From K2MF. - I added two kinds of support for gateways with dynamic IP addresses, to register with static-IP-addressed gateways for routing encapped packets. 1) The first style is from Barry, K2MF. It uses the remote command to send UDP packets asking to be registered as an encap gateway. This feature is enabled when Jnos is compiled with both ENCAP and UDP_DYNIPROUTE #defined. The typical sequence is that the Jnos with a static address configures its remote server with a gateway password (remember REMOTESERVER must also have been #define'd): remote -g gwkey and then starts the remote server: start remote 1234 Note that the gateway sysop must make known both the port number and the gateway password used. Also, the sysop should route the anticipated subnets to be claimed by the dynamic gateways, to the loopback interface. This will help assure that the subnets are available for later rerouting. Then a Jnos which has been assigned a dynamic IP address, would issue this command to have 44.108.99.100 routed to it via an encap packet sent to its dynamic IP address (remember REMOTECLI must also have been #define'd): remote -p 1234 -k gwkey -r 44.108.99.100/32 static-Jnos-hostname add To terminate the encapped route, send the above command with 'add' changed to 'drop', or wait for the route to time out, which is defaulted to 900 seconds. To change the default route TTL, the static-addressed Jnos should be compiled with #define DYNIPROUTE_TTL nnn in config.h, where nnn is the number of seconds desired. Also, a Jnos remote client desiring to renew the encapped route before the TTL expires, might use this method: at now+0005 "route -p 1234 -k gwkey -r 44.5.6/24 n5knx.net add+" Remember that UDP packets are not guaranteed to be delivered, hence the utility of the repeating at command shown above. 2) The second method to register with a static-IP-addressed gateway for routing encapped packets is more suited to Jnos systems desiring only to do tcp-based forwarding. Only the Jnos system acting as a static-addressed gateway need be reconfigured, by compiling with ENCAP, MBOX_DYNIPROUTE, TELNETSERVER and MAILBOX #define'd. This configures it to recognize the XG mbox command to establish a route: XG 44-net-addr/#bits. The route will persist for 900 seconds, unless changed by #defining DYNIPROUTE_TTL <#secs> differently, perhaps in config.h. A Jnos host with a dynamic IP address would first contact the static gateway and register an encap address, then contact a forwarding partner via that gateway and do tcp protocol forwarding. For example, suppose K9DOG has an IP address of 44.108.0.51 as well as a dynamic address from his ISP, and wants to contact W5DDL.ampr.org as a forwarding partner. If AT commands are used to initiate forwarding, a typical set would be: at 25 "mbox kick Xgddl+" -- establish route to w5ddl via a gateway at 28 "mbox kick w5ddl+" -- forward to w5ddl if any traffic pending It is assumed that 15 minutes (or whatever the static-IP gateway system has compiled in) is sufficient for a complete forwarding session. Additional kicks to Xgddl could be used to extend the life of a route, or even a kick could be done every 15 minutes: at now+0015 "mbox kick Xgddl+" if the encap route is to be maintained for other non-forwarding purposes. The destination system is assumed to route back to the 44-net station via the same gateway: route add k9dog.ampr.org tnc static.gw.edu 2 Here is a sample forward.bbs script for the above example: xgddl 0023 tcp static.gw.edu .k9dog .passme # Wait for prompt, indicating command-mode begun (assume no > in greetings) +> *60 .xg 44.108.0.51 .bye -------- w5ddl 0023 tcp w5ddl.ampr.org .k9dog .somepasswd w5ddl allus amsat ww ---------- The gateway sysop must specifically enable a dynamic-ip host to log in (via an entry in ftpusers, perhaps with a password) and also allow the XG command by setting bit 0x200000 (XG_ALLOWED) in the ftpusers permissions field. Also, the sysop should route the anticipated subnet to be claimed by the dynamic gateway, to the loopback interface. This will help assure that the subnet is available for later rerouting. In both methods described above, a route will only be added if the subnet has no route, or is routed to loopback, or is routed via encap with a route timer running. This last proviso assures that no manually-added encap routes can be changed by a dynamic-IP gateway (since such routes have TTL=0). - It is now possible for mbox users to use the ED editor to edit messages composed in the S(end) command, if ED, EDITOR, and SEND_EDIT_OK are all #define'd in config.h. "mbox sendquery yes" must be in effect, and the query after the /EX is read is "Send(N=no,E=edit)?". If e or E is typed in response, the editor is invoked, preceded by the message: "Invoking Unix ed(itor); use Q to quit without saving changes." then "Now press return to begin:". Unless the mbox user has sysop privileges, the editor is invoked in restricted mode so no other files can be accessed. The ed editor may not be the best solution to email editing, but it is very capable when under- stood. I recommend that the editor portion of the editor helpfile be made available for download, if you enable this feature for your users. - Many changes made to allow a detach command to result in internal structures being purged of information or packets related to the deleted interface. Thanks to Barry, K2MF, for the Netrom-related changes. - The DOS ftp server MDTM command was fixed to operate properly. - The http server was changed to interoperate better with the IE4 browser, by checking for "HTTP 1.x" requests instead of just 1.0 requests, thanks to Barry K2MF via Dennis KD1CA. - The 'rip proxy' command was fixed not to crash Linux Jnos. - The ident deamon was fixed to detect an invalid socket while preparing a response to a query. - Miscellaneous small fixes and improvements, see readme.knx for more details. 1.11 (970825) - Linux changes: now accepts #define NRS and nrs/cts flow control, as in the DOS version. COLOR is supported as in the DOS version, that is, the same color codes are used: 0=black, 1=blue, 2=green, 3=cyan, 4=red, 5=magenta, 6=yellow, 7=white . The 'tcp clean' and 'tcp view' commands were improved. Expire of nntp history file is fixed, thanks to Robin G8ECJ. The POP3 server no longer truncates the last lines of messages. The socket command should no longer crash Jnos. The trace window is now full, ie, no status window appears in the trace screen. - Paul N5FAZ' BPQ driver version 1.5 incorporated. The bpqstat command is now 'bpq stat', with more info shown (see bpq helpfile). 'bpq trace' exists to trace unattached BPQ streams. Smarter buffer management added. - Robin G8ECJ's port of tcpgate added to Jnos. See the gate helpfile for full details; tcpgate is enabled by compiling with TCPGATE #define'd, and serves to redirect tcp connects to another host and/or port. The number of active gate clients is shown by GATE=nn in the first status line. - slip now handles minimal frames which used to cause a null pointer to be used, leading to Linux crashes and DOS reboots. - Andrew G8FSL's improved SCC driver is now used. Andrew's driver supports software DCD, the ESCC fifo chip (Z85230), multiple scc boards, and easier attach statements for popular scc boards. See the sccg8fsl.txt file in the source archive for many technical details and tips. - If you are having problems with your POP3 client waiting forever when a path to the server drops out, compile with POPT4 #define'd and use the new 'pop t4 #secs' command to establish a timeout. Default is 300 seconds. - Mailbox aliases can now be deleted properly, thanks to Gene K8EE's fix. - Remote sysop session lockups after typing a single CR have been eliminated. - NNTP server improved: the nntp post command works better, and any errors from sending the 'mode reader' command (if NN_INN_COMPAT were #define'd) are completely ignored (thanks to Robin G8ECJ). - I added some more error detection to the lzhuf code, and fixed a problem in the Linux version that caused problems in long messages. - DOS version status command should no longer show garbage characters in program names having open files. Also, Jnos no longer reports any open files under DOS 7 as no filename is available. - The Jnos FTP server now understands the REST and CDUP commands, allowing a second method of resuming transfers that conforms to RFC959. The RNFR, RNTO, and MDTM commands can also be supported if the server is compiled with FTPSERV_MORE #define'd (thanks to Selcuk, N3YCO). The Jnos ftp client can be compiled with FTP_REGET #define'd to provide the reget and restart commands. The previous method, resume and rput, are now contingent upon FTP_RESUME being #define'd. The rename command is now available if FTP_RENAME is #define'd when the client is compiled. See the ftp helpfile for details. - Miscellaneous small fixes and improvements, see readme.knx for more details. 1.11x7 (970512) - The NNTP server now can limit the number of simultaneous client connections. 'nntp maxclients [N]' establishes or shows the limit. 0 implies no limit, except sufficient memory! Also, the NNTP client software now continues long header lines, so that mailbox header scanning works properly. - Jnos can be made to automatically switch sessions to an incoming ttylink session, if compiled with TTYLINK_AUTOSWAP #define'd. This is also the standard behaviour in the UNIX version. - It is now possible to compile Jnos with LZW and FTPSERVER #define'd but FTPSESSION #undef'ined. - Back by popular demand! The smtp gateway can be set to the local host. Using localhost (or any local IP address) would allow interoperation with external mailers that produce packet hierchical addresses in msgs added to the mqueue, e.g., 'n5knx@k5arh.#lft.la.usa.noam' or 'ft736@sale'. This has the side effect of accepting email whose destination address can't be verified at submittal time by a DNS query. - The trace session now permits command-history recall (by up and down arrows) just as in the command session (DOS version only). - Jnos can be compiled with various forwarding options enabled, but AX25 disabled. That is, you can leave out ax.25 support, yet still do tcp and file (export) forwarding. Note that changes were needed in config.h to make this possible. - AX.25 connect requests originated by Jnos, will use the interface call unless BBSCALL is available and set. This convention can be overridden by the TTYCALL by compiling with TTYCALL_CONNECT #define'd. I'd expect a BBS to want to use the BBSCALL, and a user station wanting to encourage interactive connects, to enable the TTYCALL_CONNECT. - If compiled with FWD_COMPLETION_CMD #define'd, Jnos will allow a console command to be executed when forwarding completes. This command is specified in forward.bbs by prefixing it with a '+' and placing it just before the first area name. This feature is described in the 1.11x3 section below, where it was first introduced for the FILE forwarding method. - A silly bug in parsing dates prior to the 10th of the month was corrected. - Remote server handles invalid exit/reset passwords better. - PPP support for ip-address pools is fixed, and the specification of an ip address as the fifth field in ftpusers now works properly. - Rare crashes while in the network() task, due to using an invalid index while processing multi-drop kiss packets, is now fixed. - UNIX improvements: STATUSWIN now can be #define'd, and long UNIX filenames are properly handled now. The GMT offset bug is fixed, and problems in fingerd, http and tip-server are corrected. Domain tracing now works as in the MSDOS version, with output coming to the current session. Other trace output in various modules was fixed to avoid writing directly to stdout. Problems with short 8-character helpfile names can be corrected by either renaming the help files to the full command name (e.g., 'third-party') or by compiling with DOS_NAME_COMPAT #define'd. - Miscellaneous small fixes and improvements, see readme.knx for more details. 1.11x6 (970314) - Linux UNIX version now available! See readme.lnx for details! For this reason, there are now TWO makefiles, makefile.bcc and makefile.lnx. You should rename one of these files to "makefile" before you compile Jnos. - Mailbox improvements: LS, L< and L> accept line ranges: ls 1 999 "736" which allows a numeric search string to be differentiated from a range! Use the BBSCALL in the greeting msg. New users will be started with a 20-line page size. The sysop MM and MC commands now accept a range of message numbers, specified by an embedded '-', e.g., MM 5-26 junk . - DNS server now generates compressed responses (so large query results can be handled) and we now reset the recursion-available flag. - NNTP server fixed to handle mixing ax.25 bulletins and NNTP articles, and gated bulletins can have their R: lines removed if NN_REMOVE_R_LINES is #define'd. - SMTP client now limits how many mqueue messages it tries to process in one invocation, to avoid depleting memory. - "status on|off" command will disable, and reenable, the status line display. - The mailfor facility will now detect a change to the watched mail files, and set/reset the MAIL statusline flag appropriately (in case external programs manipulate the mailboxes). - "bulletin holdold #days" command added, to hold bulletins which arrive more than #days after origination. The "bulletin date on" command must be issued for this to work. - An idle time indicator can be added to the status line by #define SHOWIDLE, but "watchdog on" must also be issued for this to work. - The exit code is placed in the log (when logging is enabled). More exit codes have been established: 248 - Linux curses keyboard problem 250 - Linux malloc failed to find memory available 251 - AGGRESSIVE_GCOLLECT #define'd, and availmem is < 1/4 of Mem threshold 252 - printf buffer was insufficient 255 - Linux Jnos received SIGTERM signal - Miscellaneous small fixes and improvements, see readme.knx for more details. 1.11x5 (961220) - HTTP server by Selcuk, N3YCO was added. The setup information is available in the http helpfile. Some slight changes were made to Selcuk's original. - BOOTP client and server are now separated, and when neither are used, Jnos is a bit smaller than before. - APOP command added to the POP3 client and server, when MD5AUTHENTICATE is #define'd. This means the pop password is not sent in plain text (unless the APOP command is rejected). - AT command weekday support added: "at whhmm cmd" sets cmd to run at the next occurence of weekday w, at hh:mm. w=0 => Sun, w=1 => Mon, ... w=6 => Sat, w=7 => Sun, ... - The term command now supports sending a break in response to a specified character code received. Also, LFs can be completely ignored by using the cronly option. (Neil VK2ANK) - Makefile commands added to compile helper programs: pushmail, uudecode, mktl, and base64. - MD5 now uses 16 instead of all 32 characters to validate accesses, to enhance security, since password guesses would be harder to validate. - Converse now passes 8-bit charcodes by default, and retains and uses TOPIc timestamps. Thus TOPIcs provided by older Jnos convers implementations will be ignored ... time to upgrade! - SMTP server stack overflow problems corrected, and local duplicates resulting from interactions with news-to-mail and mail-to-news are now eliminated. For example, to maintain an area called tcpip, and a newsgroup called ww.tcpip in the nntp server subtree, and have msgs appear in both regardless of how they arrived, you could have: rewrite: tcpip@ww tcpip alias: tcpip tcpip !ww!tcpip gateway: ww.tcpip tcpip@ww SMTP will also now send lines beginning with a dot (".") correctly. - NNTP client and server were changed to deal properly with long header lines. NNTP client or server can interact with an INN server if compiled with NN_INN_COMPAT #define'd (sends a "mode reader" command). Memory leaks in the NEWNEWS command handler are fixed. Lines beginning with a dot ('.') are now properly handled before being passed to an nntp client. - FTP server will interoperate better with those web browsers that get confused by Jnos starting users out in a non-root directory, by treating "cd /" as a change to the user's default root dir when a change to the actual root is denied. SIZE and APPE commands added. (Selcuk, N3YCO) Selcuk's modification of ftp to work with the Windows ws_ftp program can be enabled by #define WS_FTP_KLUDGE, but I don't recommend it as SYST will report we're UNIX. The FTP client now will interpret a userid of "*" in net.rc as "anonymous". Ascii-mode ftp "put" speed is increased. - Tracing of polled-kiss interfaces by default will no longer show the poll itself. The poll can be shown by adding 0x4000 to the trace flags value. (Dave, N9HKM) - The BBS command, in conjunction with MD5AUTHENTICATE, can automatically log the console user into the mailbox. The net.rc file must have an entry for the hostname, userid and password. EXPEDITE_BBS_CMD must be #define'd to enable this capability. (Mark, KA1NNN) - More read timeouts were added to FBB forwarding, to catch cases where a forwarding partner connected via TCP goes silent. - Miscellaneous small fixes and improvements, see readme.knx for more details. 1.11x4 (961020) - If NN_USESTAT is #define'd, the two nntp modules in Jnos, NNTP and NNTPS, will bypass the refusal of an nntp server to honor the NEWNEWS command, by using combinations of GROUP and STAT commands. This will permit Jnos to obtain news from some servers which ignore the requirements of RFC977. The limitation of this work-around is that newsgroups must be explicitly named, ie, use of '*' and '!' is not supported. The highest article number available from a news server is maintained in host.rc (NNTPS) or in .rc (NNTP). - Both nntp versions now take greater pains to eliminate duplicate news articles, by proper handling of ax.25 bulletins that were gated into newsgroups. NNTP will now also update the bid history file for articles that arrive via nntp forwarding, that originated elsewhere as a bulletin. (thanks Pierfrancesco IK5PVX). - NNTP clients are disconnected after 3600 seconds of inactivity by the Jnos nntp server. This can be changed by #defining NNTPS_TIMEOUT nnn in config.h and recompiling Jnos. - FBB forwarding via TCP protocol now has the 'mbox tdisc' inactivity timer enforced, to close connections which become silent. - The 'ax25 ttycall' is used as the Jnos source address for ax.25 connects, when available. When not defined, the interface call is used. This makes Jnos behave as many tncs do: the observed source address can be used by other hams as the target of their connect request, and they will interact with the sysop (provided attended mode is set). Otherwise, the bbscall (or interface call, for that matter) would be used to interact with the mailbox. (from Mark, KA1NNN) - Improvement in ax.25 retry performance in VC mode when maxframe > 1, due to limiting the backoff time by the 'ax25 maxwait' value. (from Patrick F1GYG). - Stand-alone converse implementations (where LINK was not #define'd) will need less memory. Also, status line #1 will no longer display LNKS=0 in this case. - Jnos DNS server now handles CNAMEs properly, and will not provide bogus A records with IP address 0.0.0.0. - mailuser command uses "sysop" as the sender's ID unless the DOS environ- ment variable MSGUSER is defined, in which case the variable's value is used as the sender ID. (from Tony, G6OPM) - The PPP module now allows the remote peer to provide a new IP address as a consequence of a reconnect, perhaps initiated by the dialer's redial feature. Jnos users whose ISP provides only dynamic IP addresses will benefit, although connections existing at the time of disconnect will time out, since they can't be resumed due to the changed IP address. - The security of Jnos has been enhanced by the addition of the capabilty to authenticate logins via MD5 checksums. When MD5AUTHENTICATE is #define'd and a password is requested (by ftp or the mailbox), the password prompt will include a challenge value in brackets. This challenge value, combined with your password, will yield a "checksum" when manipulated by the MD5 routines. This checksum can then be provided instead of a plain-text password. Jnos will accept either the correct "checksum" or the actual password. The MD5 calculations can be performed by running the epass.exe program, or, much more conveniently, use the etelnet or ettylink commands to access the mailbox. These commands will automatically process the challenge and send the checksum to the remote Jnos system. The syntax is: etelnet hostname [port#] loginid passwd ettylink hostname [port#] loginid passwd Note that ax.25 connects to the mailbox will be prompted for a password if AX25PASSWORD is #define'd, and users connecting via netrom can also be prompted for a password if NRPASSWORD is also #define'd (when Jnos is compiled). - Miscellaneous small fixes and improvements, see readme.knx for more details. 1.11x3 (960820) - The 'mbox fbb' command has changed. When set to 0, it allows no FBB features during forwarding. When set to 1, FBB batching is allowed, and when set to 2, allows both batching and compressing. - FBB compression can be disabled on a per-station basis, by the use of the new forwarding script command, "!". The ! should appear in column one, just as the other script commands do. This will allow a forwarding script to make a connection to another system via a path that is not transparent, that is, does not support FBB compression. This would be useful, for example, when a TCP connection is made to a gateway, and then a connection is made to the forwarding partner; this is how a Jnos station with a dynamic IP address would initiate a forwarding session via a fixed gateway node. Here is an example script that telnets to a gateway, and then does an ax.25 connect to the k9dog bbs: k9dog 0023 tcp 130.70.240.31 ! eschew FBB compression # Read blank line, then NOS greeting, then blank line: @10 +NOS @30 @10 # read telnet motd: +Give your call @20 #Send login ID and password in the blind: .myname .mypass #read all greeting msgs and await prompt + > *15 #Assure transparent ax.25 session: .E off + > @15 #now connect to k9dog .c tnc k9dog +Trying @15 +*** connected @30 k9dog amsat arrl south ------------- If you know that a remote system is likely to reach you by a non-transparent path, you can disallow FBB compression by setting flag bit NO_FBBCMP (1048576 == 0x100000) in their privileges in ftpusers. This would prove useful for interoperation with older Jnos or other *nos versions. Since stations having a dynamic IP address can't be forwarded to, but must none-the-less have entries in forward.bbs describing which areas are to be forwarded when they initiate a connect, I added the "skip" forwarding method, meaning we should not initiate a connect. Any text appearing after the skip keyword is treated as a comment. For example: ke5l 0023 skip Willy's IP addr is dynamic so we can't initiate a tcp forward ke5l amsat arrl north ---------- - Jnos can now forward to an export file, which is formatted as a WA7MBL-style file: SB/SP/ST line, then the subject line, then the message body, and finally the /EX line. This sequence of lines may be repeated as required to to store multiple messages. To specify forwarding to a file, use this syntax in the forward.bbs connect-line: file Only three forwarding script commands are usable: '.' adds lines to the export file before the exported msgs (this is probably not useful), '#' is used to introduce a comment line, and '+' is used to specify a Jnos command to be executed when exporting is completed. Note that + must occur just before the area lines, if at all, and might prove useful to email the file just created to another site. The export file is opened in APPEND mode. If an error occurs while reading an area being forwarded, the last (incomplete) message is not terminated by a "/EX" and no more messages are written to the export file in the current forwarding cycle. The corresponding import program is assumed capable of rejecting this badly- formatted message. The latest Jnos import.exe utility is such a program (see ftp://pc.usl.edu/pub/ham/jnosutil/jnos_import.zip). Example forward.bbs script: fred 0023 file e:\fred.out +source c:\fred.nos fred amsat arrl ----------- where c:\fred.nos would have something like these commands in it: mailmsg import@fred.gw.com "Jnos exported msgs" e:\fred.out delete e:\fred.out This export file feature is enabled at compile-time by defining FWDFILE in config.h (provided MBFWD is also defined). - The NNTP server can now also transfer incoming articles to the Jnos mail server. This feature is enabled when both NNTPS and NEWS_TO_MAIL are defined at compile time. The mapping of newsgroup names, to email addresses, is determined by the Newstomail file, which defaults to /spool/news/gateway. This file has two fields, blank separated. The first field contains the newsgroup name; starnames are supported. The scanning of the gateway file terminates when the first matching newsgroup name is found. The second field contains the email address to which the article is to be sent. This address will likely be an area name, so that news articles can also be viewed by mbox users, but can be any email address or even an alias. Example gateway file: # This is a comment rec.radio.shortwave swl rec.radio.amateur.* ham rec.radio.* radio misc.investments wb5aaa - Expiration of JUNK articles is now supported. These are the articles that the NNTP server stores in /spool/news/forward (default location). In expire.dat, use !junk N to expire them after N days. - AX.25 fixes: the backoff algorithm for retries after an RNR is improved (WA7NWP). The number of AXIP ports can be specified in the config.h file by defining NAX25 to the desired number (default is #define NAX25 16). The setting is now displayed by the info command. - All areas can be searched for messages carrying a given bid, by use of an external program, mail2ind. This program now takes a -bBIDTEXT argument, and will display its progress and findings as it scans the areas. Note that 'make mail2ind' will compile this utility program, and that it takes a -d options just as Jnos does, to specify non-default spool directory locations. - The main console session now defaults to flowmode OFF, that is, no --more-- prompt will occur unless you issue "session 0 flow on". - Guest accounts can now be given a message at each login, by setting the privilege flag bit NO_LASTREAD (524288 == 0x80000) in their ftpusers entry. Suppose that the account name is "guest". Then the contents of /spool/mail/ guest.doc is displayed at each login and whenever their home area is selected. Further, this user will always be shown the first msg in any other area, and be presented with that area's .doc file contents, should it exist when switching to that area. In other words, Jnos will not maintain a history of the highest msg accessed by this user, so that all messages appear new. This feature requires that USERLOG be #define'd at compile time. A suggested set of privileges for a non-ham guest login interactive acct is 0xc9401. - Incoming ttylink sessions will result in a message (with a bell) sent to the current screen, but no automatic switch to the incoming session is made. The new session number will blink, if status lines are being used, to indicate the ttylink session is active and awaiting your attention. - Dialer improvements: the dialer should now handle fast input during a wait command even when the cpu is "slow". Formerly, this could lead to a freeze. A new command, "verbose ON|off", allows a dial script to disable most progress messages. In particular, if a script ends with verbose mode off, any later automatic redial will not disturb the current console session screen. Of course, "verbose off" should only be used in well-debugged scripts! Finally, for SLIP users needing to acquire the assigned IP address, the wait command now takes an "ipaddress" option, to acquire a numeric IP address from the incoming data and set the dialing interface ip address accordingly. Example: wait 5000 "Assigned IP address is" ipaddress - The PPP code now implements ipcp option #3, thanks to Louis Kotze. This means that Jnos PPP now interoperates with Windows NT ppp to a greater extent. - Finger daemon now supports the pseudo-user "mhold", which lists areas with held messages. HOLD_LOCAL_MSGS must be #define'd to enable this. - Miscellaneous small fixes and improvements, see readme.knx for more details. 1.11x2 (960701) - An IDENT server (rfc1413) can be configured by #define IDENTSERVER 1. This can expedite smtp sessions where the remote server does IDENT queries and waits for a response or a timeout. (from K2MF) - TERM server minor improvements (thanks to VK2ANK). - When memory falls below the 'mem threshold', incoming packets are now dropped. A source-quench can be sent if enabled. Formerly, nothing was dropped if a source-quence was sent, leading to memory depletion if the sender ignored the quench. (from Selcuk) - The smtp server now shares the cpu more equitably, leading to better performance (ie, no crashes due to memory depletion) with fast clients. The new 'smtp gateway none' command will deconfigure an smtp gateway. - The status command shows the UTC offset, as obtained from the TZ environment variable, to help discover when TZ is not set, or set improperly. - NNTP fixes for handling long lines better. nntp dump works slightly better. - The sysop mailbox cmds MC/MM now reset the read flag in the destination area. - The mailbox SF command now quotes the msg header as well as the body, to better identify the originator of the msg. - The convers /who command defaults to 'quick' format. The long format is used when any options are provided. The syntax is now: /who [long | call | @host] The sysop console command, "conv online" was similarly changed. - The look command no longer yields a disconnect after /q, when the look session lasts longer than the mbox tdisc setting. - A new Jnos command-line option, -I, serves to bypass any attempt to check the area indices for consistency. This would expedite the Jnos startup, deferring the consistency checks until an area is accessed. This option would be most interesting for home users using an external mail reader, and where the startup index checking is "too slow". - The RDATE client and server routines can now be separately configured. RDATE has been replaced by RDATESERVER and RDATECLI in config.h. - PPP fix for handling a timeout properly in the LCP protocol, which improves operation with a Livingston Portmaster router. The new 'ppp ipcp local|remote address none' command serves to require the other ppp to provide the address. Previously, one had to set address to zero, which (while successful) resulted in a complaint. - Jnos now handles better the display of routes, tcp connections, arp entries, etc. while memory is constrained. Previously, a deadlock could occur. - Miscellaneous small fixes and improvements, see readme.knx for more details. 1.11x1 (960422) - BBS forwarding scripts can now read and discard lines until a line matching a desired string is encountered. This is useful when you might get a variable number of lines at some point in the script. Use the '*' symbol to indicate this. It has the same syntax as '@', ie, can be optionally followed by read timeout, in seconds. Example: .c n5knx +bonjour *30 will send "c n5knx", then read lines, each with a 30 second timeout, until a line containing "bonjour" is read. - Convers server reworked to add pong support, pass-through, and minimal topics support (if CNV_TOPICS and CNV_CHAN_NAMES are #define'd). A new user command, /verbose [y|n], was added, to control the display of other users' signons and signoffs. The default is n (no display). - Locally-originated messages, and messages arriving via SMTP, can be held for review by the sysop, before these msgs can be forwarded out via traditional forwarding, or read locally. NNTP transfers are NOT affected. A msg must be rewritten (see /SPOOL/REWRITE) to an area which is listed in the /SPOOL/HOLDLIST file, for it to be eligible to be marked as Held. Typically, HOLDLIST would contain the same areas as are named in the AREAS file, plus any private areas used to collect personal messages to be forwarded off-site. A held message can only be read by someone with sysop permission, but can be listed by all. It will be shown with an H status instead of Y or N. I added a new command, LH (list held), similar to LA, but only held messages are listed. To reset the held flag, the sysop must read that message. After the message display ends, the sysop is asked "Release Msg Hold? (y/n):". Only a y or Y answer will release the hold. I also added a RH/VH command for the sysop, to read only held msgs. Note that the old 'RH' (read with headers) command is gone. Use 'V' instead! This hold feature is enabled at compile time by #defining HOLD_LOCAL_MSGS in config.h and at run-time by the command 'mbox holdlocal yes'. If the holdlocal flag is set to yes, then when the flag status is displayed, that is, if 'mbox holdlocal' is typed, those areas named in the HOLDLIST which contain held msgs, are also displayed, followed by a count of the number of held messages in that area. This allows the sysop to run 'mbox holdlocal' to see which areas need his attention, and then to use RH in each of those areas to perform the review function. Prerequisite defines are MAILBOX and MAILCMDS. The HOLDLIST file defaults to /SPOOL/HOLDLIST, but can be changed by setting the Holdlist keyword in nos.cfg. - Neil, VK2ANK, provided modifications to the TERM server to improve its usability. I further refined them, and changed the term configuration commands to these: term iface winkdtr [OFF | on] Displays or changes the setting of the flag which causes DTR to be deasserted for one second, at the start of a term session. term iface noecho [OFF | on] Displays or changes the setting of the flag which causes telnet echoing to be turned off for the duration of a term session. term iface nlcr [OFF | on] Displays or changes the setting of the flag which causes term to translate a newline read from the tcp input stream, into a CR to be sent to the serial interface. term iface 7bit [OFF | on] Displays or changes the setting of the flag which causes term to apply a mask of 0x7F to all characters read during the term session. term iface flushwait [<#ms>] Default: 0 Displays or changes the number of milliseconds after which any non-newline-terminated input from the serial port, is flushed so that it becomes visible to the term user. The default value is 0, meaning that no flushing is done. A flushwait value of 500 ms is a good value to use when it is important to see, for example, login prompts that are not followed by a CR. term iface drop Deletes the interface from the list of interfaces accessible to term. The interface must not be in use by a term process. - Neil, VK2ANK, provided a way for a mailbox alias to invoke certain console commands. The console command must be prefixed by "@" to indicate it is not a mailbox command, and must not create a session or require any special permissions. Example: mbox alias pkst "@pkstat" - To make it easier to queue smtp messages from the console, I added a "mailmsg" command, that is compiled in when MAILMSG is #define'd. The syntax is: mailmsg [""] "" and serves to send email to with an optional subject header. The string becomes the body of the message. If begins with a forward or backward slash, or begins with a DOS drive specification, it is taken as the path to a file to be sent as the message body. - The finger daemon will no longer complain if Jnos was compiled with a cdrom callsign server, as long as the callsign server is not configured. Also, a new finger pseudo-user name, "help", will list available finger pseudo-users. Example: finger help@n5knx.ampr.org - Many improvements to ax.25 forwarding, including closing files after errors, validating FBB received checksums, and eliminating the "Huh?" loop that could result after certain forwarding errors. (from WA7NWP, KO4KS) - 'rdate offset #' command eliminated. Set the TZ environment variable before invoking Jnos, and this command becomes unnecessary. (from G8FSL). I corrected the comment in config.h for RDATE, to indicate that both a client and server are produced when RDATE is #define'd. - Two new commands are available to help limit loading of a Jnos server: smtp maxservers [N] establishes the maximum number of concurrent smtp server processes allowed. A value of 0 means no limit (other than memory!). ftpmaxservers [N] establishes the maximum number of concurrent ftp server processes allowed. A value of 0 means no limit (other than memory!). - The Jnos smtp server was changed to send the "250 Sent" response before it completes the local delivery, since large messages could take too long to process and lead to the smtp client disconnecting and retrying the same msg later. This is slightly less reliable, since if Jnos can't deliver due to, say, a full disk, the odds are it won't be able to requeue the msg for later delivery either! If you want the old behaviour, then #define RELIABLE_SMTP_BUT_SLOW_ACK in config.h when compiling Jnos. - Improvement in the Jnos DNS server, to handle large (> 512 byte) replies properly. (from K2MF). Also, a new (to Jnos) command, "domain query " was added to allow displaying on the console the results of a DNS query for . This command is available when Jnos was compiled with DQUERYSESSION #define'd in config.h. - Joe Soros provided changes to rip.c to improve the handling of subnets. - POP2SERV now compiles again. - PPP will now require PAP authorization from clients, if you use the command: ppp lcp local authorization pap Formerly, non-Jnos systems could bypass the pap phase. - Miscellaneous small fixes and improvements, see readme.knx for more details. 1.10M (960105) - 21st century dates are now supported (just in case we're still around!). - SMTP to AX.25-based forwarding enhancements. When a message is stored into an area, any @our_hostname string is stripped from the TO address, and the FROM address can be rewritten to any desired value. This last feature is enabled by the TRANSLATEFROM #define at compile time, and is controlled by the rewrite rules found in /spool/translat (by default). This file can be relocated by using the Translatefile keyword in nos.cfg, and the format is the same as for the rewrite mechanism. For example, suppose my from address is: James P. Dugal when I originate email from my Unix system. To rewrite it as n5knx@n5knx so that it appears to come from the local Jnos system, use the rule: jpd@usl.edu n5knx@n5knx To reject and return email from an undesired address, rewrite it to refuse. The message itself is not altered, as just the area's index is changed. - SMTP enhancement: if TIMEZONE_OFFSET_NOT_NAME is #defined at compile time, the message header timezone is written as a numeric offset from GMT instead of a zone name. From G8FSL. - SMTP, POP, and NNTP clients now handle very long lines properly. - Mailbox DM command displays the (/spool/)motd.txt file. You might want to add an alias named MOTD to invoke the DM command. - FBB forwarding now scans areas more intelligently, by remembering the msgid of the last msg processed successfully in each area. A distinction is made between interactive and BBS use of the same call. Also, a bug was fixed where non-compressed FBB forwarding grabbed too much memory! - Non-standard converse ports can be specified for remote links, like this: converse link|xlink [port] [name] The default port is 3600 for links, 3601 for xlinks (ie, LZW-compressed). As always, a converse server can be started on a non-standard port by specifying the port number in the start convers command. - Mbox kick will no longer force a connect if there is no data to send. To force a connect regardless (ie, do a poll), specify in uppercase. This change will permit the at command to be used to provide better control, when desired, of when forwarding is initiated. - "ax25 retry" command is now "ax25 retries" for consistency with other commands that use the plural form. Same for "domain retries". (from G8FSL) - The console shell and mail commands now work with BC4.x compilers, by using the system() call instead of the broken spawnvp(). - An ascii text editor is now included in the Jnos distribution. The editor, a clone of the Unix "ed" editor, is invoked from the console (or by a remote sysop) with the path to the file to be edited: edit c:/ftpusers This option is enabled by compiling with EDITOR and ED defined. It adds ~13 KB to the size of Jnos. Since a file is read into RAM, most probably only small files will fit (impossibly large files which would clearly reduce memory below the 'mem threshold' setting are always refused), but fortunately most Jnos config files are small. A quick glossary of ed commands is in cmdshlp6.zip; for more depth, consult a Unix reference book. Note that the GNU ed is a superset of this (old) version. - A full-screen console-only editor is available if Jnos is compiled with both EDITOR and TED defined. This editor is adapted from the TED editor and requires 5KB code and 16KB ram when invoked. It can handle up to 8KB files. Unfortunately it requires that the fkey command be used to provide appropriate codes from the function and editing keys. Suggested fkey commands are found in the editor helpfile in cmdshlp6.zip. I'm not really happy with this implementation, since some fkey definitions conflict with standard usage, ie, F9/F10 (Jnos session switching) and the cursor keys (telnet). See the suggested fkey commands for possible alternatives. Invoke TED by: edit - QRZ! cdrom callbook fixed to not truncate certain calls' info. - ax.25 improved to eliminate deadlock in the case where RNR is received but a subsequent RR is lost. (from K5JB) - POP2/POP3 servers will disconnect after 600 seconds with no command input. This can be changed by #defining POP_TIMEOUT nnn in config.h. - POP3 server no longer uses tmp files, and now opens mail folders much faster. Mailboxes will remain locked for the duration of a POP3 session. - POP3 client fixed to prevent a kick from yielding a redundant session, and from running outside of any defined time range set by 'pop addserver'. - The "mbox past flush" command was added, to free storage used to maintain a list of past mailbox users. This list could consume and fragment memory in Jnos systems that are rebooted infrequently. - The mbox REGISTER cmd now stores updated info immediately, rather than relying on a (neophyte) user to exit via the Bye command. - Dialer now accepts absolute paths to a script file. - Async serial interface server, term, ported from KA9Q nos. This server, enabled by TERMSERVER in config.h, lets a tcp connection to port 5000 (default) access a preattached interface, similar to the console tip command. New commands are: term ports [...] display or set accessible interfaces term password string defines an optional access password start term [port#] starts the server - "ip flush" command added, similar to ax25 flush. ipheard bugs fixed. - XMS code fixed to not crash when no XMS driver is available! This should solve some lockup problems reported on PC/XT systems. - Makefile changed to allow BC4 and 8086 to be selected together (N1BEE). - Many minor fixes and enhancements, from various contributors and N5KNX. See readme.knx for details. 1.10L (950925) - Compressed FBB forwarding with MSYS and NNA BBSes is improved. - Output redirection for non-session commands is now possible, by suffixing the command line with '> outfile' or '>> outfile'. Similar to MS-DOS and Unix, > means to create (by overwriting any existing file) the output file, and >> means to create (by appending to any existing file) the output file. This feature is enabled by compiling with REDIRECT #defined in config.h. Note that console commands that spawn sessions will not accept redirection. Also, to shell out to MSDOS to run a dos command and specify redirection, you must issue it like this: shell /c dos_cmd dos_args >outfile (note that no space occurs after the > [or >>]). This trick allows Jnos to not strip and parse the redirection, but rather lets MSDOS do it. - The status line's NNTP counter is incremented while we are an NNTP client of another server. Also, NNTP importation from SMTP messages has been fixed to not drop certain headers. (from KA1NNN and WY6S). - TRACESERVER feature has been fixed. - AX.25 connect digi path parsing has been improved to accept the syntax commonly used in TNCs: the via keyword, and commas between digipeaters, are allowed. (from K5JB) - AX.25 T2 (resptime) timer added. Its default is 1000ms, and minimum value is 0ms. This timer lets Jnos eliminate some redundant transmissions and optimize what it sends by possibly adding ACKs to I-frames. Set this timer by: ax25 t2 or ifconfig ax25 t2 . Use the latter command after has been attached. The tradeoff is: the larger the T2 value, the more efficient the transmissions, but the latency (delay) of transmitted packets will increase. A T2 value of 0 turns off this feature. (from K5JB) - 'mbox kick ' added, permitting a single bbs in forward.bbs to be polled (provided the time constraints in forward.bbs permit a connect). - Multitasking improved to not lose memory in certain circumstances. (from G8FSL). - "remark" command added, that writes its arguments to the current output stream. Similar to the MS-DOS echo command. Example: remark "Do: source \dial_usl.nos ... to dial USL and start PPP" - Multi-drop kiss ports can now be individually traced (from K5JB). - If .doc exists when a user first visits an area, its contents are displayed. The AF command will also display this file if it exists. Example: AF amsat will display /spool/mail/amsat.doc if it exists. USERLOG must be #defined to know when an area is first visited. This feature is intended to allow more info for a particular area to be maintained, and not clutter the /spool/areas file. - 'mbox utc N' command dropped. The offset of local time from UTC is now obtained from the TZ variable, which should be set in your autoexec.bat file (example: set TZ=CDT5 -or- set TZ=UTC0). - 'mbox ifilter [on|off]' command added: when this flag is set, it causes unexpected I-frames sent to mycall to be ignored, eliminating spurious mbox spawnings reported in some regions using ROSE switches. (K5JB) - bootp bug which truncated our IP addr fixed - the converse server no longer requires the Personal-info file to pre-exist in order to be updated. Also, long '/who q' lines are handled properly. - HP95 may be #defined in config.h to allow compilation for the hp95 (but you must carefully choose the options you enable so jnos fits). (WA7TAS) - Bug fixed where the Jnos DNS server returned invalid data. - 'tcp clean' command added, to reset all connections in a FIN wait 2 state (to free up our resources when a client has improperly disconnected). (from Selcuk Ozturk). - The mailbox Connect command is now transparent, if the Escape character is turned off. This should permit, for example, FBB compressed forwards via a Jnos system. Formerly, only digipeating was transparent. - The mailbox will allow both BS and DEL characters to act as correction characters, and telnet option processing was improved to eliminate loops. (inspired by Selcuk). Also, the --more-- prompt handling is improved to work with Linux (and probably other) telnet clients (from KF8NH). - SMTP MX mail loop possibility eliminated. Also, outbound SMTP connections which go idle longer than the smtp T4 timer setting, will be closed. - Mail index entry-length validation added, to detect damaged indices as early as possible. Consult the log for notices of index damage. Most damage can be handled by re-indexing an area via the index command. - Long lines typed into the split-screen input window no longer crash Jnos. - 'ax25 route perm []' command added. It is like the 'ax25 route add ...' command, except the route will not be changed automatically. AX.25 routes created using the 'ax25 route add' command are now subject to change based on the path found in incoming connect requests. - The mail2ind program now has another option: -m. It serves to display the highest msgid number found while rebuilding index files, and can be used to correct the value stored in /spool/mqueue/sequence.seq. When the stored value has been improperly reset, you will find Jnos always claims there are "0 new" messages when certain areas are visited. After the sequence.seq file is repaired, you should also delete all /spool/mail/*.usr files so they will be regenerated correctly. To produce the mail2ind.exe program, type: make mail2ind To run it, exit Jnos and type: mail2ind -m There are other options; in particular, -d which is used to specify an alternate location for your /spool/mail subtree. - A new command, "mbox maxusers N" lets the sysop limit the number of simultaneous mailbox connections allowed. The default is 0, which disables this feature. - Finger daemon's display of info from the users.dat file is now shown in two lines. Also, a new pseudo-user, "usersdat", will result in all user entries in /spool/users.dat being displayed. (inspired by KC6A) - An ip address may be routed to the loopback interface, which causes pkts sent to this addr to be dropped, and a HostUnreachable error to be returned. This thus acts as a bit-bucket interface. (from K2MF) - Minor fixes and enhancements, from various contributors and N5KNX. See readme.knx for details. 1.10k (950704) - Compressed FBB forwarding is now possible. You must #define BOTH FBBFWD and FBBCMP in config.h. You should expect the size of Jnos to increase by 15KB, and that each FBB session using compression will need an additional 20KB (obtained from UMBs (if available and XMS was #defined) or from the heap. This implementation was adapted from KF5MG's mgfbb05a distribution. You can increase the detail of FBB transaction logging by compiling with FBBVERBOSELOG defined, and setting 'mb trace on'. - QRZ display of British calls improved, and some db scanning bugs fixed. - Jnos '-b -u0' flag combination fixed to use the bios for screen output. - SMTP BidCheck command deleted. This version will now ignore messages in the SMTP queue which it finds to have duplicate bids. In no case will Jnos bounce msgs back to the sender claiming a duplicate bid was found. - Bids created for messages that arrived via SMTP was changed so we can detect duplicates even if the same message was gatewayed to ax.25 networks by other Jnos systems. Updates of the bid history file are now protected by a lock file. - 'ifconfig RXECHO' commands can now be specified for multidrop KISS ports. From VK1ZAO. - ftp client memory leaks corrected. From K5JB. - rdate command rewritten. By Selcuk Ozturk. - 'finger pkstat@jnos.host.name' added. - AXUI command now allows /t to toggle the header timestamp display, and several bugs fixed. From Joe, K5JB. - EXPN smtp verb implemented differently, and VRFY verb added as a synonym. - NNTP server now handles NEWGROUPS and DATE verbs (from G8FSL). - Help files for aliases can now be read by the mbox H command. Put the file into \spool\help with the other mbox help commands. - Dialer improved. - Minor fixes and enhancements, from various contributors and N5KNX. See readme.knx for details. 1.10j (950520) - "rlogin" server changed to "rsysop" to better show that is is NOT a BSD-Unix-style rlogin server, but instead is for remote sysop access. - 80386 compilation problems with timers fixed. - mailbox PIng and Finger commands now require Telnet permission to work. If this is not desired, compile with MBOX_PING_ALLOWED #defined, and/or MBOX_FINGER_ALLOWED #defined. - XMS memory managers are now supported (for the saving of session screens). Thus the XMS define now works, and the -m1 command-line option will work. Use of UMB ram is now possible, and is used by qrz code. - The root directory of a CDROM is now accessible via ftp (if permitted in ftpusers). - The SC mailbox command, and the handling of smtp msgs with multiple destinations, is improved. Different bids are produced for each SC destination, so ax.25 forwarding will work (SMTP always did work). - FLEXNET packets no longer crash Jnos. - Expire will keep the NNTPS history file locked longer, to prevent trashing of the active file. NNTP service will thus be down while expire is running. - One last (I hope) change to eliminate the occasional empty bulletin sent during FBB forwarding under load. - "domain maxclients [N]" added to limit loading while acting as a DNS (from G8FSL). - SMTP dtimeout command added, to specify how long a msg stays in the mqueue, being retried at 'smtp timer' intervals (unless low on memory, or maxclients is too constraining, etc.), until we give up and return it to sender. Syntax: smtp dtimeout [] Setting hours to zero (the default) disables this capability. (from Selcuk). - AXUI console command added, to permit UI (unproto) packets to be sent and monitored. Usage: axui [unproto_call] (from KO4KS). A split-screen session is created where possible. AXUISESSION must be defined in config.h to generate this code. An axui session also allows a few commands: /c newcall change the unproto call to /i iface change to interface /? or /h display a help message /q, /b, /e close the axui session. - Tracing may be made to a remote sysop who has either become sysop via the mailbox '@' command, or telnetted to port 1236. The latter requires TRACESERVER be defined in config.h. The sysop must issue the trace cmd as usual, and MUST be connected to an interface sufficiently faster than the interface being traced. From WG7J. - Packets received on one interface can be copied to another like interface, by the command (provided RXECHO was defined in config.h): ifconfig rxecho {off | } This code is from Johan, WG7J, who cites two interesting applications: Case 1: You have two machines connected to each other via a kiss link. Only pc1 has radio's. You want to 'listen' to a radio channel on pc2. Thus, on pc1, you add: ifconfig rxecho Now on pc2's kiss interface to pc1, you will receive all packets heard on pc1's . If you then add to pc1: ifconfig rxecho all packets received by pc1 on kiss-interface (ie. coming from pc2) will be send out on radio-interface. Ie. for pc2 it looks like it is directly connected to radio-interface, as if pc1 isn't there! Case 2: Say you have a gateway pc with radio's, and another pc with ethernet connected. You can monitor radio channels on the ethernet pc by setting up an axip link between the gateway and the pc ('attach axip ...' and then use the scheme above between the radio port and the axip port on the gateway machine. Note that you can monitor multi ports, although you will not be able to know what port a certain packet originated from. You can NOT go transparent to more then one port, since an interface can only forward received data to one interface. Note also that you can monitor frames on fast ports (eg. Ethernet) but NOS might become more unstable when doing so, because of the large workload. - QRZ displays improved to handle the Winter '95 database better. No attempt is made to display the century. International call lookups work. - The April 1995 Buckmaster Hamcall CD is supported via the BUCKTSR define in config.h. Buckmaster provides the needed TSR driver in BUCKTSR.ZIP, available from the "usual ftp sites" (or contact Buckmaster directly). A new command is needed: callserver2 tsrirq which specifies which software IRQ the driver uses. In decimal!! - Handling of ridiculously long calls and IP addresses should be improved. - Multi-line smtp (ie RFC822) header handling is improved. - Convers module replaced by N2RJT's enhanced version. Many configuration options are controlled by #defines: #define XCONVERS 1 /* LZW Compressed convers server and links */ Socket 3601 implies use of LZW-compressed links. JNOS's LZW compression is unstable over long term, so this should be viewed as experimental. #define CNV_VERBOSE 1 /* Verbose msgs */ Converse msgs can be longer instead of terser, at the expense of more RAM and bandwidth used. #define CNV_CHAN_NAMES 1 /* Convers named channels */ Channels can have names, if the sysop puts them in channel.dat file. The format is simple: each line contains a number followed by a space and a channel name. All linked convers nodes should use the same names! #define CNV_CALLCHECK 1 /* Convers only allows callsigns */ Some people like this, others don't. It forces the name used in convers to be a Ham callsign. #define CNV_LOCAL_CHANS 1 /* Convers local channels and msg-only channels */ Local channels only allow chatting on local node, ie, the data are not sent to linked convers servers. Msg-only channels only allow /msg traffic. Nice for when you step out for a few minutes. #define CNV_ENHANCED_VIA 1 /* If convers user is local, "via" gives more info */ For the /who output, if the user is local, use the otherwise blank "via" field to show how the user is connected. If ax25, show the port name. If netrom, show the node name. If telnet, just say telnet, since his domain name won't fit. #define CNV_CHG_PERSONAL 1 /* Allow users to change personal data permanently */ Enables the CONVERS SETINFO command, which allows changes made with the /personal command to be stored permanently in dbase.dat. Nice for lazy sysops. #define CNV_LINKCHG_MSG 1 /* Send link-change messages in convers */ Sends a message on all channels alerting local users whenever a link to another convers is added or dropped. When a link is dropped, all of the lost users are listed on one line (or more..) instead of showing "XXXXX signed off" for each individual. - other misc. fixes and improvements; see readme.knx for details. 1.10i (950301) - Exit command can now return an error code to Jnos' caller. This permits a batch file to invoke Jnos and then test the errorlevel to take various actions depending on the numeric value given the exit command. - AT and other timers are now accurate over long periods. Repetitive AT commands no longer run twice! - Local message IDs may now grow to eight digits. This does not affect BIDs or MIDs, but will result in more consistent reports of the last msg read. - Remote sysop can no longer issue the Shell command without args, or the Mail command, thus avoiding an accidental lockup. - (rare) Problem with locally-originated bulletins being duplicated is fixed. - Tail command now uses all but seven lines of the console screen (PE1DGZ). - Various fixes to the FBBFWD code: process destination field from forward.bbs, eliminate memory leak, fix occasional msg truncation or corruption. - Digipeater string now handled for ax.25 connect lines in FORWARD.BBS file. - Many packet driver fixes, and new PKSTAT command, from G8FSL. PKSTAT will display the number of errors communicating with the packet driver, and statistics reported by many packet drivers. - FTP fixes: diagnose CWD to a non-directory. Correct binwarn msg. Add PASV support. Eliminate automatic sending of message.ftp and desc.ftp files if the ftp passwd begins with '-'. The DIR output can be made Unix-style if UNIX_DIR_LIST is #defined. An '=' before a pathname in the ftpusers file will now indicate which dir is to be the initial dir. (from Selcuk, G4IDE, WA3DSP et al) Example: anonymous * /pub/wr_only 2 /pub/rw_del 7 =/pub 1 in FTPUSERS allows the initial directory to be /pub, with Read access, but also permits a cd to subordinate dirs where different access modes are specified. - Monitor-style tracing (code 3) will contain date/time if MONSTAMP defined. Also, fix tracing of AX.25 packets when NO_BCSTS trace flag is set. - SMTP client will now refuse (code 550) msgs that REWRITE maps to "refuse". - New PI card driver, from VE3JF. - POP2 and POP3 servers now send multi-line output more efficiently, and lock the user's mailbox during updates (from Selcuk). - Some console Help files updated ... see cmdshlp2.zip. - dumpdate program added to display USER.DAT & bid HISTORY files. Usage is: dumpdate [-v] file_path where -v implies a verbose display, and the file path defaults to /spool/user.dat. dumpdate.exe is obtained by: make dumpdate - other misc fixes and improvements, see readme.knx for details. - developers looking for memory leaks may benefit from the memlog facility. See memlog.c for details. 1.10h (941201) - FBB batched forwarding added (by KF5MG). Enabled if FBBFWD is #defined in config.h. THIS IS A PRELIMINARY VERSION ... more to come later. - XP setting remembered and restored at subsequent connects (by DL1BJL). - MBOX RESET command added (by N2RJT). Forces a disconnect from the mailbox of the indicated callsign. - Xpert-mode prompt now contains current message number. - Color tracing enabled via -gN command-line option. N=0 is the default, and N=1 is for grey-scale monitors, and N=2 for color monitors. N=1 or 2 assumes ANSI.SYS was loaded. By PE1DGZ. - AX.25 users can be prompted for login name and password, if AX25PASSWORD is defined in config.h. (KF5MG) - More files added to CMDSHELP.ZIP. Some files updated, too. - Protocol-specific permissions name checked in ftpusers (and is used instead of univperm): (N2RJT) tcpperm - telnet login to mailbox ax25perm - ax.25 login to mailbox nrperm - netrom login to mailbox confperm - convers signin pppperm - PPP's call to userlogin ftpperm - ftp login tipperm - tip login to mailbox - Sessions can be toggled between single and split screen, by using the "session N split on|off" command (N2RJT). - Status line counters extended to include SMTP, NNTP and POP sessions, and are not displayed when zero (KD1SM). - A asy interface may now have bpq-style checksums added and checked on KISS packets if the interface was attached with the attach flag "c". The format of the attach command is: attach asy ax25