JNOS
COMMANDS MANUAL
JNOS-2.0fB
by
Kevin Roberts W1NGL / GW1NGL
Last Modified on 11/26/2007 05:31 PM
A derivative of the JNOS Robert Fahnestock WH6IO and James P. Dugal N5KNX
A derivative of the JNOS Commands Manual by Johan K. Reinalda and Douglas E. Thompson
(based in part on the NOS Reference Manual, by Phil Karn, KA9Q and Gerard van der Grinten, PA0GRI)
DISCLAIMER
-----------------
The authors make no guarantees, explicit or implied, about the functionality or any other aspect of this product.
Refer to the manuals provided by the manufacturer of your equipment for installation procedures.
TABLE OF CONTENTS;
axui <iface> [<unpronto call>][digipeater string]]
callserver2 [<hostname> <port>]
comm <asy_iface> <"text-string">
connect <iface> <destination> [<digi1,digi2...digin>]
etelnet <host> [<port_number>] loginid password
finger <username [@host] > [<username [@host]>...]
ftype
ftpclzw
ftpslzw
ftpmaxservers
ftptdisc
kick
lock [password "<password_string">]
look [user | socket#] (/<cmd>)
lzwlink
mailmsg <to_addr> ["<subject"] <msg | /path>
nrstat
ping <host> [<length>] [<repeat_ms> [incflag>]]]
rename <old filename> <new filename>
repeat [milliseconds] command
reset
sessmgr
strace
ttylink <host> [<port_number>]
third-party
tip
upload
write <username|sock#> <message>
APPENDIX A JNOS MAILBOX USER COMMANDS
APPENDIX B FTPUSERS PERMISSIONS
APPENDIX C FORWARD.BBS
APPENDIX D OF PACLEN, MSS, MTU and more
APPENDIX E Information Files
Unix is a Registered Trademark of AT&T.
NET.EXE program (C) Copyright 1992 by Phil R. Karn, KA9Q.
JNOS is based on work (C) Copyright 1991 by Phil R. Karn,
KA9Q, and other contributors.
JNOS (C) Copyright 1994 by Johan K. Reinalda, WG7J
MS-DOS is a registered trademark of Microsoft, Inc.
NET/ROM software (C) Copyright 1987 Software 2000, Inc.
NET/ROM is a trademark of Software 2000, Inc.
OS/2 is a registered trademark of International Business Machines, Inc.
Windows 3.0, Windows 3.1, Windows NT, and Microsoft Word are all registered trademarks of Microsoft, Inc.
This document addresses the JNOS command set. This manual is current as of the version indicated on the title page. Prior versions of commands or commands which have been deleted are not included. Also, this document addresses only the commands that are available in the N5KNX (previously the WG7J) distribution compile (uses distconf.h). Information about commands for other modules which are not included in the "standard" N5KNX compile may be found via online help (if command help files were installed on disk) or in the readme.now file.
The user interface for JNOS is very similar to most of the well-known BBS programs. This is to provide an easy transition for users. The user interface in the JNOS program is commonly called the 'mailbox' or bbs. These terms will be used interchangeably throughout this document when describing commands.
This Commands Manual contains the commands and their descriptions for using and operating a JNOS tcp/ip and ax.25 packet switch, BBS, and network node. Also contained in this manual is information about the FORWARD.BBS, REWRITE, ALIAS, and USERS files used in a JNOS installation.
Questions, remarks and suggestions about JNOS are welcome and should be
sent to:
email: kevin AT w1ngl.us (or packet W1NGL@W1NGL.OR.USA.NOAM)
Here are some of the abbreviations and terminology used throughout this manual.
HOSTNAME is the tcp/ip name of a computer or packet system.
INTERNET is a worldwide high speed computer network. It has thousands of computers at schools, companies and amateur packet radio systems connected to it.
MTU, or Maximum Transmission Unit, is the maximum data size in one packet. Most often the data referred to by MTU is the transported data, i.e. data frame in a network connection. With tcp/ip, the size of the tcp/ip frame inside the ax.25 packet is the MTU; with net/rom, the size of the data inside the netrom packet is the MTU.
NRS, or Net/Rom Serial protocol, is what TNCs with Net/Rom or TheNet eproms talk on the serial port.
NODE, and MAILBOX are terms used interchangeably for the user interface when connected to the system.
PACLEN, or packet length, is most often used to refer to data size in a link packet. The data in an ax.25 packet can be up to paclen bytes.
PORT or INTERFACE means the physical connection to a radio or other system (i.e., radio port or serial interface). These two terms are used interchangeably.
RFCs, or Requests For Comment, are standard papers used on Internet to discuss and propose new networking protocols and other related topics.
RSPF, or Radio Shortest Path First, is a tcp/ip routing protocol especially targeted at radio environments.
RTT, or Round Trip Time, indicates the time needed for data to be sent and acknowledged.
SLIP, or Serial Line IP, is a way to send IP frames over a serial port without using ax.25 or Ethernet to carry the data. You can use SLIP to connect to PCs or Unix systems also running SLIP, and interchange tcp/ip data.
PPP, or point-to-point protocol, is an alternative to SLIP, that has the advantage of automatically configuring IP addresses, compression, and MTU.
There are several command line options which can be exercised when starting JNOS. These commands are used to set environment variables, select configuration and autoexec files, and other functions. Options should be separated by tabs or spaces. If there is an option argument, there should NOT be any whitespace between the option and the argument. The only option not preceded by '-' is the alternate startup file
-b : Use direct video for the screen output.
-c# : Set the number of COLUMNS on the screen to #.
-drootdir : Set the root directory for the configuration file
: path. This is overwritten by the file specified
: in the -f option configuration file.
-e : Pause after each error line in autoexec.nos
-fnos.cfg : Set JNOS config file and path names as indicated
: in the 'nos.cfg' file. This overrides the -d option.
-gn : Set trace colors, when tracing to console (ANSI.SYS needed):
: n=0 => none (default)
: n=1 => tailor to gray-scale monitor
: n=2 => tailor to color monitor
-i : always re-index mail files at startup
-I : never re-index mail files at startup (instead, test at 1st access)
-l : Do NOT delete .lck files in the mail and news subdirectories
-mn : Set the default screen swap mode.
: n = 0 Use EMS (If compiled in and available.)
: Default is EMS Available
: n = 2 Use memory. (Default if NO EMS 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 each line from autoexec.nos before parsing.
-wf+b : Set foreground/background colors for system status
: default: white on magenta
-xf+b : Set foreground/background colors for session status
: default: white on blue
-yf+b : Set foreground/background colors for 'main' window
: default: the system colors when JNOS starts.
: (most often lightgray on black) :
-zf+b : Set foreground/background colors for 'split' window
: default: white on green
: 0=black
: 1=blue
: 2=green
: 3=cyan
: 4=red
: 5=magenta
: 6=brown
: 7=white/gray
autoexec.new : Name of the startup file. Default is 'autoexec.nos'
: or as set with -fnos.cfg
UNIX additions to the command-line arguments:
-C : allow core files to be created following certain errors
-D : disallow the interval timer...testing vestige from 1.09 JNOS
-Smgr:o : set the default session manager to <mgr>, with options <o>
-Tmgr:o : set the default trace session manager to <mgr>, with options <o>
JNOS now has a (up to) 3-line status display which shows:
On the first line:
time, heap and core free memory, number of connections to the different servers. Then a list of active sessions, where sessions with data waiting are blinking.
The 2nd line shows:
the users connected to the bbs. A status symbol in front means one of the following:
none - user is idle
* - user is a bbs
@ - user is in sysop mode
! - user has gatewayed out
# - user is reading or sending mail
= - user is transferring data (up/download)
^ - user is in convers or sysop-chat mode
? - use is in none of the above, but not idle...
Eg: BBS: *w0rli johan #ka7ehk !n7ifj
(lines 1 and 2 are the 'system' window)
On the 3rd line is data depending on the current session.
Always displayed are the current session number and type.
If the sessions are network connections, displayed are remote connection name, tx-queue (bytes for tcp, packets for ax.25), and state of the connection. It then shows the retry timer, with current time left, and initial value.
In 'repeat', 'more' or 'look' sessions, the 3rd line show the command, filename or user/socket for the session.
The number of status lines displayed can be set with the '-uX' commands line option. '-u0' turns it off. Default is '-u3'
NOTE: if tracing is enabled, this will 'bleed' through the status window.
This is NOT a bug, but is inherent to the way tracing works in JNOS. (It would take a major rewrite to fix.) The status window will be rebuilt about twice a second to overcome this.
This section describes the commands recognized. Syntax is:
command
command literal_parameter
command subcommand <parameter>
command [<optional_parameter>]
command a | b
Many commands take subcommands, parameters, or both, which may in turn be optional or required. In general, if a required subcommand or parameter is omitted, an error message will summarize the available subcommands or required parameters. (Giving a '?' in place of the subcommand will also generate the message. This method is useful when the command word alone is a valid command.) If a command takes an optional value parameter, issuing the command without the parameter generally displays the current value of the variable. (Exceptions to this rule are noted in the individual command descriptions.)
Two or more parameters separated by vertical bar(s) '|' denote a choice between the specified values. When one of the choices is default, that choice will be in UPPERCASE. Optional parameters are shown enclosed in [brackets]. Parameters enclosed in <angle brackets> should be replaced with actual values or strings. The generic notation for number values is <nnnn>, and for string values, it is <string_id>.
For example, the notation <hostname> means the actual host or gateway callsign or id. Numerical defaults are explicitly stated as such, e.g., "Default = 7."
All commands and many subcommands may be abbreviated. You only need type enough of a command's name to distinguish it from others that begin with the same series of letters. Parameters, however, must be typed in full.
All commands are printed in bold (if you have the version of this document that supports fancy formatting), and most commands have an example following the textual description of the commands.
The following section contains the comprehensive set of commands for JNOS.
<CR>;
Entering a carriage return (empty line) while in command mode puts you in converse mode with the current session. If there is no current session, JNOS remains in command mode and reissues the 'jnos>' prompt.
!;
An alias for the shell command.
To enter Sysop Mode:
example of a password set to states
@
3 0 2 4 0
your response is:
tsaes
@
<CR>
<CR>
Type 'exit' to return
2316 Jnos>
#;
Commands starting with the hash mark (#) are ignored. The hash mark is mainly useful for comments in the autoexec.nos.
?;
Same as the 'help' command.
abort [<session #>];
Abort a FTP get, put or dir operation in progress. If issued without an argument, the current session is aborted. (This command works only on FTP sessions.) When receiving a file, abort simply resets the data connection; the next incoming data packet will generate a TCP RST (reset) response to clear the remote server. When sending a file, abort sends a premature end-of-file.
Note that in both cases abort will leave a partial copy of the file on the destination machine, which must be removed manually if it is unwanted.
arp;
Display the Address Resolution Protocol table that maps IP addresses to their subnet (link) addresses on subnetworks capable of broadcasting. For each IP address entry the subnet type (e.g., AX.25), subnet address and time to expiration is shown. If the link address is currently unknown, the number of IP datagrams awaiting resolution is also shown.
arp add <hostid> ax25 | netrom <callsign> <iface> or arp add <hostid> ether | ax25 | netrom | arcnet <ether_addr>|<callsign> <iface>
Add a permanent entry to the table. It will not time out as will an automatically created entry, but must be removed with the 'arp drop' command.
arp add 44.26.0.19 ax25 wg7j-2 port1
arp drop <hostid> ax25 | netrom <iface> or arp drop <hostid> ether | ax25 | netrom | arcnet <iface>
Delete a permanent entry from the arp table.
arp delete 44.26.0.19 ax25 port1
arp eaves [<iface>] [on | OFF]
Display or set the 'arp eavesdrop' function per interface. If set, all arp replies overheard on the interface will be logged in the arp table. This speeds up arp discovery, but might build a huge arp table taking up lots of memory. Default for each interface is off.
# Set arp eavesdrop on interface port1
arp eaves port1 on
Drop all automatically-created entries in the ARP table; permanent entries are not affected.
arp maxq [n]
Display or set the maximum number of packets to be buffered waiting for an arp resolution to finish. Default = 5.
arp maxq 5
arp poll [<iface>] [on | off]
Display or set the 'arp keepalive polling' per interface. If set, when an arp entry expires, a query will be sent for the address. This keeps the arp table fresh, but possibly retains many unneeded entries.
arp poll port1 on
arp publish <hostid> ax25|netrom <callsign> <iface>
This command is similar to the 'arp add' command, but the system will also respond to any ARP request it sees on the network that seeks the specified address. (Use this feature with great care!)
arp publish 44.26.1.19 ax25 wg7j-2 port1
arp sort [ON | off]
Sorts the arp display.
automatic position reporting system
No info or Help File
automatic position reporting system
No info or Help File
Display statistics on attached asynchronous communications interfaces (8250 or 16550A), if any. Example:
tnc: [NS16550A] [trigger 0xc0] [rlsd line control] 19200 bps [@ 3f8,4] RX: 929462 int, 3683653 chr, 0 hw over, 6 hw hi, 17210 fifo TO, 0 sw over, 126 sw hi TX: 946381 int, 7400204 chr, 0 q, 79401 MS int, 40 THRE TO
tnc2: [NS16550A] [trigger 0xc0] 9600 bps [@ 2f8,3] RX: 722895 int, 2865467 chr, 0 hw over, 8 hw hi, 13075 fifo TO, 0 sw over, 248 sw hi TX: 246420 int, 1889156 chr, 0 q, 1 MS int, 16 THRE TO
The display for each port consists of three lines. The first line gives the port label and the configuration flags; these indicate whether the port is a 16550A chip, the trigger character if any, whether CTS flow control is enabled, whether RLSD (carrier detect) line control is enabled, the speed in bits per second, and the port address and IRQ number in hexadecimal.
(Receiving the trigger character causes the driver to signal upper layer software that data is ready; it is automatically set to the appropriate frame end character for SLIP, PPP and NRS lines.)
The second line of the status display shows receiver (RX) event counts: the total number of receive interrupts, received characters, receiver overruns (lost characters) and the receiver high water mark. The high water mark is the maximum number of characters ever read from the device during a single interrupt. This is useful for monitoring system interrupt latency margins as it shows how close the port hardware has come to overflowing due to the inability of the CPU to respond to a receiver interrupt in time. 8250 chips have no FIFO, so the high water mark cannot go higher than 2 before overruns occur. The 16550A chip, however, has a 16-byte receive FIFO which the software programs to interrupt the CPU when the FIFO is one-quarter full. The high water mark should typically be 4 or 5 when a 16550A is used; higher values indicate that the CPU has at least once been slow to respond to a receiver interrupt.
When the 16550A is used, a count of FIFO timeouts is also displayed on the RX status line. These are generated automatically by the 16550A when three character intervals go by with more than 0 but less than 4 characters in the FIFO. Since the characters that make up a SLIP or NRS frame are normally sent at full line speed, this count will usually be a lower bound on the number of frames received on the port, as only the last fragment of a frame generally results in a timeout (and then only when the frame is not a multiple of 4 bytes long.)
Finally, the software fifo overruns and high water mark are displayed. These indicate whether the <bufsize> parameter on the attach command needs to be adjusted (see the Attach Commands chapter).
The third line shows transmit (TX) statistics, including a total count of transmit interrupts, transmitted characters, the length of the transmit queue in bytes, the number of status interrupts, and the number of THRE timeouts. The status interrupt count will be zero unless CTS flow control or RLSD line control has been enabled.
The THRE timeout is a stopgap measure to catch lost transmit interrupts, which seem to happen when there is a lot of activity (ideally, this will be zero).
The "asystat" command for UNIX JNOS is somewhat different from the DOS
version. Example:
144.99: cua0, 9600 bps, packet size 255, RTS/CTS disabled, carrier disabled
RX: ints 2 chars 73 puts 2 rxqueue 5 qlen 0 ovq 0 block 0 buf 1024
TX: ints 1 chars 57 gets 0 txqueue 2 qlen 0 ovq 0 block 0
linux: ttype, 38400 bps, non-blocking, RTS/CTS disabled, carrier disabled
RX: ints 0 chars 0 puts 0 rxqueue 2 qlen 0 ovq 0 block 0 buf 1024
TX: ints 0 chars 0 gets 0 txqueue 2 qlen 0 ovq 0 block 0
ints is the number of times pwait() returned control to the rx or tx task, indicating that select() detected pending data on input or a packet became available for output.
chars is the number of characters read/written.
puts number of times received data was placed in the packet Hopper.
gets number of times data was taken out of the send queue and written to the device.
rxqueue is described in the asyconfig command helpfile.
txqueue is described in the asyconfig command helpfile.
qlen is the instantaneous queue size (number of packets).
ovq is the number of times queue flow control (described in asyconfig) was triggered.
block is the number of times read/write tried to block (in the case of reads, the number of times it tried to block after data was claimed to be available).
buf is the current receive buffer size, as specified in the attach statement or the "asyconfig" command.
The 'at' command is used to provide automatic starting of other JNOS commands at predetermined times.
at
This form displays each scheduled at command and its id number, so that 'at kill n' can be used (see below).
at time <cmd>
time takes the form yymmddhhmm (specific date/time)
hhmm (next occurrence of this time)
whhmm (next occurrence of this time on specified weekday. 0=Sun,1=Mon,..., 6=Sat)
mm (mm mins after next hour)
now+hhmm (offset from present time)
<cmd> is any legal JNOS command. Multiple word commands must be enclosed in double quotes (" "). Commands which invoke the DOS shell must include '!' or shell as the first word in order for JNOS to recognize that an external command is to be invoked. If the external command requires the command processor, then "/c" may be given as the second word. Example: "! /c x.bat>> e:foo".
To automatically reissue the at command when the timer matures, append a "+" character to the <cmd> string.
Example: at 0130 "! cleanup+"
Example: at now+0100 "ax25 flush+"
Example: at 0600 "writeall \"Il est 6h00 GMT\"+"
at k <id_num> [<id_num>...]
This form of the 'at' command kills (i.e., deletes) jobs <id_num>...
No Info or Help File
attach <hw_type> <io_addr> <vector> <mode> <label> <bufsize> <mtu>[<speed>]
Configure and attach a hardware interface to the system. Detailed instructions for each driver are in the Attach Commands chapter. An easy way to obtain a summary of the parameters required for a given device is to issue a partial attach command (e.g., attach asy). This produces a message giving the complete command format.
<hw_type> is the kind of I/O device being attached to the system. Choices include asy, kiss, packet, netrom, scc...
<io_addr> is the base address of the control registers for the device.
<vector> is the interrupt vector number. Both the address and the vector must be in hexadecimal. You may put "0x" in front of the numbers, but they will be interpreted in hexadecimal even without the prefix.
<mode> controls how IP datagrams are to be encapsulated in the device's link level protocol.
Choices include ax25, slip, pkiss, nrs, ppp...
slip Encapsulates IP datagrams directly in SLIP frames without a link header. This is for operating point-to-point lines and is compatible with 4.2BSD UNIX SLIP.
ax25 Similar to slip, except that an AX.25 header and a KISS TNC control header are added to the front of the datagram before SLIP encoding. Either UI (connectionless) or I (connection- oriented) AX.25 frames can be used.
pkiss Similar to ax25, except that packets are checksummed and the interfaced devices are queried (polled) regularly for data. Used by G8BPQ polled-kiss software.
nrs Similar to ax25, except that packets are transmitted only when permitted by flow-control signals. Typical of Netrom node stacks using Netrom serial protocol.
ppp Similar to slip, except the protocol is different and typically is capable of compression.
<label> defines the name by which the interface will be known to various commands, such as "connect", "route", "trace", etc.
<bufsize> For ASYNCHRONOUS PORTS, specifies the size of the ring buffer in bytes to be statically allocated to the receiver, incoming bursts larger than <bufsize> may cause data to be lost.
For ETHERNET, specifies how many PACKETS may be queued in the receive queue at one time. Excess packets will be discarded as they are received. This is useful to prevent the system from running out of memory should another node suddently develop a case of diarrhea.
<mtu> is the Maximum Transmission Unit size in bytes. See the section 'Of PACLEN, MTU, MSS, and More' in Appendix D forr a discussion of the effect of MTU on system performance.
attach asy <io_addr> <vector> <mode> <label> <bufsize> <mtu>[<speed>] [<flags>]
Configure and attach a standard PC asynchronous I/O port using the National 8250, 16450, or 16550(A) chip or equivalent to the system, where:
<io_addr> is the comm port address; e.g., com1 = 0x3f8
<vector> is the comm port IRQ value. If it is suffixed by "_C" then the interrupt service routine for this port is chained to the server list for this IRQ.
<mode> one of: slip, ax25, ppp, pkiss, nrs
<flags> string of characters, specifying options:
c - do BPQ checksumming of ax.25 kiss packets
v - do Van Jacobson TCP header compression on slip intfc
f - force use of 16550a uart features (eg UM16C550 chip)
fN - set 16550a trigger level to N (1,4,8, or 14. Default=4)
n - use NRS-CTS protocol on nrs interface
Flag for_mode #define_needed_in_config.h
c ax25 AX25 and POLLEDKISS
v slip SLIP and VJCOMPRESS
n nrs NRS
f (any) ASY
The UNIX version of "attach asy" is slightly different, such that:
<io_addr> is the Unix device name, e.g., cua0 or ttyS2.
<vector> is ignored presently.
<flags> include c,v,f, and n. The fifo trigger level flag, "fN", is reinterpreted as providing a packet size. The value can range from 0 to 255; if it is 0, the original input mechanism is used, otherwise blocking reads are used with termios VMIN set to the specified value. At the moment there is no error checking; if you set the buffer size smaller than VMIN you could lose incoming data. Under some unix versions, setting it to anything other than a multiple of VMIN could cause problems. The tradeoff here is that when the VMIN mechanism is used, input could be delayed by up to 1/5 second on a mostly quiet channel, but on an active channel JNOS will use *much* less CPU time and generally will be much more efficient.
attach axip <iface> <mtu> <ipaddress> [<callsign>]
Create a RFC1226 compatible AX.25 frame encapsulator for transmission of AX.25 frames over the IP. This command is used to establish a point-to-point AX.25 'tunnel' between two systems.
<iface> will be the name of the new interface,
<mtu> is the maximum transmission unit for the interface,
<ipaddress> is the address of the system on the other side of the 'tunnel,
<callsign> is the optional AX.25 callsign this station is listening on for frames to digipeat. Note that if you want cross-tunnel digipeating to work, each attached axip interface should listen to a different callsign. These should also be different from other callsigns used on this station.
attach axip axip1 256 44.26.1.19 WG7J-15
attach kiss <asy_iface_label> <port> <label> [mtu]
Attach a second kiss interface on the serial port. This command allows the use of multiport TNCs. The first port should be attached by a prior "attach asy ..." command with <mode> set to ax25 or pkiss. Use pkiss if G8BPQ polled kiss mode is desired. It is up to the tnc's firmware to select which port is at what baud. For example, the KPC9612 uses the MYDROP command for this purpose.
<asy_iface_label> is the name of the serial port interface.
<port> is the port number (1-15) to use, and probably should be 1. (the original asy port is automatically port 0 !)
<label> is the name for this second kiss port.
<mtu> is an optional mtu, if different from the mtu on the first kiss port.
# Attach a dualport tnc in kiss mode.
# Ports are labelled 'port1' and 'port2'
# Attach a PC asynch port (com1 in this example) attach asy 03f8 4 ax25 port1 512 256 9600
# Attach the second port on the multiport tnc attach kiss port1 1 port2
This makes available a pseudo interface to enable NET/ROM operations. This command is automatically executed when the netrom server is started with the 'start netrom' command.
attach packet <softintr#> <iface_label> <maxqueue> <mtu> [ipaddress]
Driver for use with separate software "packet drivers" which conform to the FTP Software, Inc., Software Packet Driver specification. See the Crynwr (TM) packet driver collection at ftp.crynwr.com, if your hardware (e.g. ethernet card) came without a packet driver. [ipaddress] is an optional ip address for the interface. If not set, the system 'ip address' will be used.
Note that the packet driver is often loaded as a TSR in config.sys or autoexec.bat. It is the driver that must be supplied with information such as hardware IRQ, i/o address, and software IRQ. JNOS only needs to know the software IRQ value to interact with this driver. You must pick a software IRQ that is otherwise unused. Values between 0x78 and 0x7f are often suitable.
Example: attach packet 0x7e eth0 5 1500
G8FSL/PE1CHL driver for generic Z8530 cards, including DRSI cards. Use escc if the Z85230 chip is installed, otherwise use scc. Specify only one 'easy' or one 'init' command, and as many 'mode' commands as required.
attach scc <board label> baycom|drsi|opto <base address> <interrupt number> [t<timing channel>]
attach scc <board label> <#chips> init <base address> <spacing between SCC chip base addresses> <offset to channel A control register> <offset to channel B control register> <offset from each channels control register to data register> <address of INTACK/Read Vector port. (0 to read from RR3A/RR2B)> <CPU interrupt vector number> <clock frequency (PCLK/RTxC) prefix with "p" for PCLK> <optional hardware type> <optional parameter for special hardware> <optional t<tick chan> specification to use a channel to improve timing>
attach scc <board label> <SCC channel number to attach, 0/1 for first chip A/B> <mode, can be "slip", "kiss", "ax25" or "nrs"> <interface label> <maximum transmission unit, bytes> <interface speed, e.g, "1200". prefix with "d" when an external divider is available to generate the TX clock.> <buffer size> <optional callsign used on radio channel> <optional s flag to specify software-derived DCD detection>
Example: (see sccg8fsl.txt and scc.c, in JNOS src zipfile, for more info)
attach scc scc0 drsi 300 7 (easy form of init command which follows)
attach scc scc0 1 init 300 16 2 0 1 0 7 p4915200 8
attach scc scc0 0 ax25 vhfa 235 d1200 512 k5arh-3 s
attach scc scc0 1 ax25 vhfb 235 d1200 512 k5arh-2 s
attach bpq init <vec> <stream>
attach bpq <port> <label> [<mtu> [<callsign>]]
The JNOS BPQ driver allows JNOS to attach interfaces directly to bpqcode without having to use the packet driver interface and the nodedrv4.com TSR. JNOS will talk to bpqcode using the bpq_host interrupt code in version 4.00 and up of bpqcode. This eliminates the extra memory and processing time used by nodedrv4.com to send packets between JNOS and bpqcode.
The "attach bpq init" sub-command attaches the bpq_host TSR driver, which is accessed via software interrupt <vec> (in hex) for BPQ stream <stream> (in decimal). "attach bpq init" may only be called once.
The second form of the "attach bpq" sub-command is called once per <port>. It associates a BPQ <port> number with an interface name <label>. <mtu> may not exceed 256, and defaults to the ax.25 paclen value. <callsign> defaults to the ax25 mycall value, and establishes the callsign used by this BPQ port.
attended [off | on];
Displays or sets the global "I am present" flag in JNOS. This flag is used in the welcome header for incoming ttylink connections.
axui <iface> [<unproto_call> [digipeater_string]];
The axui command allows the console user to create a session that sends UI (unproto) packets to <unproto_call> via interface <iface>, from lines entered at the keyboard, and displays received UI packets. A split-screen session is created where possible. The default <unproto_call> is "ID". At most one axui session is permitted. AXUISESSION must be #define'd in config.h to enable this command.
An axui session also allows a few commands, which begin with '/' in column 1:
/c newcall change the unproto call to <newcall>
/i iface change to interface <iface>
/? or /h display a help message
/t toggle display of the time a packet was received
/q, /b, /e close the axui session
Example:
To use digipeater n5knx-5 for a local ARES unproto net, type: axui ax0 ares n5knx-5
ax25 <subcommands>;
All AX.25 parameters are configurable per interface. Commands of the form 'ax25 <command>' set the default or global values. Use the 'ifconfig <iface> ax25 <command>' form to set or show the interface-specific values.
To set the system default ax.25 parameters, you must do so BEFORE attaching interfaces. After attachment, you must use the 'ifconfig <iface> ax25' command form to show or change values for that interface.
THIS IS A CHANGE FROM THE BEHAVIOR EXHIBITED PRIOR TO JNOS VERSION 1.10X16, RELEASED 08FEB94.
The alias command shows or sets the system's alias call. If netrom is enabled, this modifies the same call as the 'netrom alias' command. The 'ax25 alias' command is NOT needed in that case! If netrom is not used, this command allows an alias name to be set such that users can connect to it. The alias is typically a short string and should not be a valid callsign, since any SSID is ignored when matching against <aliascall>.
Example: ax25 alias knx
ax25 bbscall [<bbs_call>]
The bbscall subcommand sets or shows the current bbs callsign.
Connects to this callsign, when set properly, will "jump-start" * the mailbox. That is, after the connect no additional packet need be sent to obtain the mailbox greeting. This subcommand will automatically set the bbscall for all currently-attached AX.25-class interfaces with no bbscall set. For bbscall to function properly, it must differ from the system alias/netrom alias, as well as the link address of the interface (usually set by 'ax25 mycall').
See also 'ifconfig <iface> bbscall <bbs_call>'. Note that the bbscall value is also used for the source address of ax.25 connections initiated from the console, provided that the ax25 ttycall is not set, or that JNOS was *not* compiled with TTYCALL_CONNECT #define'd.
#Example: (in the following order)
'ax25 mycall N5KNX-1'
'ax25 alias KNX'
'ax25 bbscall N5KNX'
'attach <(all interfaces)>'
or
'ifconfig <name> bbscall <bbscall>' sets only iface <name>
ax25 bc <iface>
The bc command forces an immediate broadcast on the given interface. The particular interface or port must have been enabled with the ax25 bcport command first. If this is so, the ID will be broadcast as set with the ax25 bctext commands.
ax25 bc port1
ax25 bcinterval [<seconds>]
The bcinterval displays or sets the time in seconds between broadcasts. On display, both the interval and the countdown values are shown. Default = 600 (10 minutes).
ax25 bcport [<iface> [on | OFF]]
Display or set the active interfaces for ax.25 broadcasting (i.e. beacons). If no interface is given, all interfaces with ax.25 beaconing enabled will be listed. If interface is given, the status of beaconing for that interface is shown, or set according to the following on or off option. Initial state is off.
ax25 bcport port1 on
ax25 bctext ["broadcast text"]
Display or set the default text to be sent for broadcast messages sent out every ax25 bcinterval seconds. To compose a multi-line message, use \r between the text of each line, ie, "line1\rline2".
See also 'ifconfig <iface> bctext ["bctext"].
ax25 bctext "This is the beacon text!"
ax25 blimit [<value>] Default: 30
Display or set the default AX25 retransmission backoff limit. Normally each successive AX25 retransmission is delayed by twice the value of the previous interval; this is called binary exponential backoff. When 2^(retrycount) reaches or exceeds the blimit <value>, the retry interval is no longer increased.
To prevent the possibility of "congestive collapse" on a loaded channel, blimit should be set at least as high as the number of stations sharing the channel. Note that this is applicable only on actual AX25 connections; UI frames will never be retransmitted by the AX25 layer. See also ax25 maxwait, and ax25 timertype.
#Set ax25 blimit to 15
ax25 blimit 15
ax25 dest [<iface>]
Display the destinations saved in the heard list, for all interfaces with heard list maintenance enabled, or for the just the specified interface. See also "ax25 heard" and "ax25 filter N".
ax25 digipeat [<iface> [ON | off]]
Display or set digipeating per interface. If no interface is given, all interfaces with digipeating enabled will be listed. If interface is given, the status of digipeating for that interface is shown, or set according to the following on or off option. If cross-band or AXIP digipeating is to be allowed, digipeating must be enabled on both interfaces involved. Default is on.
# Display digipeat status of port1
ax25 digipeat port1
ax25 filter N Default: 0
Sets the ax.25 heard list filtering value. This is a global value that affects all ports with heard list maintenance set to ON.
0 => log both source and destination callsigns
1 => do not log source callsign
2 => do not log destination callsign
3 => do not log any callsign, i.e., disable all heard list updates
Clears the AX.25 "heard" list (see ax25 heard and ax25 hport)
ax25 heard [<iface>]
Display the AX.25 "heard" list. For each interface that is configured to use AX.25 heard listing (see 'ax25 hport'), a list of all ax25_source addresses heard on that interface is shown, along with a count of the number of packets heard from each station and the time since each station was last heard. The maximum length of the heard table can be set with the 'ax25 hsize' command. If interface is given, only the heard list for that interface is displayed.
ax25 heard port1
ax25 hearddest [<iface>]
Same as "ax25 dest [<iface>]".
ax25 hport [<iface> [ON | off]]
Display or set the status of the ax.25 heard feature. If no interface is given, all interfaces with ax.25 heard enabled will be listed. If interface is given, the status of ax.25 heard for that interface is shown, or set according to the following on or off option. Default is on.
#Display port1 status
ax25 hport port1
ax25 hsize [<size>]
Set or display the size of the heard list table. Default is 0 which means no limit.
ax25 irtt [<milliseconds>]
Display or set the initial value of smoothed round trip time to be used when a new AX25 connection is created. The actual round trip time will be learned by measurement once the connection has been established. Default is 5000ms.
#Set irtt to 10 seconds (10000 milliseconds)
ax25 irtt 10000
ax25 kick <axcb>
Force a retransmission on the specified AX.25 control block. The control block address can be found with the ax25 status command.
This is useful to reactivate connections that have long time-out values.
ax25 maxframe [<count>]
Establish the maximum number of frames that will be allowed to remain unacknowledged at one time on new AX.25 connections.
This number cannot be greater than 7. Without <count> it will display the current setting. Note that the maximum outstanding frame count only works with virtual connections. UI frames are not affected. Also note that for optimal performance, a value of 1 should be used. Default is 1 frame.
ax25 maxwait [<msec>]
Sets a limit (in msec) to the retry timeout values. Default = 30000 (30 secs). A value of 0 disables maxwait.
ax25 mycall [<ax25call>]
Display or set the default local AX.25 address. The standard format is used, (e.g. WG7J or KA7EHK-5). This command must be given before any attach commands using AX.25 mode are given.
ax25 mycall wg7j-3
ax25 paclen [<size>]
This sets the default paclen used when attaching interfaces that will carry AX.25 connections. See also 'ifconfig <iface> ax25 paclen'. Default is 256 bytes.
This parameter limits the size of I-fields on new AX.25 connections. If IP datagrams or fragments of datagrams larger than paclen are transmitted, they will be transparently fragmented at the AX.25 level, sent as a series of I frames, and reassembled back into a complete IP datagram or fragment at the other end of the link. IP datagrams will not be affected if this parameter is greater than or equal to the MTU of the associated interface.
If NET/ROM communication is configured, the NetRom MTU value should be Paclen - 20. !!! The Net/Rom header takes 20 bytes, and is part of the AX25 data. Default netrom mtu is 236.
Note1: the AX.25 Level 2 Version 2 definition specifies a maximum paclen of 256 bytes. Some systems are not equipped to handle larger packets (e.g. G8BPQ based systems), so be careful when using this parameter.
ax25 pthresh [<size>]
Display or set the poll threshold to be used for new AX.25 Version 2 connections. The poll threshold controls retransmission behavior as follows. If the oldest unacknowledged I-frame size is less than the poll threshold, it will be sent with the poll (P) bit set if a time-out occurs. If the oldest unacked I-frame size is equal to or greater than the threshold, then a RR or RNR frame, as appropriate, with the poll bit set will be sent if a time-out occurs.
The idea behind the poll threshold is that the extra time needed to send a "small" I-frame instead of a supervisory frame when polling after a time-out is small, and since there's a good chance the I-frame will have to be sent anyway (i.e., if it were lost previously) then you might as well send it as the poll. But if the I-frame is large, send a supervisory (RR/RNR) poll instead to determine first if retransmitting the oldest unacknowledged I- frame is necessary; the time-out might have been caused by a lost acknowledgment. This is obviously a tradeoff, so experiment with the poll threshold setting. The default is 128 bytes, one half the default value of <paclen>
ax25 reset <axcb>
Delete the AX.25 connection control block at the specified address. This deletes a connection and everything associated with it. The control block address can be found with the 'ax25 status' command.
ax25 retries [<count>]
Limit the number of successive unsuccessful retransmission attempts on new AX.25 connections. If this limit is exceeded, link re-establishment is attempted. If the link can't be re-established in <count> times, then the connection is abandoned and all queued data is deleted. Default is 5.
ax25 route [<subcommand>]
Without optional subcommands, display the AX.25 routing table that specifies the digipeaters to be used in reaching a given station.
ax25 route add <target> <iface> [[via] digis ...]
ax25 route perm <target> <iface> [[via] digis ...]
Add an entry to the AX.25 routing table. The route added may be replaced automatically by a new one, unless "perm" is used instead of "add". Replacement may occur when digipeaters are specified in an AX25 link from the node or a connection is received from a remote station via digipeaters. Such automatic replacement is usually desirable; use "route add perm ..." to prevent this where necessary.
<target> is the destination call to reach via digipeaters.
<iface> is the interface to use for this route, i.e. JNOS allows different digi routes for different interfaces. [digis...] is a list of one or more digipeaters, separated by spaces and/or commas. The keyword "via" is optional.
ax25 route add k7uyx-1 port1 wg7j wa7tas n7dva
ax25 route perm k7uyx-1 port1 wg7j wa7tas n7dva
ax25 route drop <target> <iface>
Drop an entry for <target> from the AX.25 routing table. ax25 route drop k7uyx-1 port1
ax25 route mode <target> <iface> [vc|dg|interface]
Sets the interface ip mode to one of vc | datagram | interface for target. This indicates how ip links to the destination call <target> should be established. If nothing is given for a certain destination or target, the interface default mode is used, which defaults to datagram. (See also the 'mode' command).
vc is a virtual circuit (ax25 connected mode, meaning that ip frames are sent using ax.25 connections) datagram is unconnected mode, (AX25 UI frames). interface is the default interface mode, as set with the 'mode' command.
ax25 route mode k7uyx-1 port1 vc
ax25 status [<axcb>]
Without an argument, display a one-line summary of each AX.25 control block. If the address of a particular control block is specified, the contents of that control block is shown in more detail. Note that the send queue units are frames, while the receive queue units are bytes.
ax25 t2 [<milliseconds>] Default: 1000
Display or set the AX.25 "resptime" timer. Value is in milli-seconds. Default is 1000ms, and minimum is 0ms. This timer lets JNOS eliminate some redundant transmissions and optimize what it sends by possibly adding ACKs to I-frames, by delaying the trans-mission of packets. A value of zero disables the use of the t2 timer, as does the use of datagram mode (UI) [see mode command].
ax25 t3 [<milliseconds>] Default: 0
Display or set the AX.25 idle "keep alive" timer. Value is in milliseconds. Default is 0, i.e. no 'keep-alive' polling.
ax25 t4 [<seconds>] Default: 300
Display or set the AX.25 Link "redundancy" timer. Value is in seconds. When no exchange has been had during this time the link is reset and closed. Default = 300 seconds (5 minutes).
ax25 timertype [LINEAR|exponential|original]
Sets or displays the type of timer used for retransmission and recovery. Linear means that each retry will use a time-out that is RTT greater then the previous time-out. I.e. 4 sec, 8 sec, 12 sec, 16 seconds etc. Exponential means that each retry will use a time-out that is twice as large as the previous time-out. I.e. 4 seconds, 8 seconds, 16 seconds, 32 seconds etc.
Original means that each retry will use a time out that is twice the RTT, i.e. 4 seconds, 8 seconds, 8 seconds, 8 seconds, etc.
Default is linear.
ax25 timertype exponential
ax25 ttycall [ttycall]
Set or display the tty-link callsign for direct keyboard access. Remember to have both 'attended on' and 'mbox attend on' to be able to use this function. The ttycall value is also used for the source address of ax.25 connections initiated from the console, provided that JNOS was compiled with TTYCALL_CONNECT #define'd.
ax25 version [n]
Display or set the version of the AX.25 protocol to attempt to use on new connections. Version 1 is the version that does not use the poll/final bits. Default is version 2.
ax25 window [<size>] Default: 512 bytes
Set the number of bytes that can be pending on an AX.25 receive queue beyond which I frames will be answered with RNR (Receiver Not Ready) responses. This presently applies only to suspended interactive AX.25 sessions, since incoming I-frames containing network (IP, NET/ROM) packets are always processed immediately and are not placed on the receive queue. However, when an AX.25 connection carries both interactive and network packet traffic, an RNR generated because of backlogged interactive traffic will also stop network packet traffic from being sent.
bbs;
The 'bbs' command connects you to your own mailbox system. It is a shortcut to typing: telnet localhost
If JNOS was compiled with both MD5AUTHENTICATE and EXPEDITE_BBS_CMD #define'd, then it is possible to get logged into the mailbox automatically. You must add an entry to "net.rc" with the systems hostname, the desired userid, and the corresponding password.
Example:
n5knx.ampr.org n5knx passemoi
bulletin <subcommand>;
The 'bulletin' command establishes how JNOS treats incoming bulletins based on their R: line headers. These commands are available when JNOS was compiled with RLINE #define'd, and are highly recommended for BBS operations. While many defaults are OFF for historical reasons, I think most BBS operators will want to turn these features ON!
bulletin check [on | OFF]
Displays or sets a flag indicating bulletin forwarding is to be optimized. If <ON>, an incoming bulletin's R: lines are scanned for BBSes to which we forward. If any are found, the bulletin is marked as having already been forwarded to that BBS. When invoked with no options, the list of BBSes to which we forward is also displayed.
Note: only the first NUMFWDBBS (currently 8) BBSes in forward.bbs are checked in the R: lines, hence the most active BBSes should occur first in forward.bbs.
bulletin date [on | OFF]
Displays or sets whether the date associated with a message is the originate date (if ON), or the date received (if OFF). The originate date is obtained from the last R: line, and should yield better operation of the bulletin expire mechanism. See also
'bulletin holdold'.
bulletin holdold [#days]
Displays or sets the number of days since message origination, above which an incoming bulletin is placed into a hold state. A held bulletin is visible only to the sysop, and has a "X-BBS-Hold: Age" header added.
This feature only works when 'bulletin date ON' is in effect.
bulletin loophold [<count>] Default: 2
Displays or sets a counter which, if exceeded by the number of times our call appears in a message's R: line headers, causes the message to be Held to avoid a message-forwarding loop. A held message is visible only to the sysop, and has a "X-BBS-Hold: Loop" header added.
bulletin return [on | OFF]
Displays or sets how a message's return address is obtained.
If ON, the return address is obtained from the last R: header line when available. If OFF, sender%forwarding.bbs@mycall is used.
Note that for the mailbox SR (send-reply) command to work, the system's rewrite file must be capable of handling the '%' symbol.
A recommended rewrite rule is: *%*@YOURCALL* $1@$2 r
callserver hostname [hostname>];
Sets the host address of the system to be querried by the "callbook" or mailbox "Q" command. The specified server system responds at tcp port 1235. <hostname> may be that of the local system if a server has been started with the "start" command. See the "readme.now" file for further information that pertains to QRZ, SAM, and Buckmaster cdrom databases.
cd [<directory>]
Changes the current directory to <directory>, which must be an existing directory on the local machine.
The directory specified can be relative to the current directory, or absolute, with the name beginning at the DOS root (/).
Without an argument, 'cd' simply displays the current directory without change.
The 'pwd' command is an alias for 'cd'.
close [<session_number>]
Close the specified session. If you are running only one session, entering 'close' without arguments will close the session. If you have multiple sessions, entering 'close' without arguments will initiate a close on the current session.
If you are running multiple sessions, the 'session' command will display a list of these sessions.
Entering 'close' with a session number argument will initiate a close on the specified session.
On an AX.25 session, this command initiates a disconnect.
On an FTP or Telnet session, this command sends a FIN (i.e. initiates a close) on the session's TCP connection. This is an alternative to asking the remote host to initiate a close (QUIT to FTP, or the logout command appropriate for the remote system in the case of Telnet).
If you are in an FTP or Telnet Converse session, you will have to press <F10> to escape to the "net>" prompt to issue the 'close' command. When either FTP or Telnet sees the incoming half of a TCP connection close, it automatically responds by closing the outgoing half of the connection. 'Close' is more graceful than the 'reset' command, in that it is less likely to leave the remote host in a "half-open" state.
Clear the Session Manager screen.
comm <asy_iface> <"text_string">;
Sends "text_string", followed by a CR character, to the specified asynch interface. Normally, this command is used to place a TNC into KISS mode when JNOS is started, but it may also be useful to send AT commands to attached phone modems.
Example 1: Ensure kiss mode is on:
comm tnc "kiss on"
comm tnc "restart"
pause 4
param tnc txdelay 10
Example 2: have telephone modem answer on first ring:
param dialup up
comm dialup "atz e0 s0=1"
pause 2
start tip dialup modem 360
connect <iface> <destination> [<digi1,digi2...digi3>];
Initiate an ax25 connection at interface <iface> to <destination>. Use the "ports" command when in the mailbox or mailboxto discover the proper id of <iface>. <destination> may be either callsign-ssid or an alias. Note that there is only a 'space' between <destination> and <digi...>.
Examples:
c ax0 n5knx-2 -> connect to n5knx-2 on port ax0
Also see Connect
convers <subcommands>;
convers filter [ipaddress | hostname]
These commands configure the network conference server.
convers channel [<default_chan_number>] Default: 0
Displays or sets the default channel number, that is, the initial channel to which new users are assigned.
convers channel 2
convers drop [<addr>]
Drop the remote convers link to <addr>. See also 'convers link'. If <addr> is not given, all links are dropped.
convers drop 44.26.1.19
convers filter Default: refuse (nobody)
Set how the convers node will respond to connect requests.
convers filter mode [accept | refuse]
Sets or displays the filter mode. 'filter mode accept' allows links from only the hosts in the filter list. 'filter mode refuse' allows links from all hosts except those in the list.
convers filter [ipaddress | hostname]
Builds the filter list used in conjunction with the 'convers filter mode' command.
convers host <name>
Displays or set the convers hostname as will be used when announcing the system to conference users or remote links.
Maximum length is 10 chars, but if you want to stay compatible with JNOS.EXE based convers servers use a maximum of 8 character for the convers host name (unless the system runs JNOS-v1.04 or later).
If the 'hostname' gets set and the 'convers host' isn't set yet, it will be set to the first 10 chars of the 'hostname'. After this, if any sub domains (i.e. periods) exist in the hostname, the convers hostname will be terminated at the right-most period. e.g. If 'converse host' is not set, and 'hostname jnos.wg7j.ampr.org' is given, then after this the converse hostname will be 'jnos.wg7j'.
convers host Corvallis
convers interface [<iface>] [on|OFF]
Displays or sets the active convers interfaces. This command needs to be given for each interface that which will allow connections to the conference call (see 'convers mycall'); e.g., this command can be used to allow conference call access only on
the user ports but not on the backbone/linking ports. This can also be useful to avoid confusion when different nodes have the same conference call. (Locally, we use the call 'QSO' for the conference server for different nodes, and ran into problems when a user tried to connect to it from a backbone node. All of a sudden two nodes were answering the connect !) Default is off.
convers interface port1 on
convers link [<addr> [port] [name]]
convers xlink [<addr> [port] [name]]
If no <addr> is given, display the list of linked nodes with link status and statistics indicated. If <addr> is given, add a convers link to another (remote) conference server. The link is LZW-compressed if xlink, instead of link, is specified
(and XCONVERS was #define'd at compile-time).
<addr> is the ip address or hostname of the remote server to which to link. [port] is the tcp port number to use for the server connection. [port] defaults to 3600 if the link command is used, and 3601 if the xlink command is used. [name] is the optional name that will show up in the links listing shown with the '/links' command if the link has not yet been established. [name] can be a maximum of 10 characters; the first character must be a non-integer.
After the link has been established, the name will be set to the name with which the remote system introduced itself. convers link 44.26.1.19 Testing
convers [u|h]maxq [<bytes>]
Display or set the upper limit for the number of bytes that can be queued up waiting for transmission on a connection to another server. If there is more data than this limit, the connection to the other server will be closed.
You are able to set individual limits for users and hosts with 'convers hmaxq' and 'convers umaxq'. If set to 0, there is no limit, otherwise connections will be reset if there is more than the maxq value data outstanding on the connection. The connections will be RESET instead of gracefully closed.
Default values are umaxq of 1024 and hmaxq of 5120. Note that any changes will only affect new connections, not existing connections.
convers maxwait [<seconds>] Default: 10800
Display or set the upper limit for the time the system will wait to reestablish a disconnected convers link that originated at this system. Time is given in seconds. convers maxwait 600
convers motd ["<yourmessage>"]
Set or show the message of the day for the convers server. This message is displayed when users connect to the server.
NOTE: this option is obsolete in recent convers implementations. Instead, the contents of the file /spool/convmotd.txt are displayed. This filename can be changed by setting the ConvMotd string in nos.cfg.
convers mycall <mycall>
Display or set the 'conference call'. <mycall> is a separate ax.25 callsign. If set, users can connect to it to get immediately connected to the conference bridge. However, each port or interface that this call should be allowed on should be enabled with the 'convers interface' command. Conference call connections bypass the regular node interface. This is independent from the settings of 'mbox convers' or whether the network conference server has been started. See also 'convers t4'.
convers mycall QSO
convers online [long | call | @host]
Display a list of convers users known to the convers server. This is the same report as a /who listing made from within the convers facility. The default report is a "quick" format listing of the connected users. The "long" option specified a long-format report, which can be restricted to a particular "call" or "host".
Example: conv on @luzana -or- conv on wu3v -or- conv on
convers setinfo [yes | NO]
Display or the set the ability of conference users to change their personal info as stored in /finger/dbase.dat. This sub-command is only available when CNV_CHG_PERSONAL was #define'd when JNOS was compiled.
convers t4 [<seconds>] Default: 7200
Display or the set the conference call connection T4 timer. t4 is the 'redundancy timer' for ax.25 connections to the conference server. This allows you to set a different inactivity time-out for ax25 node and conference connections. Default is
7200, i.e. 2 hours. convers t4 900
convers tdisc [<seconds>] Default: 0
Display or the set the conference call general redundancy timer that applies to all connections to the conference server.
Connections which are idle longer than <seconds> will be disconnected. Default is 0, i.e. disable idle timeouts. convers tdisc 1200
Files used by the convers facility:
Keyword Default value Usage
ConvMotd /spool/convmotd.txt Connect greeting.
Cinfo /finger/dbase.dat Convers user personal info
Cinfobak /finger/dbase.bak Previous Cinfo file (after update)
Channelfile /spool/channel.dat Channel number to name mapping -- /spool/help/convers.hlp Help file (/help command)
Cinfo line format: <name|call> <personal data, i.e., QTH, etc.>
Channelfile line format: <channel_number> <channel_name>
Note: Converse users often wonder why the /help report is not complete. This is because the default compilation options for convers.c include "noblocking". This results in JNOS dropping data destined for any output queue that exceeds certain length limits, and thus ensures that JNOS will not run low on buffer space due to the inability of a slow RF link to process the output queue fast enough. The limits at which lossage occurs depends on how a user connects to JNOS: telnet users are limited by the tcp window size, ax.25 users are limited by the JNOS 'ax25 window' setting, and the local console is limited by the LOCSFLOW constant (2048). The convers.c source could be edited to #undef noblocking, and recompiled in an attempt to rectify this limitation, but (worse?) instability might result!
copy <file> <newfile>
Copies the filename to the destination new filename.
Functions the same as the DOS copy command.
delete <filename>;
Deletes the specified file. <filename> may include a complete path. Functions the same as the DOS Delete command.
detach <interface>
dir [<dirname>]
List the contents of the specified directory on the console. If no argument is given, the current directory is listed.
Note that this command works by first listing the directory into a temporary file, and then creating a 'more' session to display it. After this completes, the temporary file is deleted.
Disconnect the session
domain <subcommand>;
The domain commands control and show the working of the name to Internet address mapping software (referred to as DNS: Domain Name Service). JNOS has both a DNS client and a server. The server will answer queries from data in the domain cache, and from information stored in the DOMAIN.TXT file. The DNS server is only available when DOMAINSERVER is #define'd in config.h, but the DNS client is always available.
domain addserver <hostid> [<timeout>]
Add a domain name server to the list of name servers.
<timeout> is an optional timeout setting in seconds for this server. If <timeout> is not included in the command, the value defaults to 3 * (tcp_irtt). Servers are queried in the opposite order in which they were added.
Example: domain addserver wg7j.ece.orst.edu 30
domain addserver 128.193.48.1
domain addserver ucsd.edu
domain cache <subcommand>
Following commands work on the domain cache. These are resource records held in memory. (described in RFC1033/1034)
domain cache clean [<yes | NO>]
Displays or sets the discard of expired resource records. expired records have their time-out value decremented to zero.
Normally resource records get a default time-out value of 1800 seconds. After this time they are considered "old" and if referenced again the domain name resolver should be inquired again. When clean is off (the default), expired records will be retained; if no replacement can be obtained from another domain name server, these records will continue to be used.
When clean is on, expired records will be removed from the file whenever any new record is added to the file. domain cache clean yes
Immediately clears the domain cache. This amounts to being a "flush".
This command shows the current content of the in-memory cache of resource records.
domain cache size [<size>]
Display or set the maximum size of the local in-memory
domain cache. Default is 5.
domain cache size 10
domain cache wait [<secs>]Default: 300
Display or set the number of seconds which must elapse before the domain.txt file is updated from the resource records stored in the domain cache. Upldating is controlled by the 'domain update' command (see also).
domain dns [on|off]
Display or toggle the state of the Domain Name Server. If on, the system is active as a Domain Name Server. The system will then answer queries from other tcp/ip hosts regarding hostname to ip-address, and ip-address to hostname translations. The dns subcommand is only available when DOMAINSERVER was #define'd when JNOS was compiled.
domain dropserver <hostid>
Remove a domain name server from the list of name servers. You are warned when you delete the last name server.
domain dropserver ece.orst.edu
List the currently configured domain name servers, along with statistics on how many queries and replies have been exchanged with each one, response times, etc.
domain look <search_text>
This command searches domain.txt and displays records matching <search_text>. The suppoed <search_text> must match exactly, i.e., case is significant. This subcommand is available only if MORESESSION was #define'd when JNOS was compiled.
domain maxclients [<N>];
Command to limit loading, N=number of clients, while acting as a Domain
Name Server. Default is 6.
domain maxwait [<time-out>]
This sets a time-out value (1 to 255 seconds) to a query or domain name server. This is not set for an already defined server but will be used for a newly defined name server. Also the value is used for domain name lookups (E.g. when a user does a telnet to a host with the mailbox'T host' command). Note that (PC based) name servers can have trouble finding records in a large database. Default is 60 seconds.
domain maxwait 10
domain query [<hostid>]
Displays the results of a DNS query for <hostid>.
domain retries [<retries>]
The retry value (number) limits the number of queries sent out to remote domain name resolvers before giving up and telling you that host xyzzy.ampr.org does not exist. The total time lost with a query is (retries * time-out * number of domain servers defined); i.e., the delay between requesting a hostname to ipaddress translation and getting the answer can become very long if you use many servers, and set the time-outs/retries high !
Default is 2.
domain retries 1
domain subnet [ON | off]
This command works in conjunction with 'domain translate' to allow or disallow translation of any address ending in 0 or 255.
On systems which have a lot of subnets, turning off subnet translation can result in a considerable speedup when displaying routes with 'domain translate on'.
domain suffix [<domain suffix> | none]
Display or specify the default domain name suffix to be appended to a host name when it contains no periods. For example, if the suffix is set to "ampr.org." and the user enters 'telnet ka9q', the domain resolver will attempt to find 'ka9q.ampr.org.' If the host name being sought contains one or more periods, however, the default suffix is NOT applied if the last part of the name is less than 5 characters and contains only letters; e.g., 'telnet foo.bar' would NOT be turned into 'foo.bar.ampr.org.' 'telnet foo.ka9q' will be turned into 'foo.ka9q.ampr.org.' Note that a trailing dot (.) is required for the suffix. If the suffix is the string 'none' (without trailing period), the current suffix is cleared and forgotten. Default is "ampr.org." domain suffix ece.orst.edu.
domain trace [on| OFF]
Display or set the flag controlling the tracing of domain server requests and responses. This only works when console is enabled. Default is off.
domain trace on
domain translate [on | OFF]
Display or set the flag that controls the translation of ip addresses in dot notation into symbolic names. The translation process makes heavy use of reverse domain name lookups. Do not set this flag unless you have a good and fast connection to a domain name server.
domain translate on
domain ttl [ttl]
Select a default 'ttl' value to be applied to server responses than contain none.
domain update [on | off]
Controls whether or not domain.txt file is updated with server responses.
domain verbose [on | off]
Display or set the flag controlling the return of a full name (on) or only the first name (dot delimiter) (off). This is for
IP address to name translation only. If off, home.wg7j.ampr.org. will show as 'home.wg7j', whereas if on it will show as 'home.wg7j.ampr.org'
domain verbose off
dump <hexaddress | .> [range];
The dump command shows memory in hex and ascii. Hex-address is a 32-bit value split into page address and page offset. A splitting colon is not used nor accepted. If decimal-range is not given , 128 bytes are displayed. 'dump .' displays memory starting at the end of a previous dump command. This command is primarily useful for debugging.
dump 12fe0008
echo [accept|refuse]; Default: accept
Display or set the flag controlling client Telnet's response to a remote WILL ECHO offer.
The Telnet presentation protocol specifies that in the absence of a negotiated agreement to the contrary, neither end echoes data received from the other. In this mode, a Telnet client session echoes keyboard input locally and nothing is actually sent until a CR is typed.
Local line editing is also performed: backspace deletes the last character typed, while control-U deletes the entire line.
When communicating from keyboard to keyboard the standard local echo mode is used, so the setting of this parameter has no effect. However, many timesharing systems (e.g. UNIX) prefer to do their own echoing of typed input. (This makes screen editors work right, among other things). Such systems send a Telnet WILL ECHO offer immediately upon receiving an incoming Telnet connection request.
If 'echo accept' is in effect, a client Telnet session will automatically return a DO ECHO response. In this mode, local echoing and editing is turned off and each key stroke is sent immediately (subject to the Nagle tinygram algorithm in TCP).
While this mode is just fine across an Ethernet, it is clearly inefficient and painful across slow paths like packet radio channels. Specifying 'echo refuse' causes an incoming WILL ECHO offer to be answered with a DONT ECHO; the client Telnet session remains in the local echo mode. Sessions already in the remote echo mode are unaffected. (Note: Berkeley Unix has a bug in that it will still echo input even after the client has refused the WILL ECHO offer. To get around this problem, enter the 'stty - echo' command to the shell once you have logged in).
edit [<filename>] ;
An ascii text editor is included the JNOS distribution. A clone of the UNIX "ed" editor, is invoked from the console with the path to the file to be edited:
edit c:/ftpusers
This option is enabled by compiling with EDITOR and ED #define'd.
A full-screen console-only editor is available if JNOS is compiled with both EDITOR and TED #define'd.
eol;
eol [standard | null] Default: standard
Display or set Telnet's end-of-line behavior when in remote echo mode. In 'standard' mode, each key is sent as is. In 'null' mode, a NUL character is sent immediately after sending a CR.
This command is not necessary with all UNIX systems; use it only when you find that a particular system requires two CRs to end a line. In any case, the eol setting is only pertinent when in remote- echo mode, since otherwise a CR is translated to LF by JNOS' tty driver.
errors [ON | off];
Set whether the system will send messages about system errors and permission infringements to user 'sysop'. Default is on.
escape E[scape] [<char>|<integer>|off|on]
The escape command, when entered by itself, will display the character that is currently set as the escape character, and whether escape processing is enabled. This character is what will be used if you want to exit from the current session.
For instance, if you have started a "chat" session, and you don't get any response from the operator after waiting a few minutes, you can enter the escape character, followed by a <RETURN> or <ENTER>, and the session will be terminated. You
will then be returned to the MBOX prompt.
The escape character may be changed to one of your preference by entering "escape" followed by a <SPACE> and the character that will become the new escape character. This must be a single typed character (the <CTRL> key may be used in addition).
Alternatively, an <integer> corresponding to the decimal code for the escape character may be specified.
Escape processing can be enabled or disabled by specifying "on" or "off" as the only argument.
EXAMPLES
escape ^Z (the ASCII character <CTRL>Z)
escape X (the character "X" is the new escape)
esc 120 (the character "x" is the new escape)
escape off (suspend escape char processing)
escape on (resume escape char processing)
etelnet <host> [<port_number>] loginid password;
The 'etelnet' command is similar to the telnet command (which see), but it accepts the login id and password to be provided to the <host> system. The etelnet command is available when JNOS was compiled with MD5AUTHENTICATE #define'd. Etelnet will encrypt the password if the <host> system supports MD5 authentication (as indicated by a [hex_number] challenge value in its password prompt). If no such challenge is provided, the password is sent "in the clear".
If you are telnetting to a port/service that does not provide a password prompt, then 'telnet' should be used instead of 'etelnet'.
ettylink <host> [<port_number>] loginid password;
The 'ettylink' command is similar to the ttylink command , but it accepts the login id and password to be provided to the <host> system should it request a login id and password. The default port, 87, on a JNOS system does NOT request these, so using ettylink to this port/application is not recommended. The ettylink command is available when JNOS was compiled with MD5AUTHENTICATE #define'd.
Ettylink will encrypt the password if the <host> system supports MD5 authentication (as indicated by a [hex_number] challenge value in its password prompt). If no such challenge is provided, the password is sent "in the clear".
exit [return_code]; Default: 0
Causes the JNOS program to terminate when at the JNOS> prompt.
When shelled to DOS, causes a return to the JNOS> prompt. When terminating the program, an "Are you sure?" query is given. Enter "y(es) <cr>" to end the program. Any other response returns to JNOS.
If a <return_code> numeric value is provided, this value is returned to the caller of JNOS. This is typically a batch file, which may then take action depending on this code. For example:
:rerun
jnos110i -u1 -g2
if errorlevel 100 goto remote_exit
if errorlevel 99 reboot
if errorlevel 1 goto rerun
goto exit
:remote_exit
:exit
In this example, issuing "exit 99" would run the reboot command, "exit 1" would restart JNOS, and "exit" or "exit 0" would exit the batch file that invoked JNOS. The remote command (c.v.) when given the exit parameter, will use a return code of 100.
expire <subcommand>;
The 'expire' command is used to invoke the process which deletes old BBS messages. The mailboxes or newsgroups to be expired, and the age (in days) after which a message may be deleted, are specified in the Expirefile (defaults to /spool/expire.dat).
Begin the expire process immediately, if <now> is specified, or every <interval> hours in the future (but no immediate expire is done). If no arguments are provided, the current expire interval is displayed.
Example: To run expire at 04:30 each morning, place these commands into your autoexec.nos file
at 0430 "expire 24"
at 0431 "expire now"
Format of Expirefile:
#comment line
mbox_name number_of_days_to_retain_messages mbox_path number_of_days_to_retain_messages !news.group.name number_of_days_to_retain_articles
If the number of days is omitted, 21 is used. Also, if newsgroups are specified, the associated History file is expired as well, but the number of days used is the maximum of all the days provided for newsgroups in the Expirefile.
Example: allusa 7
amsat 10
!swap 10
!rec.radio 7
See Also: oldbid
finger <username[@host]> [<username[@host]> ...];
Issue a network 'finger' request for <username> at <host>.
Finger is typically used to find out specific information about users on local or remote hosts. By fingering a user, you can find out such information as a user's name, his mailing address, telephone number, QSL information, and other useful facts. This information is kept in a separate text file for each user.
As our network expands, this application will help hams find out information about each other quickly and efficiently.
The finger command under NOS can be issued in any of the following three ways:
finger <username> >> Examples: finger n8fow
finger <username>@<host> finger n8fow@n8fow
finger @<host> finger @n8fow
The first form of the command is used to find out information about a user at the local host, namely your own system. It is useful for testing 'finger' on a system that you know is running.
The second form of the command is used to find out information about a user at a remote host.
If you don't know the name of a particular user at a remote host, you can use the third form of the command. This command returns a list of all 'finger' files on the remote system.
To enable the finger server so that others may query the users on your system, you must give the 'start finger' command. The finger files that provide information on a <username> are located by default in \finger (see Fdir and Fdbase in nos.cfg), and are ordinary ASCII files created by the sysop. Also, if the SAM or QRZ callbook server is configured, <username> is looked up in the callbook and displayed if the search is successful.
Certain <username> strings are taken to mean that a JNOS function should be invoked to display system information, depending on what configuration options were used to build the server JNOS:
<username> config_opt output_same_as
conf CONVERS conference bridge /WHO
links CONVERS conference bridge /LINKS
mbxinfo MAILBOX 'I cmd in mailbox'
mhold HOLD_LOCAL_MSGS 'mbox holdlocal'
mstat MAILBOX 'mbox mailstat'
mpast MAILBOX 'mbox past'
users MAILBOX 'mbox status'
usersdat USERLOG 'finger x' forall users in users.dat
mailfor MAILFOR 'mbox mailfor'
info ALLCMD 'info'
ax25 AX25 'ax25 stat'
aheard AX25 'ax25 heard'
netrom NETROM 'netrom stat'
iheard all 'ip heard'
memstat all 'mem stat'
socket all 'socket'
tcpview all 'tcp view bytes'
asystat ASY 'asystat'
pkstat PACKET 'pkstat'
rip RIP 'rip stat'
fkey;
The 'fkey' command allows you to program the function keys and several other cursor control keys.
fkey
This command produces a listing of the currently defined function keys.
fkey <key_number> [<value> | "<string>" ] Display or define a new setting for a function key.
Control characters can be included in the string by prefixing with the ^ character (SHIFT 6 on most keyboards); e.g. CR is entered as ^M. To insert a ^ in the string, enter ^^.
Note: If the first character of a function key definition is '~' then JNOS switches to the Command session and processes the rest of the definition (if any).
>> Examples: fkey 87 "trace tnc0 211^M" (SHIFT-F4 turns trace on)
fkey 72 "" (disable up arrow)
fkey 113 "~" (Alt-F10 switches to the Command session)
ftp <hostname> [<scriptfile>];
batch [y|n]
The ftp command is used to make a TCP connection with <hostname>, and then use File Transfer Protocol to exchange data between the systems.
Once the connection is established, a small set of commands is used to manage the file exchange. A command is executed locally if it is a local client command. Otherwise, the command is sent to <hostname> for execution. If <scriptfile> is provided, all commands are obtained from the indicated file; otherwise, they are read from the console.
The following are commands supported by JNOS clients and servers:
?Display all available command names.
Treat the data to be transferred as ASCII text, so that line endings are used suitable to the receiving system.
batch [y|n]
Query the state of the command batching flag, or set it if <y|n> is given. Batching involves sending as many commands as possible before waiting for responses from <hostname>.
Treat the data to be transferred as binary data, that is, verbatim data not to be changed while storing on the receiving system.
Change to directory <path> on system <hostname>.
Change to immediately-superior directory on system <hostname>.
Delete <file> on the remote system.
List the contents of the current directory on the remote system, in a verbose manner. If <spec> is given, the subset that matches this file specification is listed. Example: dir *.exe
Transfer <file> from remote system TO the local system.
hash [y|n]
Query the state of the hashmark flag, or set it if <y|n> is given. Hashmarks are written to the screen for each 1000 bytes written to the local file system.
Same as ?
Change to directory <path> on the local system.
Same as the dir command, but applied to the local system.
as dir command.
lmkdir dir
Create directory <dir> on the local system.
List just the names in the current directory on the remote system. If <spec> is given, the subset that matches this file specification is listed. Example: ls *.exe
Display the modified-time in GMT for <file> as yyyymmddhhmmss.
Transfer all files matching <spec> from the remote system TO the local system.
Create directory <dir> on the remote system.
ransfer all files matching <spec> to the remote system FROM the local system.
Same as ls command.
Transfer <file> to the remote system FROM the local system.
Close the TCP connection to <hostname> and exit the ftp cmd.
See also the JNOS "abort" command.
Query the state of the ftp client LZW-supported flag, or set it if <y|n> is supplied. LZW compression is only supported for ASCII-type transfers.
rename from to Rename the file named <from> to the name <to> on the remote system.
The RFC959-endorsed way to restart an interrupted get. No check is made to assure the file is consistent between systems; the size of the local <file> is provided to the remote system and a get is issued relative to this point.
The RFC959-endorsed way to restart a transfer is to first establish a starting offset position and then issue a transfer command to resume at that position. The dir command would be useful to obtain the offset to specify in the restart command, and
then a put <file> would cause <file> to be sent starting from the given position.
Restart an interrupted transfer of <file> from the remote system to the local system. Checks are made to assure the file is consistent between systems. This is a JNOS extension to the FTP standard. Other non-compatible equivalents exist in other implementations (c.f. wu-ftpd).
Delete (remove) directory <dir> on the remote system.
Resume an interrupted transfer of <file> to the remote system
FROM the local system. Checks are made to assure the file is consistent between systems. This is a JNOS extension to the FTP standard. Other non-compatible equivalents exist in other implementations (c.f. wu-ftpd).
sendlzw [y|n] Query the state of the ftp server LZW-supported flag, or set it if <y|n> is supplied. LZW compression is only supported for ASCII-type transfers.
type [a|b|l] Query the current transfer type value, or set it if <a|b|l> is given. Use <ascii>, <binary> (or <image>). <logical 8> is also supported.
view file Transfer <file> from the remote system TO the local system's console screen. The file is assumed to be an ASCII file!
verbose [n] Query verbosity of error handler, or set it if integer <n> is given.
0 => error msgs only,
1 => final msg only,
2 => control msgs too,
3 => control msgs + hash marks,
4 => control msgs + byte counts.
Since unrecognized commands are sent to the remote ftp server for evaluation, additional commands may be available, depending upon the ftp server implementation. For example, the WU-FTPD may accept site-written extensions, and thus allow: site exec <extended_cmd> <cmd_args>.
The remote ftp server will require a login name and password. These values may be provided by a file called "net.rc" by default (see Hostfile in nos.cfg). The file has entries in this format:
remote_hostname login_name password but password may be omitted to instead have the client ftp prompt for it.
Many systems, including JNOS, will reduce the amount of extraneous messages sent, if the password is prepended with a '-'. However, JNOS does not support this when an anonymous login occurs via an MD5 authentication exchange.
gate <subcommands>;
The gate command, available when JNOS is compiled with TCPGATE #define'd, manages the tcpgate server, which accepts connects to certain tcp ports, and logically redirects them to another host and/or tcp port.
Thus it is only one half of a proxy server!
When ivoked without arguements, gate displays the current state of any active connections through the tcpgate code. On the left is the originating address and port, on the right is the destination address and port, as determined by the 'start gate...' command, and in the center is the port that was used by tcpgate to trap the connection.
Displays the manner in which incoming connections are mapped to what outgoing ones. It also displays the number of client connections allowed and the inactivity timeout.
Determines how many clients may connect through the tcpgate at any one time.
Determines the inactivity timeout (in seconds) as measured by data SENT to the client. A value of zero disables this feature.
start gate port hostname [port]
This is used to start up the tcpgate server on a particular port. The server listens for connection on that port and accepts them. It then makes a connection to the nominated hostname (with optionally a new port number - otherwise the same port number as is listened for is used). The 'gate status' command may be used to determine what ports have already been configured. This command generates a failure if that port number is already in use.
The JNOS '?' command provides a list of all the top-level JNOS commands.
To obtain more help on a particular command, type 'help' and the command name. Or type the command name followed by a question mark.
Example: help mbox displays the help file for the mbox command mbox ? displays the subcommands for the mbox command
hfdd subcommands:
hfdd server [iface] [start|stop]
hfdd server [iface] exit
hfdd server [iface] unproto
The basic commands currently shown are :
hfdd debug - toggles the debug flag, default is off. If you enable the HF debugging, the JNOS log will start logging more detail on any HFDD (Pactor) activity.
hfdd server [iface] [start|stop] - starts the hfdd service for the particular port (interface). The stop option is historic, and does nothing.
There are some (currently) hidden (development) commands, as follows :
hfdd server [iface] kick - in case hfdd service seems hung on the modem attached on the passed iface (port).
hfdd server [iface] exit - kick the modem out of hostmode for the modem attached on the passed iface (port). If the hfdd server seems to have lost touch with the modem, you can either power the modem off or on, or you can try this, which *should* force JNOS to reinialize the modem using init file.
hfdd server [iface] unproto - send an FEC Pactor broadcast out the modem attached to the passed iface (port). The text transmitted is "INTERNET GATWAY <yourcall>".
* only works on the KAM right now, the code for PTC is there, but is incomplete.
history [<N>]; Default: 10
The history command displays the number and contents of previous commands retained in a circular list, or sets the depth <N> of the history list. These commands can be recalled by the UP-arrow and DOWN-arrow keys. Press return to execute a recalled command, or backspace to erase from the right side. No further editing is currently supported. Setting the list size to 0 (zero) disables this feature.
The 'hop' commands are used to test the connectivity of the network.
hop check [-n] <host>
Initiate a hop check session to the specified host. This uses a series of UDP "probe" packets with increasing IP time-to-live (TTL) fields to determine the sequence of gateways in the path to the specified destination. This function is patterned after the UNIX 'traceroute' facility. If the -n option is used, no DNS lookups are done, so no names are listed for each hop.
ICMP message tracing should be turned off before this command is executed (see the 'icmp trace' command).
hop maxttl [<hops>] Default: 30
Display or set the maximum TTL value to be used in hop check sessions. This effectively bounds the radius of the search.
hop maxwait [<seconds>] Default: 5
Display or set the maximum interval that a hop check session will wait for responses at each stage of the trace.
hop queries [<count>] Default: 3
Display or set the number of UDP probes that will be sent at each stage of the trace.
hop trace [on | OFF] Default: off
Display or set the flag that controls the display of additional information during a hop check session.
hostname [<name>];
Display or set the local host's name. By convention this should be the same as the host's primary domain name. This string is used only in the greeting messages of the various network servers; note that it does NOT set the system's IP address.
hostname crv.kuyx.ampr.org.
If <hostname> is the same as an <interface> defined in an 'attach' command, this command will search for a CNAME domain resource record which corresponds to the IP address of the <interface>. This is commonly used for to set your hostname to that of a dynamically assigned IP address dial-in line.
http <subcommand>;
<subcommand> controls the operation of the JNOS HTTP server.
http absinclude [on | OFF]
Set or show the value of the flag that determines if the html specification 'include file="path"' is acceptable. If absinclude is off, the include command results in an error reported to the client.
If on, the file at "path" is inserted into the html document being prepared for transmittal to the client.
http always [ON | off]
This displays or sets the always-send flag. If on, html files will always be sent regardless of their modification time. If you use SSIs in your html files, then the file modification time of the html file is not indicative of the content change, and setting always to ON may prove useful.
http dontlog [str1|str2|...|strn]
This displays or sets a list of strings which, if contained in a URL, will prevent detailed logging of that access. This command is available when HTTP_EXTLOG was #define'd when JNOS was compiled.
Example: http dontlog junkdir/|.gif|.jpg
http maxcli [<number>] Default: 10
Display or set the maximum number of http client connections allowed. When this limit is reached, or if available memory drops below 'mem threshold', new connections are immediately refused.
See also "http simult".
http multihomed [on | OFF]
Display or set the flag which allows the http server to report the name associated with the interface used to access it. If off, the system hostname is used.
http simult [<number>] Default: 5
Display or set the number of simultaneous active http client connections allowed. When this limit is reached, new connections will immediately block until an older client connection terminates. See also "http maxcli".
Display information about the http server(s).
http tdisc [<#secs>] Default: 180
Display or set the number of seconds of idle time allowed a clientm before it is disconnected for inactivity.
Notes:
1) To start an http server, use the start command. The syntax is: start http [port#] [drive] [rootdir]
The default http server port is 80, the default disk drive is C, and the default rootdir is /wwwroot. This root directory MUST contain a file called "root.htm". If a client specifies an explicit path to a directory below this root, a reference to "welcome.htm" in that directory is assumed. If welcome.htm does not exist, a directory listing is prepared and sent. "welcome.nhd" can be used instead of "welcome.htm", to cause the file contents to be sent without headers.
This feature can be utilized to do unusual things like automatic redirection (probably not necessary anymore with today's intelligent browsers). The JNOS default http root dir can be changed by defining a new value for HttpDir in nos.cfg (and starting JNOS with -f nos.cfg).
UNIX note: the drive letter is required, but ignored! Also, the correct filename ending is ".html", not ".htm".
Client URL: JNOS file fetched:
http://your.system.name/ <rootdir>/root.htm
http://your.system.name/dir <rootdir>/dir/welcome.htm (if exists) otherwise, a listing of <rootdir>/dir contents
http://your.system.name/X/file <rootdir>/X/file
2) Multiple http servers, each on a different port, may be started, up to a limit of 5 (established at compile time by MAXPORTS). The stardard port is 80, but a non-standard one can be given in a URL, such as "http://n3yco.ampr.org:99/".
3) The JNOS /spool directory must contain a file called "access.www" which controls HTTP access rights. Lines either specify a directory path at and below which access is denied, or specify a {path, realm, encoded_user:passwd} sequence to which access is permitted only if the encoding matches that provided by the client.
This file MUST exist, even if empty, to allow any http accesses.
Note that access.www limits what can be specified on your system by a URL from an http client. It does NOT limit access to included files specified in local html files (but see 'http absinclude').
Example:
#type1: path-relative-to-wwwroot realm encoded-"user:password" /pub/jnos/www/unzipped/secret SecretPlace Z3Vlc3Q6aGVsbG8= #type2: directory at or below which access is denied: /pub/jnos/private
To produce an encoding of a "userid:password" combination to be used in access.www, use the base64.exe utility (produced by 'make base64' in the JNOS source directory): base64 userid:password > encoded.txt
Then edit the resulting file to yield a line for insertion into access.www.
4) If JNOS http was compiled with HTTP_EXTLOG #define'd, then by default the directory /wwwlogs will contain a record of accesses. This file, created daily, will grow VERY large if your server is very busy! See http://mvmpc9.ciw.uni-karlsruhe.de for information on Karl-Heinz Weiss' cleanlog utility. The log directory can be changed by defining a new value for HLogsDir in nos.cfg (and starting JNOS with -f nos.cfg).
5) Counters are maintained in /wwwstats, but this directory can be changed by defining a new value for HttpStatsDir in nos.cfg (and yes, starting JNOS with -f nos.cfg).
6) Server Side Include (SSI) support is patterned after those in the NCSA httpd. An SSI has the form: <!--# cmdname tag="value" -->
echo var="s" displays the value associated with variable <s>:
DATE_LOCAL - Current localtime
DATE_GMT - Current time in GMT
HOSTNAME - Server's hostname
DOCUMENT_URI - Resource Identifier of the current doc.
DOCUMENT_NAME- File name of the current doc.
LAST_MODIFIED- Modified date/time of the current doc.
TOTAL_HITS - Total hits on this server.
REQ_FROM - From: header of requestor (if available)
REQ_REFERER - Referring URL (if given by browser)
REQ_AGENT - Client browser's name (if given)
echo dcount="filename" displays the named counter.
echo icount="filename" increment and displays the named counter.
echo scount="filename" increment the named counter.
include file="/absolute/path" inserts the referenced file or dir, provided "http absinclude" is set on.
include virtual="path" inserts the referenced file or dir, where "path" is relative to the http root dir. "path" must end in '/' to be interpreted as a directory.
exec cgi="name?arglist" executes the cgi "name" which must be compiled into JNOS. Two CGIs are presently available: counter.xbm (if CGI_XBM_COUNTER was #define'd) and postlog (if CGI_POSTLOG was #define'd).
counter.xbm produces an X-bitmap display of the counter name provided as the argument. The counter is maintained in /wwwstats. Additional arguments are "inv" for inverting the display colors, and "noinc" to not increment the counter before it is displayed. Because this counter is returned as a bitmap it should be referenced as an image so a browser will handle it correctly: <IMG src="/counter.xbm?tcount.dat+noinc"> postlog demos the POST html command; see http.c for details.
Note that a URL may specify a CGI as if it were a filename under the root directory.
Example: http://localhost/counter.xbm?cntrname.ext
7) More information on writing html documents can be found at: http://www.visualogic.com/http_1.0/index.html
icmp <subcommands>;
These commands are used for the Internet Control Message Protocol service.
icmp echo [ON | off]
Display or set the flag controlling the asynchronous display of ICMP Echo Reply packets. This flag must be on for pings to work. Default is on.
icmp quench [ON | off]
With 'icmp quench off', when a packet is received and memory available < threshold, the packet will be dropped (i.e., no quench or anything.) The higher protocol layers will keep track of re-transmitting the dropped packets.
With 'icmp quench on', when packets are received and the high water mark for dynamically allocatable storage has been exceeded, JNOS submits an ICMP Source Quench to the originator. Usually, before the originator will have reacted to the source quench, JNOS's dynamically allocatable storage will have been exhausted.
What happens after that is uncertain, but it is assumed to be unfavorable. Many tcp/ip implementations don't even respond to Source Quenches at all. See also 'memory threshold command.' Default is ON.
Display statistics about the Internet Control Message Protocol (ICMP), including the number of ICMP messages of each type sent or received.
icmp timeexceed [<ON | off>]
Allows 'time exceeded' message to be sent when the ttl of an ip packet to be routed becomes zero. When turned OFF, no message is sent which allows the system to become invisible for 'traceroutes', etc.
icmp trace [ 0 | 1 | 2]
Display or set the flag controlling the display of ICMP error messages. These informational messages are generated by Internet routers in response to routing, protocol or congestion problems. This only functions when in console mode. Default is 0 (off). A trace value of 1 traces all icmp packets, while a value of 2 traces only icmp types known to JNOS.
ifconfig [<subcommand>];
ifconfig <iface> [<subcommands>]
ifconfig <iface> ax25 [<subcommand> [arguments]]
ifconfig <iface> broadcast <addr>
ifconfig <iface> ax25 cdigi <call>
ifconfig <iface> description "descr"
ifconfig <iface> encapsulation <mode>
ifconfig <iface> forward <iface-2>
ifconfig <iface> ipaddress <addr>
ifconfig <iface> linkaddress <linkaddr>
ifconfig <iface> netmask <address>
ifconfig <iface> ax25 paclen <num>
ifconfig <iface> rxecho <iface-2>
ifconfig <iface> tcp [<command>]
If a valid subcommand is given, it will be executed (see below). When no subcommand is given, display a list of interfaces, with a short status for each. See the 'ifconfig <iface>' command for a description of the display.
ALL ax25 and MOST TCP parameters are now configurable per interface. The 'ax25 <cmd>' commands set the system default values and the 'ifconfig <iface> ax25 <command>' commands set or show the interface specific value(s). The 'tcp <cmd>' commands work in the same manner.
As a result of this change, 'ifconfig' NO LONGER takes multiple commands on one line. 'ifconfig ln0 netmask ffffff00 broadcast 255.255.255.255' is invalid. The command line must be separated into two commands as: 'ifconfig ln0 netmask ffffff00' and 'ifconfig ln0 broadcast 255.255.255.255'
ifconfig <iface> [<subcommands>]
When only iface is given, the interface status is displayed.
Interface status shows:
IP addr - the ip address assigned to this interface
MTU - the maximum transmission unit for this interface.
Link encap - the type of link protocol to send packets with over this interface (AX.25, NETROM etc.)
Paclen - if the interface is an AX.25 interface, this is the Paclen used for connections on this interface
flags - interface flags, the sum of all the options set with the various commands. See below.
netmask - the ip network mask. See elsewhere for a discussion. broadcast - the ip broadcast address on this interface. Used when doing arp, etc.
sent ip - the number of ip packets sent on the interface
sent tot- the total number of packets sent (i.e. ip, ax.25, etc.)
sent idle - the elapsed time this interface hasn't transmitted any data.
recv ip - the number of ip packets received on the interface
recv tot- the total number of packets received (i.e. ip, ax.25, etc.)
recv idle- the elapsed time this interface hasn't received any data.
descr - a description of the interface
Interface flag values are the sums of the following options, and can be set or unset (i.e. toggled) with the following commands (See their individual descriptions for more)
command value description of flag
mode iface DATAGRAM_MODE 0 /* Send datagrams in raw link frames */
CONNECT_MODE 1 /* Send datagrams in connected mode */
netrom interface IS_NR_IFACE 2 /* Activated for netrom use */
NR_VERBOSE 4 /* broadcast routes verbose */
convers interface IS_CONV_IFACE 8 /* Activated for conference call access */
ax25 bport AX25_BEACON 16 /* Broadcast AX.25 beacons */
mbox hide HIDE_PORT 64 /* Don't show port in mbox 'P' command */
ax25 digi AX25_DIGI 128 /* Allow digipeating */
arp eaves ARP_EAVESDROP 256 /* Listen to ARP replies */
arp poll ARP_KEEPALIVE 512 /* Keep arp entries alive after time-out */
ax25 hport LOG_AXHEARD 1024 /* Do ax.25 heard logging on this interface */
ip hport LOG_IPHEARD 2048 /* Do IP heard logging on this interface */
mbox noax25 NO_AX25 4096 /* No ax.25 mbox connections on this interface */
mbox bbsonly BBS_ONLY 8192 /* BBSes only on this iface */
mbox usersonly USERS_ONLY 16384 /* Users only on this iface */
mbox sysoponly SYSOP_ONLY 32768 /* Sysops only on this iface */
ifconfig <iface> ax25 [<subcommand> [arguments]]
Sets the value for 'subcommand' per description in the ax25 commands. 'ifconfig <iface> ax25 ?' by itself displays the following list of accepted subcommands:
bbscall
bctext
blimit
cdigi
irtt
maxframe
maxwait
paclen
pthresh
retries
timertype
t2
t3
t4
version
window
ifconfig <iface> broadcast <addr>
Set the ip broadcast address of interface <iface> to <addr>.
ifconfig <iface> ax25 cdigi <call>
Set the 'crossband digipeater only' callsign. If this call is set, digipeating works independently from the 'ax25 digipeat' setting. Connections cannot be made to the cdigi call. JNOS will search for another ax.25 interface with the same Cdigi call as that of the interface receiving the digipeated packet, and transmit the digipeated packet via that interface.
Example:
ifconfig 2m ax25 cdigi 2x70
ifconfig 70cm ax25 cdigi 2x70
would allow someone to use digipeater call "2x70" to automatically transfer between the two interfaces. Note in this example you would probably wish to use beacons to ID the interfaces periodically, since the transmissions don't contain your callsign. This might argue for using a valid call-ssid as the cdigi value!
ifconfig <iface> description "descr"
This command sets the interface description to the string specified. If no descr is supplied (i.e. ""), the current description will be cleared. The description is displayed with the mailboxP command (if the interface wasn't hidden from that display). It is also shown in the ifconfig command.
ifconfig <iface> encapsulation <mode>
Sets the encapsulation for interface iface to slip or ax25. This should never be needed, since it is automatically executed when interfaces are attached.
ifconfig <iface> forward <iface-2>
When a forward is defined, all output for interface <iface> is redirected to <iface-2>. To remove the forward, set <iface-2> to <iface>.
ifconfig <iface> ipaddress <addr>
Set the IP address to <addr> for this interface. Normally the ip address is assigned from the system ip address when the interface is first attached. However, it might be necessary to change it when a system acts as a ip-gateway.
ifconfig <iface> linkaddress <linkaddr>
Set the hardware dependent address for this interface. For AX.25 this is the callsign. If you want to allow cross band digipeating, give each port a different ax.25 call with this command.
Set the maximum transfer unit to <num> bytes.
ifconfig <iface> netmask <address>
Set the sub-net mask for this interface. The <address> takes the form of an IP address with 1's in the network and subnet parts of the address, and 0's in the host part of the address. Sample: ifconfig ec0 netmask 0xffffff00 for a class C network (24 bits). This is related to the 'broadcast' subcommand. See also the 'route' command.
ifconfig <iface> ax25 paclen <num>
Set the AX.25 paclen for this interface. This is useful if you want to use a value different from the default as set with the 'ax25 paclen' command; e.g., if you have a port with an HF link, you might want to set it to 128. You can also set it to greater
than 256 if you have a high speed port. (This command only works for interfaces that can carry AX.25 connections, i.e., it is not for SLIP interfaces, etc.)
NOTE1: The AX.25 V2 specification specifies a MAXIMUM of 256 for paclen. If you have a paclen > 256, you may run into problems when interfacing to other non-NOS systems (in particular G8BPQ- based systems.)
NOTE2: The value of paclen influences NETROM behavior if the interface is activated for netrom with the 'netrom interface' command! If the paclen for this interface is smaller than any other (netrom active) paclen, the netrom mtu value will be set to this paclen - 20 ! This is to assure that you will not get fragmentation at the ax.25 level when trying to send large data packets over netrom connections. AX.25 V2.1 fragmentation is presently handled only by NOS and derived code as far as is known. Other systems, such as TheNet, BPQ, MSYS, etc., may not include proper handling of V2.1 fragmentation.
What the preceding means is, if you have a VHF port with paclen 256, and an Hf port with paclen 128, and BOTH are active with netrom, the netrom mtu will be 108 !
ifconfig <iface> rxecho <iface-2>
When a rxecho interface is defined, all input from interface <iface> is also copied (echoed) to <iface-2>. To remove rxecho, set <iface-2> to "off". This feature requires that RXECHO be #define'd at compile time.
ifconfig <iface> tcp [<command>]
Sets or displays the 'tcp' command parameters for <iface>. 'ifconfig <iface> tcp ?' by itself displays the following list:
blimit
irtt
maxwait
mss
retries
syndata
timertype
window
OUTGOING tcp connections get the values for the interface on which the initial sync packet ('connect request') is routed out. INCOMING tcp connections get the values for the interface the initial request arrives on.
System default TCP parameters must be set PRIOR TO attaching interfaces. After attaching interfaces, use the 'ifconfig <iface> tcp' commands to set the interface.
Causes the mail index program to be run and re-establish the indexes for the mailbox. 'index *' indexes ALL mailbox files.
info;
The 'info' command displays information about the NOS package
ip <subcommand>;
These commands are used for the Internet Protocol service.
Display or set ip access controls. The ip access command controls packet routing via the specified <iface> by determining which source ip addresses <sourceaddr> are routed to which destination ip addresses <destaddr>. If no ip access commands are issued for <iface>, the default behavior is to permit all sources to access all destinations. But once an IP access command is entered for <iface>, all routes via <iface> that are not specifically permitted by an ip access command, will be denied.
Execution of this subcommand will add or delete an access control entry in an internal table. Incoming packets that would be routed via <iface> are compared with the table entries for <iface>, in the order that they were added, to determine if access will be granted (and routing take place). Access will be granted only if an entry matching <destaddr> and <sourceaddr> is found with "permit" set before either a match with "deny" set is found, or the end of the table is reached. The optional /bits suffix to the ipaddr specifies how many leading bits in the ipaddr are to be considered significant in the routing comparisons. If not specified, 32 bits (i.e., full significance) is assumed. All addresses can be specified by "all". Access can be made protocol dependent via the <proto> parameter. <proto> may be 'a' for any, 't' for TCP, 'u' for UDP, 'i' for ICMP, or the IP protocol number. For UDP and TCP protocols, loport and hiport specify the port or range of TCP or UDP ports for which the access control command applies. If none or all is specified, all ports are assumed.
"ip access" will display the table of current access control entries.
Access commands should be entered from the most specific to the least specific, since the first match (permit or deny) encountered for a given interface in the internal table is definitive.
#Example:
#allow a specific AMPRnet host access to the internet ip access permit any 44.76.1.199 all eth0
#but deny all others except UDP (eg, DNS) access ip access permit udp 44/8 all eth0 all
#permit only AMPRnet hosts access to RF port ip access permit any 44/8 44/8 2m
Display or set the default local IP address. This command must be given before an 'attach' command if it is to be used as the default IP address for the interface.
ip encap [4 | 94]
Display or set the packet ID code used for transmitted IP-IP encapsulated packets. As of 1 March 1995, the default pid is 4.
Display the ip-heard list. This shows the recently heard tcp/ip systems and may be set on netrom interfaces. This See also the 'ip hport' and 'ip flush' commands.
Clear the ip-heard list. See 'ip heard' and 'ip hport'.
ip hport [<iface> [ON | off]]
Display or set the ip-heard facility. If no argument is given, show the interfaces on which ip-heard is currently active. If <iface> is given, shows the status of the ip-heard flag for the given interface. If <iface> <on|off> is given, it will set the flag on or off. Default is on.
If this flag is on, ip heard frames will be logged in a table.
This table can be shown with the 'ip heard' command or with the mailbox'IHeard' command. Ip-heard logging on ax.25 interfaces logs all ip stations heard on the port, even if the system wasn't directly involved in the ip activity. For non-ax.25 interfaces, only ip frames that we were actively involved in (i.e. that we routed) are logged. (this difference is due to code internals)
ip hport port1 off
ip hsize [n] Default: 16
Display or set the maximum size of the Ip heard table. 0 means no limit.
ip rtimer [<seconds>] Default: 30
Display or set the IP reassembly time-out.
Display Internet Protocol (IP) statistics, such as total packet counts and error counters of various types.
ip ttl [<hops>]
Display or set the default time-to-live value placed in each outgoing IP datagram. This limits the number of switch hops the datagram will be allowed to take. The idea is to bound the lifetime of the packet should it become caught in a routing loop.
You should make the value slightly larger than the number of hops across the network you expect to transit packets. The default is set at compilation time to 255, the official recommended value for the Internet.
lock [ password "<password_string"> ];
Lock the keyboard or define a password string.
If 'password' is given then <password_string> is saved as the unlock string.
If no parameters are supplied, the keyboard becomes locked when a password was specified earlier.
If the keyboard is locked, the password is requested. If a correct password is supplied, the keyboard becomes unlocked.
The setting of the password and locking of the keyboard can only been done at the system console keyboard or in the /autoexec.nos startup file. The password can not been displayed.
log [ON | off];
Turn on or off system logging. Log files are created daily and stored in the logs directory.
look [user | socket#] (/<cmd>);
This command allows peeking into a user session on the BBS or into any non-local socket. 'look [user | socket#]' brings up a window which follows the specified user or socket. If looking in on a bbs user, you can initiate a 'chat' session with that user.
There are a few commands available:
/? or /h - will show a sort help line
/m <msg> - send a message to user. (only if 'looking' at user)User sees: '<sysop>: message text'
/c - initiate a 'chat' with user. The bbs will suspend while you talk with the user.
/q or /b - if in 'chat' mode, finishes it and returns the user to the bbs.
if in 'look' mode, finishes looking at user/socket.
Note: if not in 'chat' mode, all non-command strings will be ignored.
Looking at non-bbs sockets might be helpful debugging things or seeing what an ftp user or a smtp user is doing.
Note that often you won't see what you expect: e.g., ftp user sockets don't show the data transferred including directory listings because data transfer occurs on a separate socket. (Not seeing it is NOT a bug, for once...8) )
lzw;
Lzw (Lempel-Ziv-Welch) is the data compression capability for some ASCII-mode sockets. At present, LZW compression is supported by JNOS SMTP, FTP, NNTP and POP3.
lzw mode [ fast | compact] Default: compact
Display or set the compression method used in data compression for specific sockets.
lzw bits [<number>] Default: 9
Display or set the number of bits used for the compression size.
The more bits defined the larger the table space needed. Range is 9 to 16.
lzw trace [ on | off ] Default: off
Display or set the lzw trace flag. If set on, compression statistics will be displayed on the console when a compressed socket is closed.
mailmsg <to_addr> ["<subject>"] "msg";
Mail a message to <to_addr> from <msguser>@<Hostname>. <msguser> can be set in the DOS environment (Set MSGUSER=<any_user_name>), and defaults to "sysop" if not set in the environment. <subject> is optional, and must be quoted if it contains whitespace characters. <msg> is either a string to be placed in the body of the message (quoted if it contains white- space characters) or the path to a file to be placed in the message body. A path must begin with forward or backward slashes, or a drive specification, otherwise it is taken to be a <msg> string. This command is available when JNOS was compiled with MAILMSG #define'd.
Example: mailmsg n5knx "don't forget!" "replenish the Cardhu" at 0400 "mailmsg jpd@usl.edu /stats.out+"
Note: the bm.exe program is often used to originate smtp messages in an automatic fashion, but requires that JNOS be shelled-out to run, and it is possible that memory may be insufficient to do this. An alternative might be to use the mailbox "send" command, perhaps in conjunction with the upload command (to send a file), but this can't be easily automated. Hence the introduction of the mailmsg command.
mbox [<subcommands>];
Without a subcommand, display the current users of the mailbox.
With a valid subcommand, it will execute the following commands.
mbox alias [<alias>] ["cmd"]
Set or show alias commands for the mailbox. To use an alias, the user must type the full alias which will then cause "cmd" to be executed. If the user types 'A', a list of sysop-defined aliases will be displayed. 'alias' is 6 characters maximum. "cmd" is 64 characters maximum. Note that "cmd" is in double quotes, and is interpreted as a mailbox command unless it begins with '@', in which case it is a console command. Only console commands that don't spawn sessions, and that don't require special privileges, are allowed.
'mbox alias' displays the current aliases.
'mbox alias <alias>' displays only <alias> if it is defined.
'mbox alias <alias> <cmd>' adds, deletes, or redefines <alias>
Example: To add a new BBS command -mbox alias bbs "c port bbscall"
To delete an alias- mbox alias myalias ""
To redefine an alias- mbox alias bbs "c newport newbbscall"
To invoke the console pkstat command- mbox alias pkst "@pkstat"
See also "mbox showalias", below.
mbox attend [ON | off]
This displays or sets the attend flag. If set, users can initiate chat with the sysop via the O)perator mailbox command. (You need to have started the ttylink server for this !)
mbox bbsonly [iface] [on | OFF]
Specify whether iface is only accessible to stations which have the BBS flag set.
mbox convers [ON | off]
Display or set the access to the conference bridge. The mailbox or mailbox'CONV' command is disallowed when off. Default is ON.
mbox fbb [0 | 1 | 2]
Display or set the flag which enables FBB batched-style forwarding (1) or FBB compressed and batched forwarding (2), or standard WA7MBL-style forwarding (0). The setting is used to determine which forwarding capabilities we proposed to a another station. The default value is determined by whether JNOS was compiled with FBBCMP and/or FBBFWD
#define'd. In any case, the forwarding method actually used is the intersection of capabilities of both stations involved in forwarding.
Batched forwarding allows the forwarding direction to be reversed every 5 messages. Compressed FBB forwarding requires a completely transparent connection and uses Lempel Ziv Huffman compression.
mbox fwdinfo [string]
Displays or sets the string that is used in the BBS R: header when forwarding mail to other BBSes.
mbox haddress [string]
Displays or sets your system's hierarchical bbs address. As of version 1.08, you must include the bbs call with the hierarchical address.
Example:
mbox haddress wg7j.or.usa.na
mbox header [on | OFF]
Explicitly turns the R: line in the message header on or off.
With mbox header off, regular users can forward from JNOS to another system designated as a full-service bbs without leaving a trace to their system. This avoids having a downstream bbs improperly identify the originating station as a bbs.
The elements of the R: header are optional as of JNOS107. The line has this format (where undefined elements will be dropped): R:yymmdd/hhmmz @:haddress [qth] fwdinfo #:mid $:bid Z:zip
NOTE: 'mbox header off' also turns off the mbox third-party flag.
mbox hideport [<iface>] [on | OFF]
Display or set a port that should not be displayed when the 'P' command in the mailboxis given. Display is always available to users with sysop permissions. This command is usefor for ports that should be backbone linking only, etc. Note that currently users can still do ax.25 connections via that port, if they know the name. Default is OFF, the port is displayed.
mbox hideport port1 on
mbox ifilter [on | OFF]
Display or set the spurious I-frame filter flag, which when set will prevent unexpected I-frames sent to mycall from spawning a mailbox session. The effect of setting this flag is to deny access to the mailbox unless our ax25 bbscall, ax25 ttycall, convers mycall, ax25 alias or netrom alias is used. Mbox ifilter is necessary to send IP, Net/ROM, and segmentation frames over ROSE circuits.
mbox kick [<bbscall>]
This is an immediate command. It forces the system to start a new BBS forwarding cycle. All BBSes in forward.bbs are examined unless <bbscall> is given, in which case only that entry in forward.bbs is considered. If <bbscall> is given in uppercase, a poll will be done; otherwise, a connect is attempted only when there is traffic to send.
Example: at 35 "mbox kick w5ddl+" kicks just w5ddl at hh:35
mbox kick K5ARH forces an immediate poll
mbox mailfor [interval]
mbox mailfor exclude [areaname areaname ...]
mbox mailfor watch [call_1 call_2 ...]
Interval is in seconds. At the end of each interval, the system reads all non-area mailboxes and checks them for unread mail.
Next, a beacon is sent on all active interfaces. (see 'mbox mport' command). The beacon is addressed to the AX.25 address 'MAIL'. The data in this packet contains a list of the mailboxes with unread mail in the format 'Mail for: <user> ... '. Systems such as LAN-LINK can trigger mail-snatches from this beacon. If <interval> is the string "now" an immediate check is done. 'mbox mailfor' will show the status of the timer and list mailboxes with unread mail.
In certain cases you might not want a private area to show up in the mail beacon; e.g., private areas to be forwarded to another bbs. You can exclude such areas from the beacon with the 'mbox mailfor exclude' command. 'mbox mailfor exclude area1 area2 area3 ...' will disable these area names from the beacon. You can give multiple exclude commands to build the list.
A simple 'mbox mailfor exclude' shows the list. 'mbox mailfor watch call ...' will watch for new mail arriving for the specified personal mailboxes, and add a blinking MAIL to the first status line if new mail exists. To remove the MAIL from the status line, read the last message in the appropriate mailboxes, and force a run of the mailfor process by 'mbox mailfor now'. The sysop will typically want to watch his personal mailbox, and perhaps a "check" mailbox to which unusual mail is rewritten.
mbox mailfor [interval]
mbox mailfor exclude [areaname areaname ...]
mbox mailfor watch [call_1 call_2 ...]
Interval is in seconds. At the end of each interval, the system reads all non-area mailboxes and checks them for unread mail.
Next, a beacon is sent on all active interfaces. (see 'mbox mport' command). The beacon is addressed to the AX.25 address 'MAIL'. The data in this packet contains a list of the mailboxes with unread mail in the format 'Mail for: <user> ... '. Systems such as LAN-LINK can trigger mail-snatches from this beacon. If <interval> is the string "now" an immediate check is done. 'mbox mailfor' will show the status of the timer and list mailboxes with unread mail.
In certain cases you might not want a private area to show up in the mail beacon; e.g., private areas to be forwarded to another bbs. You can exclude such areas from the beacon with the 'mbox mailfor exclude' command. 'mbox mailfor exclude area1 area2 area3 ...' will disable these area names from the beacon. You can give multiple exclude commands to build the list.
A simple 'mbox mailfor exclude' shows the list. 'mbox mailfor watch call ...' will watch for new mail arriving for the specified personal mailboxes, and add a blinking MAIL to the first status line if new mail exists. To remove the MAIL from the status line, read the last message in the appropriate mailboxes, and force a run of the mailfor process by 'mbox mailfor now'. The sysop will typically want to watch his personal mailbox, and perhaps a "check" mailbox to which unusual mail is rewritten.
This command shows how many messages have been read and sent by users and how many messages have been received from and forwarded to BBSes. Also shown is the current amount of "core" memory unused, and the number of logins, current user count, and number of different users seen since JNOS was booted.
mbox maxusers [N] Default: 0
Display or set the number of simultaneous mailbox users permitted.
A value of zero disables this feature. A mailbox connection which would exceed the maximum permitted user count, is disconnected with the error message "Too many mailbox sessions". Note that both incoming and outgoing connections, even forwarding sessions, are counted.
mbox mport [<iface>] [on | off]
Displays or sets the interfaces for 'MAIL' beacons. Set this flag for each port you want the mail beacon to be sent on.
mbox newmail [ON | off]
When ON, users will be notified during login which areas have new mail since the last time that user logged out. This function uses a time stamp on a status file for each message area. The information shown can later be repeated with the 'AN' mailbox command.
mbox noax25 [iface] [on | OFF]
Specify whether iface is only accessible to stations connecting by other than the ax.25 protocol. Connections to the converse call are not affected by this command.
mbox nobid [on | OFF]
Set whether to accept or refuse bulletins with NO BID. Off means refuse if there is no BID. On means accept regardless of BID. Default is OFF (refuse)
mbox nrid [ON | off]
When set, the first time a user logs onto the system, the system will add the netrom node id in NODE:CALL format to the prompt.
Users can then change it with the mailbox XN command. The system will use the new prompt format as set by the user the next time the user logs in.
mbox past [<N> | flush]
Displays the users that have logged on since the system has been running. If an integer <N> is provided, only the most-recent N users are displayed. If "flush" is provided, the list of past users is cleared.
mbox password <newpassword>
This sets a new remote sysop password. A remote sysop is a user whose entry in the ftpusers file has the SYSOP_CMD bit set. When a remote sysop enters the '@' command to the JNOS mailbox, and there is a non-null mbox password established, five random numbers are displayed. The remote sysop is expected to then transmit the letters corresponding to these numbers, taken as zero-relative positions in the password string. Several lines of five letters can be sent, only one of which need be correct. The last line sent must be empty, i.e., just a CR. If the response is correct, the remote sysop is then given the JNOS command-line prompt, and may issue most JNOS console commands.
Commands which would require creation of a new session are disallowed.
Use the "exit" command to exit from the JNOS command level.
mbox qth [location]
This displays or sets the location of your system, and uses it in the R: headers when doing bbs forwarding.
mbox register [ON | off]
Enable or disable user registration. If the user gives an e-mail address during registration, messages sent will include a 'Reply-To:' header with that e-mail address. Setting this command to OFF will prevent the 'please register' message from being sent to new users.
mbox reset [login_id_list]
Force a disconnect for the named user(s), or list the names of the users currently connected if no argument is provided.
mbox secure [on | OFF]
This displays or sets the mailbox secure flag. If set, only users coming on over netrom and ax25 connections can make gateway connects if they have the right privileges. If not set, anyone with the right privs can do a telnet connect, provided that their login name passes the valid-callsign tests within JNOS.
mbox sendquery [ON | off]
If on, users will be queried if they really want to send the message after they have typed the ^Z or /ex when sending a message. 'N' or 'n' will abort, anything else will send the message.
mbox showalias [on | OFF]
Set or display the flag which determines whether aliases (if defined) are listed in the mbox prompt.
mbox smtptoo [on | OFF]
This displays or sets the smtp header flag. If set, the system will include most smtp headers when forwarding the message via bbs forwarding. When not set, the headers will be stripped (default).
Displays the current users of the system {NOS}.
mbox sysoponly [iface] [on | OFF]
Specify whether port is accessible only by stations with SYSOP flag set. Default is off.
mbox timer [<nnnn>] Default = 0 (No forwarding)
Entering only the subcommand displays the forwarding setting and countdown timer value. [<nnnn>] sets the interval between forwarding attempts in seconds. When the timer matures, the forward.bbs file is scanned for entries that match the time constraints, and either have msgs to forward or have the poll flag set on their entry. A process is started to initiate forwarding with each matching entry, all processes begin at once! Finer control of forwarding times can be obtained by keeping the timer at 0, and using the at command to issue repeated 'mbox kick' commands for the desired forwarding partners. For example, at 05 "mbox kick k5arh+" will try to forward to just k5arh at five minutes after each hour.
mbox tdisc [<nnnn>]
This command sets the mailbox inactivity timer in seconds. If no user input has been received for nnnn seconds while connected to the mailbox, the user will be disconnected. Default = 0 = no timeout.
mbox tmsg [<string>]
Display or set the 'telnet message'. This is the message sent to telnet connections before the login prompt is sent!
mbox trace [on | OFF]
This displays or sets the value of the trace flag. If set, the mailbox is verbose about certain aspects of the forwarding cycle.
mbox usersonly [iface] [on | OFF]
Specify whether iface is only accessible to stations which don't have the BBS flag set.
mbox zipcode [<nnnnn>]
Set or display the system's postal zipcode. This is used in the
R: line when forwarding.
memory <subcommands>;
These commands are used for memory allocation.
Display the storage allocator free list. Each entry consists of a starting segment, in hex, and a size, in decimal bytes.
memory ibufsize [<size>]
Display or set the size of the buffers in the interrupt buffer pool. The size should be set to the largest type of buffer plus a header size of 8. For example: If your ax.25 is the only interface and a packet length of 512 is defined, the ibufsize should be 512 + 72 + 8 = 592 . The 72 is the ax.2 header (source , destination, 8 digipeaters, 1 control byte and 1 pid byte). Default is obtained from the value of IBUFSIZE in config.h.
memory minalloc [<bytes>]
Set the minimum number of bytes to allocate per malloc() call.
Setting a small value (32 or 64) might allow the realloc scheme to work more effectively by preventing excessive memory fragmentation. Default = 0, no minimum allocation size.
memory nibufs [<number>]
Display or set the number of interrupt buffer pool buffers.
If the number of buffers is set, the statistics in the 'memory status' display are reset for number of interrupt buffer fails.
The minimum available value is set to the requested number of buffers. A rule of thumb for the number of buffers is to watch the statistics and keep a minimum of 2 free buffers. Increase or decrease as required. Default is 10. See also the section on INTERFACE BUFFERS.
Display a histogram of storage allocator requested sizes. Each histogram bin is a binary order of magnitude (i.e., a factor of 2).
Display a summary of storage allocator statistics.
heap size 52560, avail 12880 (24%), morecores 150, coreleft 5872
The first line shows the total size of the internal heap, the amount of memory available on the internal heap with the percentage of the total heap size, next the number of times memory has been requested from the Operating System, and the amount of memory the OS has left over. allocs 16706, frees 16389 (diff 317), alloc fails 0, invalid frees 0
Next, the number of times memory has been allocated, and has been freed is shown. The difference is the number of buffers currently allocated. Alloc fails show up when the system is running out of memory resources. Invalid frees mean that memory was overwritten, and indicates the system is about to lose sanity... garbage collections yellow 0, red 0
Garbage collections free memory from network control structures that could not have otherwise been freed. Yellow garbage collections are started when the total available memory, i.e. avail+coreleft, becomes smaller then memthresh. Red garbage collections indicate that available memory got below memthresh/2 interrupts-off calls to malloc 0, free 0
These should never be other then 0. They indicate calls to the memory allocator with interrupts off. These requests should be handled by the interrupt buffer pool. If these values are non zero, you most likely have a problem. Intqlen 9, Ibufsize 600, Iminfree 9, Ibuffail 0
This line shows the current number of interrupts buffers in the interrupts buffer pool, the size of each buffer, and the minimum number of free buffers. If this last number gets close to, or becomes zero, you should increase the buffer pool size with the 'memory nibuf' command. The statistics are reset when this command is executed.
memory threshold [<size>]
Displays or sets the memory threshold size in bytes. If free memory gets below this value, no more new connections can be started and no new connections will be accepted. In addition, incoming packets are dropped. This is an attempt to preserve the system's sanity.
mkdir <directory>;
Create a sub-directory in the current working directory.
mode <iface> [vc | datagram];
Control the default transmission mode on the specified AX.25 interface. In datagram mode, IP packets are encapsulated in AX.25 UI frames and transmitted without any other link level mechanisms, such as connections or acknowledgments.
In vc (virtual circuit) mode, IP packets are encapsulated in AX.25 I frames and are acknowledged at the link level according to the AX.25 protocol. Link level (i.e. AX.25) connections are opened as
necessary.
In both modes, ARP is used to map IP to AX.25 addresses.
(Currently not implemented in JNOS: the defaults can be overridden with the type-of-service (TOS) bits in the IP header. Turning on the "reliability" bit causes I frames to be used, while turning on the "low delay" bit uses UI frames. The effect of turning on both bits is undefined and subject to change.)
In both modes, IP-level fragmentation is done if the datagram is larger than the interface MTU. In Virtual Circuit mode, however, the resulting datagram (or fragments) is further fragmented at the AX.25 layer if it (or they) is still larger than the AX.25 <paclen> parameter. In AX.25 fragmentation, datagrams are broken into several I frames and reassembled at the receiving end before being passed to
IP. This is preferable to IP fragmentation whenever possible because of decreased overhead (the IP header isn't repeated in each fragment) and increased robustness (a lost fragment is immediately retransmitted by the link layer).
more <filename> [<text> ...];
Display the specified file(s) a screen at a time.
To proceed to the next line, hit the CR key.
To proceed to the next screen, press the space bar. To proceed to the next console screen by first clearing the current screen, press TAB. This may be faster than the scrolling action used by the space-bar technique.
To cancel the display, hit the 'q' key.
If the text is given after the filename, each line in the file containing that text is displayed.
The 'more' command creates a session that you can suspend and resume just like any other session.
motd ["message"];
Display or set the current message of the day. This message is shown to users logging in via telnet to port 87 (the ttylink service), or via connections to the system's ttycall alias (set by the 'ax25 ttycall' command).
netrom <subcommands>;
These commands influence netrom behavior.
netrom acktime [<milliseconds>]
Displays or sets the ack delay timer, similarly to ax25 t2.
Default is 8000ms (i.e. 8 seconds).
netrom alias <aliascall>
This sets the netrom alias call for this station. Other stations can connect to the ax25 callsign and to the NetRom alias (when set). The alias is broadcast with a NetRom broadcast. If netrom is not activated, you can use the 'ax25 alias' command to set the alias callsign, such that users can still connect to the alias, even though netrom activities are not allowed.
netrom bcnodes <iface>
Initiates an immediate broadcast of nodelist on <iface>. Verbose behavior is controlled by the 'netrom interface' command.
netrom bcpoll <iface>
Initiates a poll sent to the named interface. This poll will request a netrom routes broadcast from other nodes, so that the routing table can be updated. This is automatically done any time an interface is activated (or changed) for netrom. This should speed up route discovery at startup.
netrom call <call>
Displays or sets the call to be used by the netrom interface. Note: this is a shortcut for the 'ifconfig netrom linkaddress' command. It defaults to the 'ax25 mycall' value.
netrom choke [<milliseconds>]
Display or set the time breaking a send choke. Choke is the term netrom uses for flow control conditions. Default is 180000 ms (180 seconds.)
netrom connect <node>
Starts a new JNOS session and attempts to establish a netrom transport connection with <node>, which must be a known node call or alias.
netrom derate [ON|off]
Display or set automatic derating of netrom routes on link failure. Default is on.
netrom g8bpq {on | OFF]
Display or set the G8BPQ-emulation behaviour. If set, transport layer conreq frames carry two extra bytes to indicate round-trip time, and conack frames have one extra byte to contain TTL (hopcount).
netrom hidden [on|OFF]
Display or set the hidden node flag. Nodes with aliases starting with the '#' character are displayed using the command 'N *'. Default is OFF.
netrom interface [<iface> <quality> [n]]
Activate <iface> as a netrom interface. <quality> can be between 1 and 255. Interfaces are activated using verbose routes broadcasting by default, meaning that they broadcast all known routes. This can be changed by adding the optional 'n' parameter to the command. Then only the system itself will be announced in a broadcast, not the known routes.
If the paclen of the interface is smaller then the netrom mtu + 20, then the netrom mtu will be set to paclen-20 . This is to avoid fragmentation, causing incompatibilities with non-JNOS based NetRom nodes. See the 'ifconfig <iface> paclen' command for more.
If <iface> has already been activated as a netrom interface, reissuing the command will set <quality> and [n] to the new values. 'netrom interface' will show the currently active netrom interface.
Each time an interface is activated or changed, a broadcast poll will be sent out on the interface. This minimizes the route discovery time at startup, and will update routes when the interface quality has changed.
netrom irtt [<milliseconds>]
Display or set the initial round trip time. Default is 45000ms, i.e. 45 seconds.
netrom kick <nrcb>
Give the control block a kick to get activity going again.
Retrieves the last set of netrom destination data saved with the 'netrom save' command.
netrom maxclients [<count>]
Displays or sets the maximum number of simultaneous outgoing netrom sessions that will be allowed. The default is 10. Reduce <count> if network congestion is a problem.
netrom minquality [<minqual>]
Display or set the minimum quality for recognizing a node entry. Entry's below this value are not considered valuable for usage. Default is 50. You are strongly urged to set this value much higher, so as to minimize the space needed to store the nodes list. A consequence of too many nodes listed is memory depletion, leading to lockups or reboots.
Display all known netrom neighbors.
netrom nodefilter <subcommands>
Manipulate node filtering.
netrom nodefilter add <neighbor> <iface>
Add <neighbor> on port <iface> to the filter table. See the 'netrom nodefilter mode' command to determine the manner to handle node updates from <neighbor>.
netrom nodefilter mode [none|accept|reject]
Display or set the initial node filter scheme. 'none' accepts all netrom routes and is the default. 'accept' accepts routes only from nodes defined with the 'netrom nodefilter add' command. 'reject' does not accept routes from any nodes defined with 'netrom nodefilter add'
netrom nodefilter drop <neighbor> <iface>
Delete the node <neighbor> on interface <iface> from the filter table.
netrom nodetimer [<seconds>]
Display or set the interval to transmit the nodes list. If you want to use other than the default, you must first attach the netrom interface with 'attach netrom' and then set the new nodetimer value. Default is 1800 seconds (half an hour).
netrom obsotimer [<seconds>]
Display or set the time a node obsolescence count gets decremented. If you want to use other than the default, you must first attach the netrom interface with 'attach netrom' and then set the new obsotimer value. Default is 1800 seconds.
netrom promiscuous [OFF|on]
Enables nodes with a path quality greater than defined with minquality. If on, all nodes are received regardless of nodefilter mode. Default is off.
netrom qlimit [<nnnn>]
Display or set the maximum queue limit for choke to occur. Similar to ax25 window. Default is 512 bytes.
netrom reset <nrcb>
Remove the control block. You can find the control block with the 'netrom status' or 'socket' commands.
netrom retries [<nn>]
Display or set the maximum number of retries on connect, disconnect or data. Default is 3.
netrom route <subcommands>
NetRom routing commands. Routes can be marked as 3 types in the various route displays:
'P' - a permanent route set with the 'netrom route add' command
'B' - a route received through a nodes broadcast from a neighbor node
'R' - a recorded route from an incoming packet from a not previously known netrom node
netrom route add <alias> <call> <iface> <quality> <neighbor>
Add a permanent netrom route. The new route is to netrom system <alias> with call <call>, and the route is on interface <iface> with quality <quality> via the neighbor <neighbor>.
netrom route add salem af7s-1 port1 178 k7uyx-1
A route to a direct neighbor looks like:
netrom route add crv k7uyx-1 port1 192 k7uyx-1
netrom route drop <destination> <neighbor> <iface>
Delete the netrom route to call <destination> via neighbor
<neighbor> on <iface>.
netrom route info [<destination>]
Display the route a packet would take to get to <destination>.
If <destination> is not given, information about all known netrom nodes is displayed. 'netrom route info' and 'netrom route info *' are equivalent commands.
Saves (i.e., writes) the netrom node table to Netromrile (default is /netrom.sav) for later use by the 'netrom load' command.
netrom split <node>
Same as a 'netrom connect <node>', except a split-screen is used so that keyboard input appears in its own window.
Display all netrom connections.
netrom tdisc [secs]
Display or set the NetRom Link "redundancy" timer. Value is in seconds. When no data exchange has happened during this time the link is reset and closed. Default is 900 seconds (15 minutes).
netrom timertype [exponential|LINEAR]
Displays or sets the type of backoff used on netrom retries. Default is linear.
netrom ttl [<hops>]
Display or set the maximum number of hops a frame might take before being discarded. Default is 10.
netrom user <usercall>
Display or set the user call to be used by 'netrom connect'. The default call is the ax25 mycall.
netrom window [<frames>]
Display or set the size of the sliding window. This is the largest send and receive window we might negotiate. Default is 2.
nntp;
The 'nntp' commands control the operation of the Network News
Transfer Protocol (NNTP). The nntp features are defined at compile-time. Two NNTP modules are available, "NNTP" which is an NNTP client only, that stores news in a mailbox-compatible form, and another, "NNTPS" which is both an NNTP client and server, that stores news articles in a form inaccessible to mailbox users.
We first describe the "NNTP" nntp client features:
nntp addserver <nntpserver_host> <interval> [<range>] [<groups>]
Add an NNTP news server to query every <interval> seconds for new articles in the specified <groups>. <range> specifies the time-of-day limits when the queries will be made, in the form hh:mm-hh:mm where start time precedes end time.
Multiple 'nntp addserver' commands may be used to concatenate groups (up to a maximum of 512 bytes).
Example: nntp add w5ddl.ampr.org 3600 18:00-06:00
nntp directory [ <News_spool_dir> [News_control_dir> ]
Display or set the spool directory for spooling news articles.
Default is /spool/mail. Optionally set a new control directory.
The default control dir is /spool/news.
nntp directory old=new
Establish a newsgroup name mapping, so that a newsgroup name beginning with <old> is changed to one beginning with <new>, which may be a null string. To delete a mapping, use <old>==.
The mapping scan continues until the list is exhausted, in the same order the nntp dir commands were specified.
Example: nntp dir rec.radio.=
nntp dir amateur.=
nntp dir shortwave=swl
nntp dir equipment=eq
will map rec.radio.amateur.policy to policy, rec.radio.swap to swap, rec.radio.shortwave to swl, and rec.radio.amateur.equipment to eq.
nntp dropserver <nntpserver_host>
Drop the specified NNTP server from the list of servers to contact.
nntp firstpoll [<#days>] Default: 5
Sets or shows the number of days of old news that is requested in the initial poll to a new server.
nntp groups <group> [<group> ...] Default: All groups
Display or set the currently set USEnet newsgroup(s). The group names are separated by spaces or commas. The '*' and '!' metacharacters (meaning 'all' and 'not' respectively) are supported.
nntp kick <nntpserver_host>
Kick the local NNTP client to get in touch with the named server.
List the currently defined servers.
nntp lzw <ON | off>
Turn on or off attempts to request LZW compression be used by the server when sending articles.
nntp maxcleints [<count>]
Displays or sets the maximum number of simultaneous NNTP client sessions that will be allowed. The default is 0, that is, no limit (except that imposed available memory).
nntp trace <level> Default: 1
Sets or shows the current trace level for NNTP traffic.
Level
0: No tracing.
1: Display serious errors only
2: Display serious and transient errors
3: Display serious and transient errors, plus session progress
4: Display serious and transient errors, session progress and actual received articles
5: Display errors.
Displays the active file, which shows configured newsgroups. See 'nntp create'.
nntp access [on | OFF]
Displays or sets whether access permissions are enforced. When enabled, the file /spool/news/access is scanned to determine the access permissions for a client host. Each line of this file has fields of the form: host:permissions: where host is explicit hostname (FQDN) or starname, eg, *.aara.org and permissions are a string of chars: R => read, P => post, none=>deny access. When access is turned on, hosts not mentioned are DENIED nntp access.
nntp add <nntpserver_host> <interval> [<range>] [<groups>]
Add an NNTP news server to query every <interval> seconds for new articles in the specified <groups>. If no <groups> are specified, all groups found in /spool/news/active are checked.
<range> specifies the time-of-day limits when the queries will be made, in the form hh:mm-hh:mm where start time precedes end time.
Multiple 'nntp add' commands may be used to concatenate groups (up to a maximum of 512 bytes).
Example: nntp add news.usl.edu 3600 usl.test,rec.radio.swap
nntp create <news.group.name> [y|n]
Updates the /spool/news/active file, which must have an entry for each news group you wish to receive. Choose y to permit posting to this group, or n to deny posting. y is assumed if nothing is specified. The /spool/news/pointer file is also updated with the path to the directory which will contain the articles. Articles will be stored as separate files, named by an integer corresponding to their arrival order.
nntp drop <nntpserver_host>
Drop the specified NNTP server from the list of servers to contact.
nntp dump <newsgroup> [<areaname>]
Dump all the news articles in <newsgroup> to the JNOS area called <areaname>. This would allow mailbox users to read news, but no provisions are made to dump just new articles. If <areaname> is omitted, then <newsgroup> is used as the area name.
Note: this command is unavailable if JNOS was compiled with NEWS_TO_MAIL #define'd (see note 4 below).
nntp ihave [<val>] Default: 0
Set or display the IHAVE nntp-protocol behavior.
0 => IHAVE disabled (default)
1 => IHAVE reports only for newsgroups associated with serverhost
2 => IHAVE reports for all newsgroups
The IHAVE protocol tells the server the message-ids of articles stored here; it is used to forward articles off this system.
List the currently defined servers.
Posts to a local newsgroup. A session is created, and the console user is queried for UserName (unless established by a prior 'nntp profile' command), Newsgroup, Subject, and message body. While entering the msg, a line consisting of ".u" or ".r" will then prompt for a file name, which is inserted into the article being built. "/EX", "***END" or "." will end the article when found alone on a line. When the message body is terminated, the prompt [Send, Abort, Exit, List] is displayed. Enter the first letter of the desired choice.
Note that Exit quits the post subcommand, while Abort (or Send) allows you to post another article.
nntp profile {fullname|host|organization|reply|sig|user} string_value
Profile establishes values for the header fields of posts originating here. Options include:
sig path_to_signature_file host FQDN Defaults to our 'hostname' fullname "First Mi. Lastname" organ "organization name desired" user "user name" reply reply-to-address
nntp read <newsgroup> [<article_number>]
Reads the local <newsgroup>, beginning with the first unread article unless <article_number> is also provided. A session is created for displaying the articles. After each article, a prompt "Read next/previous? (n/p/q) " allows the console user to easily progress through the articles.
nntp quiet <yes | NO> Default: no
Sets or shows the current arrival-notification setting for NNTP traffic. The notification will include a BEL character if "smtp quiet no" is in effect.
We now describe the "NNTPS" client/server commands. Remember that the 'start nntp' command must be used to allow the nntp server to accept connects from other nntp clients.
Dispays or sets the value if the quiet behavior flag. Nntp will display a message and/or beep when a new article arrives:
0 => beep only (default)
1 => beep and display msg
2 => no msg or beep
NOTES:
See the 'expire' command for information on removing old articles.
The TO: addresses, when present, are stripped from article headers by the NNTP client. This was done to prevent loops should the area be forwarded to another JNOS system, since the TO: address would cause the msg to be routed back to the mail-to-news daemon. If you want to forward an area, give the TO: address on the line in forward.bbs that lists the area. Example: rec.radio.swl all@swl
The NNTPS software includes a mail-to-news feature, such that email with a To: address that begins with "!" is passed to the NNTPS module. The remainder of the To: address is interpreted as a newsgroup name, with the name truncated at the first occurrence of one of "%@.,/", and with "!" translated to "." and "+" to ",". An alias is usually used to provide this special name. For example, to route all ALLUS bulletins to both the allus area, and the ampr.allus newsgroup, use the alias: allus allus !ampr!allus To do the above task, and also post to local.allus, use: allus allus !ampr!allus+local!allus
The NNTPS software includes a news-to-mail feature, such that news articles can be emailed to local or remote destinations after they are processed by nntp. This would allow, for example, emailing to a public area, so that BBS users too could read news articles. JNOS must be compiled with NNTPS and NEWS_TO_MAIL #define'd and a file /spool/news/gateway must exist to define the mapping from a newsgroup to an SMTP To: address. Each non-comment line in the gateway file must begin with a newsgroup name (starnames OK), followed by spaces or tabs, followed by the email To: address.
Examples:
# comment line
rec.radio.swapsale
rec.radio.shortwaveswl
rec.radio.amateur.* ham
Displays the netrom serial interface statistics. This is only valid if the serial port was attached in NRS mode. See the 'attach' command for more.
The 'oldbid' command is used to invoke the process which deletes old message-id's (or bids) in the Historyfile. The default location of Historyfile is /spool/history. Do not confuse this file with the NNTP History database, stored in /spool/news/history by default!
oldbid [interval age_in_days]
Begin the oldbid process every <interval> hours, and delete those bids which are older than <age_in_days> days. If no arguments are provided, the current oldbid interval and age are displayed.
Example: To expire bids every 24 hours, that are 30 days old, use: oldbid 24 30
param <iface> [<param> [<value>]];
Param invokes a device-specific control routine. A simple 'param
<iface>' will give a list of available parameters and their current values, for the interface <iface>. <param> can be the literal name of the parameter, or it can be its numeric index (see below). <value> is either a boolean value (such as ON or OFF) converted to 1 or 0, or an integer.
On a serial interface, the param command sends control packets over the serial port. For example, 'param port1 txdelay 255' will set the keyup timer (called txdelay) on the KISS TNC configured as port1 to 2.55 seconds (255 x .01 sec). In most TNC KISS implementations, a 10ms tick count is used, so that (for example) 30 means 300ms, and a limit of 255 is imposed on <value>.
The SCC driver, on the other hand, allows a limit of 65535 for <value>.
Currently supported <params> include:
Name (index) Definition
TxDelay (1) keyup delay before sending data
Persist (2) the csma persistence (range 0-255) (probability of success
SlotTime (3) the channel access slottime (how often we throw the dice)
TxTail (4) time to keep transmitter keyed up after end of packet
FullDup (5) simultaneous TX and RX enabled when ON
Hardware (6)
TxMute (7)
DTR (8) Assert DTR when true, de-assert when false.
RTS (9) Assert RTS when true, de-assert when false.
Speed (10) async baud, etc.
EndDelay (11)
Group (12) SCC iface group id and TX-interlock style
Idle (13)
Min (14)
MaxKey (15) maximum time to allow transmitter to be keyed (0 - 65000)
Wait (16)
Down (129) De-assert RTS and DTR on serial port
Up (130) Assert RTS and DTR on serial port
Blind (131) Ignore CTS and DSR transitions on serial port
RcvMode (253) set packet driver receive mode
Return2 (254) TNC partially (!!) exits KISS mode
Return (255) TNC exits KISS mode
Additional information for selected <params>:
The GROUP param specified an integer whose low-order 8 bits provide a transmit-group number (0 implies no group membership), and whose remaining bits provide flags describing that group's behavior:
1 => only transmit when all receive channels in this group are clear.
2 => don't transmit simultaneously on interfaces in this group.
pause <seconds>;
Pauses for the specified number of seconds. This command is commonly used in the autoexec.nos file when loading in large routing tables or to pause after various time critical commands.
ping <host> [<length> [<repeat_ms> [<incflag>]]];
Verify a host is alive, by sending it ICMP Echo Request packets.
<host> is the address to ping.
<length> is the number of bytes to use in the data portion of the packet being built. <length> defaults to a small value, sufficient to contain a timestamp to facilitate determining round-trip timing.
Any additional data bytes will contain 0x55 characters ('U').
<repeat_ms> specifies that instead of sending a single ping, a session is to be established to do repeated pings every <repeat_ms> MILLISECONDS.
A running display of attempts, round-trip times, and mean deviation of round-trip times is maintained in this session. To terminate the session, press F10 and then use the reset command.
<incflag> indicates that the host IP address is to be incremented by one at each ping attempt. It is intended to help search blocks of IP addresses for active hosts. It should be used sparingly if at all.
popmail <subcommands>;
popmail addserver <host> [<seconds>] [hh:mm-hh:mm] <protocol><mailbox> <username> <password>
Add hostP as a pop server. When seconds is given, a timer is started to query the host with that interval for mail. If not specified no quering to the pop host will be started. You have to do that manually with a kick. When hh:mm is given then only in that exact timeframe are queries to the host made (allowed).
Protocol is either POP2 or POP3, depending on the mail service the host is providing.
A JNOS POP server host need only 'start' the pop2 or pop3 daemon, and configure the popusers file, to make his/her system accessible to pop clients.
Note: pop2 is superseded by pop3. If MD5AUTHENTICATE is #define'd
JNOS pop3 supports the apop technique, which avoids, were possible, sending a plain-text password.
Mailbox is the mailbox name on the host where mail has to be picked up.
Username and password are this system's validation parameters for the host.
Note: On entering this command the host name is looked up. If nonexistent, an error message is displayed.
popmail dropserver <host>
Drops host from the list of pop servers to be queried. All references to the entry are deleted from the current system.
popmail kick <host>
Starts a pop session with host to retrieve mail. This command is needed when no interval is specified with the popmail addserver command.
Lists the current popmail server table.
popmail lzw [on|off]
Enables, disables lzw compression for popmail.
popmail quiet <yes|no>
Displays or sets the notification of new mail arriving via pop.
popmail trace <level>
Displays or sets the trace level of pop sessions. Current trace levels are:
0 - No tracing
1 - Serious errors reported
2 - Transient errors reported
3 - session progress reported
Note that tracing only goes to the log file.
popmail t4 [<#seconds>] Default: 0
Displays or sets the pop client's idle timeout value (in seconds).
Zero means no timeout, otherwise the value should be at least 300 seconds. This command is only available when POPT4 was #define'd when JNOS was compiled.
prompt [on | OFF];
The 'prompt' command sets or displays the value of the MSDOS-Style prompt switch. If set ON, and status lines are not enabled, the current directory is printed as the first part of the console command prompt.
ps;
Display process status information. The first line shows the time the system has been running, the active stack segment, the interrupt stack usage, and the JNOS psp segment. Note that the DOS JNOS code is loaded at segment address psp+0x10. Next, ps displays all processes in the system.
The fields are as follows:
PID - Process ID (the segment of the process descriptor).
SP - The current value of this process' stack pointer.
maxstk - The size of the stack allocated to this process.
stksize - The apparent peak stack utilization of this process.
This is done in a somewhat heuristic fashion, so the numbers should be treated as approximate. If this number is close to the maxstk figure, the system is likely to crash. Please notify the author if you find such a situation. (The program should be recompiled to give the process a larger allocation when it is started.)
event - The event this process is waiting for, if it is not
runnable. This is actually a pointer value.
fl - Process status flags. There are three: I (Interrupts enabled), W (Waiting for event) and S (suspended). The I flag is set whenever a task has executed a pwait() call (wait for event) without first disabling hardware interrupts. Only tasks that wait for hardware interrupt events will turn off this flag; this is done to avoid critical sections and missed interrupts.
The W flag indicates that the process is waiting for an event; the 'event' column will be non-blank. Note that although there may be several runnable processes at any time (shown in the 'ps' listing as those without the W flag and with blank event fields) only one process is actually running at any one instant (The Refrigerator Light Effect says that the 'ps' command is always the one running when this display is generated.)
pwd [<directory>];
An alias for the 'cd' command.
rarp;
The 'rarp' commands are associated with the Reverse Address
Resolution Protocol (RARP). RARP is used where a station knows its own Ethernet address or callsign but does not know its own IP address.
rarp
Display RARP statistics.
rarp query <interface> <ether_address|callsign>[<ether_address|callsign> ...]
Issue a RARP request for an IP address for <ether_address><callsign>, via <interface>.
rdate <subcommand>;
Remote Date (rdate) is used to set the time of the local JNOS system based on the time obtained from a remote system's time server. The Unix time (port 37) protocol is used.
rdate server <hostname>
Causes a connect to <hostname> TCP port 37, from which a time is obtained, adjusted by an offset if one was given, and then used to set the time on the local system.
record [off | <filename>];
Opens <filename> and appends to it all data received or sent in the current session. (This includes up/downloading to a mailbox).
For example, if you are in a Telnet session and want to initiate recording, you will need to use the <F10> key to escape back to command mode to issue the 'record' command. The message "Recording into <filename>" will be displayed and another "JNOS>" prompt will be issued. Enter CR on a blank line and you will return to the Telnet session with recording activated. The command 'record off' stops recording and closes the file; this is done automatically when the associated session is closed.
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."
Writes the quoted string to the current output stream.
remote [-s <syskey>] [-g <gwkey>]
remote [-p <port>] [-k <key>] [-a <kickaddr>] <host> kick | exit | reset
remote [-p <port>] [-k <key>] [-r addr/#bits] <host> add | drop;
The remote command can be invoked three ways. First, to set a key phrase used by the remote server process to validate commands sent to it. Second, to send a UDP packet to a specified host commanding it to exit JNOS, reset the processor, or force a retransmission on TCP connections. Third, to send a UDP packet to a specified host commanding it to either add or drop an encapped route to a specified host or subnet via the sending system's IP address, that is, register ourselves as a gateway for a specified host or subnet for a finite period.
For the second and third forms of the remote command to be accepted, the remote system must be running the remote server.
Also, the port number specified in the remote command must match the port number given when the server was started on the remote system. Further, if the remote system established a key phrase, then that phrase must also be provided via the -k option, so the remote system can check that it matches.
If the port numbers or keywords do not match, or if the remote server is not running on the target system, the command packet is ignored.
Even if the command is accepted there is no acknowledgement.
The 'kick' subcommand forces a retransmission timeout on all TCP connections that the remote node may have with the local node.
If the '-a' option is used, connections to the specified host are kicked instead. No key is required when using the 'kick' subcommand.
The 'exit' and 'reset' subcommands are mainly useful for restarting JNOS on a remote unattended system after the configuration file has been updated. The remote system should invoke JNOS automatically upon booting, preferably in an infinite loop.
The add or drop subcommands allow a JNOS system with a dynamically-assigned IP address, to register as a gateway with a cooperating system having a known IP address. The duration of the route thus established is controlled by the remote system, typically 15 minutes. Since UDP packets are not guaranteed to be delivered, it might be wise to send remote commands more frequently than the timeout. See the at command, well suited to this purpose.
The 'exit' and 'reset' subcommands of 'remote' require a password. The password is set on a given system with the '-s' option, and it is specified in a command to a remote system with the '-k' option.
If no password is set with the '-s' option, then the 'exit' and 'reset' subcommands are disabled.
The 'add' and 'drop' subcommands of remote may require a password. The password is set on a given system with the '-g' option, and it is specified in a command to a remote system with the '-k' option.
Note that 'remote' is an experimental feature in JNOS; it is not yet supported by any other non-KA9Q-derived TCP/IP implementations, although a version of the remote command for BSD Unix exists.
rename <oldfilename> <newfilename>;
Renames <oldfilename> to <newfilename>. This performs the same function as the DOS rename command.
repeat [milliseconds] command;
Starts a new session screen with the output of the command updated every interval in milliseconds. If you hit F10 it ends the session.
Example: repeat 1000 tcp status
repeats every second 'tcp status' command
rewrite <address>;
Will show the result of the mail rewrite process, that is, how <address> is changed based on the contents of Rewritefile (default location is /spool/rewrite). The result of rewriting determines whether an incoming message is stored in an area (and,
which area receives the message), or whether it is stored into /spool/mqueue for handling by SMTP. The rewrite command is useful for testing modifications to Rewritefile.
Example: rewrite n8fow@n8fow.ampr.org shows the mail rewriting that will be done for mail addressed to n8fow@n8fow.ampr.org.
REWRITE FILE
The Rewrite file is used to perform a one-to-one mapping between a message's destination (To:) addresses as received by JNOS, and the destination addresses as actually used by JNOS.
Each record within the rewrite file comprises a single line, containing either two or three fields separated by spaces. The first field is the template field; if a destination address matches the template, it is replaced by the second field after variable substitution. The rewrite process terminates after the first template match, with JNOS using the resultant value as the new destination address, unless there is an optional third field which contains the single letter "r". In this case, JNOS rescans the rewrite file from the beginning, attempting to match the new destination address with one of the templates. If no template matches the destination, it is used unchanged as the result.
If the address resulting from rewrite contains an "@" it is sent via smtp. Otherwise it should be the name of an area. There is one special case: "refuse" as the destination causes the message to be rejected.
A template contains a combination of verbatim ascii text, and special characters "?*+\". To treat a special character as an ordinary character, precede it by '\'. The '?' character matches any single character, '*' matches any number of consecutive characters (including zero), and '+' matches a sequence of one or more characters. In the second field, the character "$", followed by a single digit in the range 1 to 9, represents the string that matched the respective '*' or '+' in the template. For example,
tcpip@* tcp
*@tcpip tcp
rewrites all addresses beginning or ending with "tcpip" to the tcp area. The two-character sequence, $H, in the second field is replaced by the hostname of the system, as set by the hostname command.
rip <subcommand>;
The commands given here are used for RIP. After this list of commands is the list for RIP-2. The RIP-2 implementation includes compatibility with RIP-1. The sets of commands are separated here to improve clarity.
rip accept <gateway>
Remove the specified gateway from the RIP filter table, allowing future broadcasts from that gateway to be accepted.
rip add <hostid> <seconds> <flags>
Add an entry to the RIP broadcast table. The IP routing table will be sent to <hostid> every interval of seconds. If <flags> is specified as 1, then "split horizon" processing will be performed for this destination. That is, any IP routing table entries pointing to the interface that will be used to send this update will be removed from the update. If split horizon processing is not specified, then all routing table entries except those marked "private" will be sent in each update. (Private entries are never sent in RIP packets). If flags is 2, the broadcast will also advertise a route to the system itself. Flags are accumulative, i.e. a value of 3 will mean both "split horizon" and "me too". See also the 'route' command.
Triggered updates are always done. That is, any change in the routing table that causes a previously reachable destination to become unreachable will trigger an update that advertises the destination with metric 15, defined to mean "infinity".
Note that for RIP packets to be sent properly to a broadcast address, there must exist correct IP routing and ARP table entries that will first steer the broadcast to the correct interface and then place the correct link-level broadcast address in the link-level destination field. If a standard IP broadcast address convention is used (e.g. 44.26.0.0 or 44.26.255.255) then chances are you already have the necessary IP routing table entry (unusual subnet or cluster-addressed networks may require special attention!) However, an 'arp add' command will be required to translate this address to the appropriate link level broadcast address; For example, arp add 44.255.255.255 ax25 qst-0 for an AX25 packet radio channel. (If there are multiple AX25 interfaces, make a unique address for each interface.)
rip drop <dest>
Remove an entry from the RIP broadcast table.
Immediate command to send a rip update.
rip merge [on|OFF]
This flag controls an experimental feature for consolidating redundant entries in the IP routing table. When rip merging is enabled, the table is scanned after processing each RIP update.
An entry is considered redundant if the target(s) it covers would be routed identically by a less "specific" entry already in the table. That is, the target address(es) specified by the entry in question must also match the target addresses of the less specific entry and the two entries must have the same interface and gateway fields. For example, if the routing table contains
Dest Len Interface Gateway Metric P Timer Use
44.2.3.4 32 ax0 44.96.1.2 1 0 0 0
44.2.3.0 24 ax0 44.96.1.2 1 0 0 0
then the first entry would be deleted as redundant since packets sent to 44.2.3.4 will still be routed correctly by the second entry. Note that the relative metrics of the entries are ignored.
rip refuse <gateway>
Refuse to accept RIP updates from the specified <gateway> by adding the gateway to the RIP filter table. It may be later removed with the 'rip accept' command.
rip request <gateway>
Send a RIP Request packet to the specified <gateway>, causing it to reply with a RIP Response packet containing its routing table.
Display RIP status, including a count of the number of packets sent and received, the number of requests and responses, the number of unknown RIP packet types, and the number of refused RIP updates from hosts in the filter table. A list of the addresses and intervals to which periodic RIP updates are being sent is also shown, along with the contents of the filter table.
rip trace [0|1|2] Default is 0.
This variable controls the tracing of incoming and outgoing
RIP packets. Setting it to 0 disables all RIP tracing. A value of 1 causes changes in the routing table to be displayed, while packets that cause no changes cause no output. Setting the variable to 2 produces maximum output, including tracing of RIP packets that cause no change in the routing table.
Displays or sets the time to live timer to 'seconds'. Normal time-out value is 240 seconds. This is not the ttl in a rip broadcast (16 = infinite). Set this timer before starting rip.
Change this timer only in cooperation with your surrounding nodes. Default is 240 seconds.
rlogin <host>;
Sets up an 'rlogin' session via port 511 to a Unix-compatible host. Default terminal is a vt100-compatible terminal (with keyboard mappings as defined with the 'fkeys' command).
rmdir <directory>;
Remove a sub-directory from the current working directory. The sub-directory must be empty before 'rmdir' can be used.
route [<subcommand>];
With no arguments, 'route' displays the IP routing table.
route add <desthostid>[/bits] | default <iface> [<gatewayhostid> | direct] [<metric>]
NOTE: Attempting tcp connections to an address without an existing route fails immediately.
This command adds an entry to the routing table. It requires at least two more arguments, the desthostid of the target destination and the name of the interface <iface> to which its packets should be sent. If the destination is not local, the gateway's hostid should also be specified. (If the interface is a point-to-point link, then <gatewayhostid> may be omitted even if the target is non-local because this field is only used to determine the gateway's link level address, if any. If the destination is directly reachable, <gatewayhostid> is also unnecessary since the destination address is used to determine the interface link address). If <rspf> is used and the system is a switch / router to multiple routes, the keyword 'direct' can be used instead of a <gatewayhostid> to set the metric higher than the default of 1. This way routes advertised by other rspf stations can be cheaper and get selected. If 'direct' is given but <metric> not, an new algorithm is used to set the metric dependent on the number of subnet mask bits.
The optional /bits suffix to the destination host id specifies how many leading bits in the host id are to be considered significant in the routing comparisons. If not specified, 32 bits (i.e., full significance) is assumed. With this option, a single routing table entry may refer to many hosts all sharing a common bit string prefix in their IP addresses. For example, ARPA Class A, B and C networks would use suffixes of /8, /16 and /24 respectively. E.g. the command
route add 44/8 ax0 44.64.0.2 causes any IP addresses beginning with "44" in the first 8 bits to be routed to 44.64.0.2; the remaining 24 bits are "don't-cares".
When an IP address to be routed matches more than one entry in the routing table, the entry with largest 'bits' parameter (i.e., the "best" match) is used. This allows individual hosts or blocks of hosts to be exceptions to a more general rule for a large block of hosts.
The special destination 'default' is used to route datagrams to addresses not matched by any other entries in the routing table; it is equivalent to specifying a /bits suffix of /0 to any destination hostid. Care must be taken with 'default' entries since two nodes with default entries pointing at each other will route packets to unknown addresses back and forth in a loop until their time-to-live (TTL) fields expire. (Routing loops for specific addresses can also be created, but this is less likely to occur accidentally).
There is one built-in interface: loopback. Loopback is generally for internal purposes, although destinations explicitly routed via this interface result in the packet being dropped, i.e., loopback can be used as a bit-bucket!
Here are some examples of the route command:
# Route datagrams to IP address 44.0.0.3 to SLIP line #0.
# No gateway is needed because SLIP is point-to point.
route add 44.0.0.3 sl0
# Route all default traffic to the gateway on the local Ethernet
# with IP address 44.0.0.1
route add default ec0 44.0.0.1
# The local Ethernet has an ARPA Class-C address assignment;
# route all IP addresses beginning with 192.4.8 to it route add 192.4.8/24 ec0
# The station with IP address 44.0.0.10 is on the local AX.25 channel
route add 44.0.0.10 ax0
#An encapsulation link to 192.4.8.12 where the subnet 44.64.0.0 is accessible. The Internet does not know
#where we are but we just use them with what they know: route add 44.64.0.0/16 encap 192.4.8.12 4
route addprivate <dest hostid>[/bits] | default <iface>[<gateway hostid> [<metric>]]
This command is identical to 'route add' except that it also marks the new entry as private; it will never be included in outgoing RIP updates. It will also not be shown in themailbox 'IProute' command.
route drop <dest hostid>[/bits]
Delete an entry from the table. If a packet arrives for the deleted address and a default route is in effect, it will be used.
Delete (drop) all temporary routes, that is, routes added with an expiration timer (eg, by RIP).
route look <hostname>
Display just the routing table entry used to reach <hostname>.
route sort [off|ON]
Display or set the route display sort flag. When set, the route command will sort its report, which tends to display similar routes together. When reset, the report is by decreasing number of significant bits used in comparing host addresses.
rspf <subcommand>;
RSPF is the Radio Shortest Path First protocol. Each station listens for RRH (Router to Router Hello) messages. When such a RRH message is received, it will figure out if the link is bi-directional by pinging the other station. The protocol is described in the RSPF 2.1 specification.
rspf interface <interface> <quality> <horizon>
<interface> is the required interface rspf should use. quality is from 1 to 127, horizon is between 1 to 255. End nodes should have the quality set to 1. Immediate nodes normally set the quality to 8. The normally used value for horizon is 32.
rspf mode [vc | datagram | none]
Display the preferred mode for RSPF. Modes are vc (Virtual Circuit) and datagram. none resets the preferred mode.
rspf rrhtimer [seconds]
Display or set the rrh timer value.
rspf suspecttimer [<seconds>]
Display or set the suspect timer value.
rspf timer [<seconds>]
Display or set the update timer value.
session [<session#>] [arguments;
session <session#> flowmode [on | off]
session <session#> split [on | off]
session swapmode [ems | xms | memory | file]
Without arguments, displays the list of current sessions, including session number, associated socket, the session screen-swap mode, the session type and state, the send and receive queue sizes, and the remote TCP or AX.25 address. An asterisk (*) is shown next to the current session.
Entering a session number as an argument to the session command will put you in converse mode with that session. If you have started the TTYLINK server, and have set Attended mode, an incoming telnet connect to the ttylink port will automatically create a split-screen session and switch you to that session.
session <session#> flowmode [on | off]
<flowmode> displays or enables / disables setting of --more-- handling for <session#>. This is handy for long directory listings coming from an ftp session, for example . Escaping to command mode before issuing the dir command and entering "session # flowmode on" gives a page at a time to look at. At any time you can escape out again and switch flowmode off. Note that a ftp session has it's own flow command now built in. See FTP commands later in this manual.
To avoid the --more-- prompt when the output of console commands exceeds the screen length, turn flowmode off for session 0. This session number always exists, but is not shown in the session listing. Some commands, such as "more" or "dir", will ignore flowmode since they manage their own output pagination. But, these commands will accept a 'Q' to quit (abort) further output.
Example: session 0 flowmode off
session <session#> split [on | off]
<split> displays or enables / disables the split-window capability of session <session#>. This is useful to separate what you enter from the keyboard (shown in a small window at the bottom of the screen) from incoming data, which is shown in a large window at the top of the screen. For example, a ttylink session is begun in split mode.
session swapmode [ems | xms | memory | file]
<swapmode> displays or defines how session screens are saved when the associated session is not current. The initial setting is determined by the -m command-line argument value and/or compilation options.
Suspends JNOS and executes a sub-shell ("command processor" under MS-DOS). When the sub-shell exits, NOS resumes (under MS-DOS, enter the exit command).
Note: see the COMSPEC environment variable.
Background activity (FTP servers, etc.) is also suspended while the subshell executes. Note that this will fail unless there is sufficient unused memory for the subshell and whatever command the user tries to run. When shelled out, Mailbox Operator connects and ttylink incoming connections are refused. A 'system unattended' message is sent to the "connector" of that socket.
Here are some comments particular to the MSDOS system: if no arguments are provided to the JNOS shell command, the MSDOS command processor is invoked to process commands entered from the console.
Use the exit command to return to JNOS. If arguments are provided, the first one is assumed to be the program name to invoke. If the program is a batch file, you must precede it's name with /c so as to invoke the command processor explicitly to process the batch file commands: shell /c ibackup.bat \spool\mail \bkup
The /c prefix is also useful to allow i/o redirection to be interpreted by DOS: shell /c FC /A /C autoexec.bat autoexec.sav >outfile
skick <socket#>;
This is a shorthand for the various 'kick' subcommands. This one searches the socket for correct type and kicks the transport layer.
smtp <subcommand>;
These commands are used for the Simple Message Transport Protocol service (that is, mail).
smtp batch [yes | no]
If set smtp will batch the commands into one frame. When off only one command is sent and a response is waited for. Some old and flaky smtp servers cannot handle more than one command at a time. NOS can handle multiple. If you are not hindered by an old smtp server, setting batch reduces bandwidth. However, if you obtain bounced email containing:
>>> DATA
<<< 503 Need MAIL before RCPT
you should turn batching off!
smtp dtimeout [<hours>] Default: 0
Displays or sets the number of hours a message will remain in the smtp mqueue before being returned to sender. Delivery attempts are made at "smtp timer" intervals. If <hours> is zero, the message remains in mqueue indefinitely.
smtp gateway [<hostid> | none]
Displays or sets the host to be used as a "smart" mail relay.
Any mail sent to a host not in the domain.txt file or not found
via a nameserver query, will instead be sent to the gateway for forwarding (if #define'd). To undefine the gateway, specify "none".
smtp hopper [ON | off]
Displays or sets the flag used to enable the "hopper" feature.
This feature, available when JNOS is compiled with HOPPER #define'd, will attempt to deliver mail to a router which serves the mail's destination address. The router address is used even when an 'smtp gateway' is defined. This feature should not be enabled when X1J or other routers are used which don't accept SMTP connections.
Note that if HOPPER is ##define'd, then JNOS starts with smtp hopper enabled by default. This feature is inherently "dangerous"!
smtp kick [<hostname>]
Run through the outgoing mail queue and attempt to deliver any pending mail to all systems, or just to <hostname> if specified.
This command allows the user to "kick" the mail system manually.
Normally, this command is periodically invoked by a timer whenever NOS is running.
smtp kill <jobid>
Kill <jobid> and delete the message. If the job is "locked" by the smtp client process, you will be asked to confirm the removal.
List the current jobs in the mqueue. An "L" means locked and in progress.
It is wise to add in autoexec.bat a "del /spool/mqueue/*.lck" command, since JNOS will not remove any pre-existing locks (it assumes other tasks share the mqueue, and dare not remove their locks).
smtp maxclients [<count>]
Displays or sets the maximum number of simultaneous outgoing SMTP sessions that will be allowed. The default is 10. Reduce <count> if network congestion is a problem.
smtp maxservers [<count>]
Displays or sets the maximum number of simultaneous incoming SMTP sessions that will be allowed. The default is 0, i.e., no limit other than the amount of memory available.
smtp mode [queue | ROUTE]
Sets the smtp delivery mode. If 'queue', all messages are left in /spool/rqueue for external forwarding and handling. If 'route', messages are handled and, if for local, appended to a mailbox, or if remote they are forwarded. Default = 'route'
smtp quiet [YES | no]
Enables or disables the inclusion of a beep in the message that new mail arrived at this system. See 'smtp trace' below, to enable the printing of a new-mail-arrived message.
smtp t4 [<seconds>]
Displays or sets a t4 timer for smtp client (outgoing) sessions so that they will disconnect after a period of inactivity and prevent lockups. Default = 0, i.e., no disconnect timeout.
smtp tdisc [<seconds>]
Displays or sets a disconnect timer for smtp server (incoming) sessions so that they will disconnect after a period of inactivity and prevent lockups. Default = 0, i.e., no disconnect timeout.
smtp timer [<seconds>]
Displays or sets the interval, between scans of the outbound mail queue. For example, smtp timer 600 will cause the system to check for outgoing mail every 10 minutes and attempt to deliver anything it finds, subject of course to the smtp maxclients limit. Setting a value of zero disables queue scanning altogether. This value is recommended for standalone IP gateways that never handle mail, since it saves wear and tear on the (floppy) disk drive. Default = 0
smtp trace [<value>]
Displays or sets the trace flag in the SMTP client, allowing you to watch SMTP's conversations as it delivers mail. Zero (the default) disables tracing. A trace value of 1 just enables the "new mail for n5knx from <k5arh@w5ddl.ampr.org>". Larger values produce more voluminous trace output.
smtp usemx [yes | NO]
Displays or sets a flag enabling or disabling MX record lookups.
This can be enabled if a domain server is available in the near distance (reachable). It should be disabled (default) if no domain server is in reach to satisfy the MX query. Note that
MX record handling is limited to the five highest-preference hosts.
Also, the smtp t4 timer must be set, in order to timeout on non-responsive hosts.
Without an argument, displays all active sockets, giving their index and type, the address of the associated protocol control block and the and owner process ID and name. If the index to an active socket is supplied, the status display for the appropriate protocol is called. For example, if the socket refers to a TCP connection, the display will be that given by the 'tcp status' command with the protocol control block address.
The 'source' command runs a set of NOS commands which are in <script_filename>. This is a very convenient way of executing a series of commands without having to enter them individually at the keyboard.
Same as the 'connect' command but uses a split screen mode.
Do a 'help connect' for more info.
start <servers...>;
Start the specified server. Do a 'start ?' for a list of available servers (this won't be displayed to remote sysops).
Servers often take an argument which specifies an alternate port number from which to listen. Example: start callbook [port#] Default port: 1235
Default port numbers are listed in socket.h.
Exceptions:
start tip iface [modem | terminal] [timeout_secs] starts a mailbox server which listens for connections on <iface>.
If <modem> is used, CD (carrier detect) must be asserted before a connection is recognized. A <timeout> value specifies how many seconds of inactivity must occur before a disconnect is initiated.
A tip about using the tip server to provide async dialup access to JNOS: the following commands demonstrate one way to set it up.
# source this file to configure COM1 for dialup access to JNOS attach asy 0x3f8 4 ax25 dialup 2048 256 9600
# ifconfig dialup descrip "dialup access" param dialup up
# Send any desired config cmds here, eg, answer phone on 1st ring comm dialup "atz e0 s0=1" pause 2
#start tip dialup terminal 360 start tip dialup modem 360
# If the modem obeys DTR (must be asserted to answer the phone)
# the modem might be permed with S0=1, and then the answering could
# be controlled by param dialup up, param dialup down, commands
# possibly done daily by a repeating at command... start http [port#] [drive] [rootdir] starts an http server. The default port is 80, the default disk drive is C, and the default rootdir (for html file access) is /wwwroot.
See the http helpfile for more information, especially in the notes section.
The 'status' command displays general system information, attended flag, and a table of open files (when possible). This is useful for monitoring file transfer activity.
If STATUSWIN and STATUSWINCMD were #define'd when JNOS was compiled, the status command can take an optional argument, which determines whether the status window is turned on or off. The status window must be enabled when JNOS is started (see the -u, -w and -x command- line argument descriptions). The 'status on|off' command can then be used to disable (via "off"), or re-enable (via "on"), the status window at the top of the screen. When the status line state is changed, existing sessions will have their screen cursor repositioned.
The status window can have up to 3 lines. The first line shows the time, heap/dos available memory, number of connections to various services, and then a list of active sessions, where sessions with data waiting to be read are blinking. A blinking MAIL shows when the 'mbox mailfor watch' command detects unread email. When JNOS contains a mailbox server, the next (second) line shows the users connected to the bbs. A status symbol precedes the user's id:
none - user is idle
* - user is a bbs
@ - user is in sysop mode
! - user has gatewayed out
# - user is reading or sending mail
= - user is transferring data (up/download)
^ - user is in convers or sysop-chat mode
? - use is in none of the above, but not idle...
The final line, when present, shows data depending on the current session. The current session number and type are always displayed.
If the session is a network connection, the remote connection name, tx-queue (bytes for tcp, packets for ax.25), and state of the connection are displayed, followed by the retry timer, with current time left, and initial value. In repeat, more or look sessions, the third line shows the command, filename or user/socket for the session.
Stop the specified server, rejecting any further remote connect requests. Existing connections are allowed to complete normally.
tail <filename>;
Tail displays the last 20 (twenty) lines from <filename>. See also the taillog command.
Displays the last 20 (twenty) lines from the log file.
tcp <subcommand>;
These commands are used for the Transmission Control Protocol service. All TCP parameters are configurable per interface. Commands of the form 'tcp <command>' set the default or global values. Use the 'ifconfig <iface> tcp <command>' form to set or show the interface-specific values. To set the system default TCP parameters, you must do so BEFORE attaching interfaces. After attachment, you must use the 'ifconfig <iface> tcp' command form to show or change values for that interface.
Notes:
Attempting outgoing connections to addresses without an existing route results in Error number 219. tcp access <permit|deny|delete> <ipaddr[/bits]|all> [loport [hiport]]
Display or set tcp access controls, which determine which TCP services (ports) are accessible to which IP addresses. If no tcp access commands are issued, the default behavior is to permit all hosts to access all ports. But once a TCP access command is entered, all other ports and addresses are denied unless specifically permitted by subsequent tcp access commands.
This subcommand adds or deletes an access control entry maintained in an internal table. Incoming tcp packets are compared with the table entries, in the order that they were added, to determine if access will be granted. Access is granted only if an entry with matching ipaddr or range, and ports, is found with "permit" set before either a match with "deny" set if found, or the end of the table is reached.
The optional /bits suffix to the ipaddr specifies how many leading bits in the ipaddr are to be considered significant in the address comparisons. If not specified, 32 bits (i.e., full significance) is assumed. All addresses can be specified by "all". Loport and hiport specify the port or range of TCP ports for which the access control command applies. If "all" is given as the loport, or if no port range is specified, all ports are assumed, i.e., 1 to 65534. "tcp access" will display the table of current access control entries.
Access commands should be entered from the most specific ipaddr to the least specific, since the first match (permit or deny) encountered in the internal table is definitive.
#Example:
#Allow a specific AMPRnet host SMTP access tcp access permit 44.76.1.199 25
#but deny all other services to him tcp access deny 44.76.1.199
#Allow all other AMPRnet hosts full access to TCP services tcp access permit 44.76.1/24 all
#Allow a specific subnet access to ports 1 through 25,
#which includes echo, discard, ftp, telnet, and smtp. tcp access permit 23.1.46/24 1 25
#Note that all other hosts not matched above, are denied access
tcp blimit [<value>] Default: 31
Display or set the default tcp retransmission backoff limit. Normally each successive tcp retransmission is delayed a time value that increases exponentially or linearly. The backoff limit <value> serves to set the maximum backoff delay allowed.
See also tcp timertype and tcp maxwait.
Reset all tcp connections that are in a "FIN wait 2" state. This is useful to release memory resources held by JNOS for connections that were not properly closed.
tcp irtt [<milliseconds>]
Display or set the initial round trip time estimate, in milliseconds, to be used for new TCP connections until they can measure and adapt to the actual value. The default is 5000 milliseconds (5 seconds). Increasing irtt when operating over slow channels will avoid the flurry of re-transmissions that would otherwise occur as the smoothed estimate settles down at the correct value. Note that this command should be given before servers are started in order for it to have effect on incoming connections.
TCP also keeps a cache of measured round trip times and mean deviations (MDEV) for current and recent destinations. Whenever a new TCP connection is opened, the system first looks in this cache. If the destination is found, the cached IRTT and MDEV values are used. If not, the default IRTT value mentioned above is used, along with a MDEV of 0. This feature is fully automatic, and it can improve performance greatly when a series of connections are opened and closed to a given destination (e.g. a series of FTP file transfers or directory listings).
tcp kick <tcb_addr>
If there is unacknowledged data on the send queue of the specified TCB, this command forces an immediate retransmission. <tcb addr> can be found with the 'tcp status' command.
tcp maxwait [<msec>]
Set or show the maximum time for retry timeout in milliseconds. Default = 0, no maximum.
tcp mss [<size>]
Display or set the TCP Maximum Segment Size in bytes that will be sent on all outgoing TCP connect request (SYN segments). This tells the remote end the size of the largest segment (packet) it may send. Changing MSS affects only future connections; existing connections are unaffected.
tcp reset <tcb_addr>
Deletes the TCP control block at the specified address.
tcp retries [<num>]
Display or set the number of retries before a tcp connection will be reset. Default is 10. This is useful to eliminate idle connections that have not been properly shut down. If set to zero, there is no maximum, i.e. a connection will never retry out.
tcp rtt <tcb_addr> <milliseconds>
Replaces the automatically computed round trip time in the specified TCB with the rtt in milliseconds. This command is useful to speed up recovery from a series of lost packets since it provides a manual bypass around the normal backoff retransmission timing mechanisms.
tcp status [<tcb_addr> | all]
Without arguments, displays several TCP-level statistics, plus a summary of all existing TCP connections, including TCB address, send and receive queue sizes, local and remote sockets, and connection state. If <tcb addr> is specified, a more detailed dump of the specified TCB is generated, including send and receive sequence numbers and timer information. If "all" is given, the summary will also include TCBs in a listening state (awaiting a connection). In this case, a (S) will indicate that a server process is to be spawned when a connection occurs.
tcp syndata [yes | NO]
Display or set the tcp syn + data piggybacking flag. Some tcp systems cannot handle syn + data together.
tcp timertype [linear | exponential]
Display the current setting or set the timer type backoff algorithm. Default is linear.
tcp trace [yes | NO]
Display or set the tcp trace flag on or off.
tcp window [<size>]
Displays or sets the default receive window size in bytes to be used by TCP when creating new connections. Existing connections are unaffected.
telnet <host> [<port_number>]
The 'telnet' command allows you to initiate a connection using the Telnet protocol. The end result is much the same as doing an AX.25 connect in most cases, but you'll be taking advantage of the attributes of the TCP/IP protocols.
See also the descriptions of the "echo" and "eol" commands.
term iface [<iface> options...]
term iface <iface> 7bit [OFF | on]
term iface <iface> break [<integer>]
term iface <iface> cronly [OFF | on]
term iface <iface> flushwait [<#ms>]
term iface <iface> nlcr [OFF | on]
term iface <iface> noecho [OFF | on]
term iface <iface> noopt [OFF | on]
term iface <iface> winkdtr [OFF | on]
The term command is used to configure TCP acess to local async ports. It is only available if JNOS was compiled with TERMSERVER #define'd. Then if 'start term' is issued, connects to TCP port 5000 (default) will be asked the term password if one was defined, then asked an interface name (unless just one term interface was defined.) After these questions are answered satisfactorily, whatever is received from the tcp connection is sent to the interface, and whatever is received from the interface is sent to the tcp connection.
term iface [<iface> options...]
Displays the list of interfaces accessible via term, or establishes a term interface and its operating parameters.
term iface <iface> 7bit [OFF | on]
Displays or changes the settings of the flag which causes term to apply a mask of 0x7F to all characters read during the term session.
term iface <iface> break [<integer>]
Displays or changes the value of the character code which, when read from the tcp input stream, causes term to send a BREAK to the associated serial device. The default is -1, i.e., disabled.
Example: term iface mdm1 break 3 will interpret ASCII ^C as a send-break character.
term iface <iface> cronly [OFF | on]
Displays or changes the setting of the flag which causes term to ignore a newline (LF) read immediately after a CR is read from the tcp input stream. Note that if the nlcr option is in effect, a CRLF sequence is translated into a CRCR sequence, since the nlcr option is applied before the cronly option.
Deletes the interface <iface> from the list of interfaces accessible to term. The interface must not be in use by a term process.
term iface <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 <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 <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 <iface> noopt [OFF | on]
Displays or changes the setting of the flag which causes telnet option processing to be turned off for the duration of the a term session.
Sets the term facility password to the provided string. The default is no password required. start term [port#]
starts the server
term iface <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.
trace [<iface> [off | <btio> [outfile]];
Controls packet tracing by the interface drivers. Specific bits enable tracing of the various interfaces and the amount of information produced. Tracing is controlled on a per-interface basis; without arguments, 'trace' gives a list of all defined interfaces and their tracing status. Output can be limited to a single interface by specifying it, and the control flags can be changed by specifying them as well. Trace control flags may be followed by <outfile>, a path to a disk file to contain the tracing output.
The flags are given as a hexadecimal number which is interpreted as follows:
B - Broadcast & RawDump selector
1 - Broadcast filter flag. If set, only packets specifically addressed to this node will be traced; broadcast packets will not be displayed.
2 - If this bit is set, a "raw" dump style is selected, for those interfaces which support it (e.g., ppp).
4 - If this bit is set, include polls in the output trace of polled-kiss interfaces.
T - Controls type of tracing:
0 - Protocol headers are decoded, but data is not displayed
1 - Protocol headers are decoded, and data (but not the headers themselves) are displayed as ASCII characters, 64 characters per line. Unprintable characters are displayed as periods.
2 - Protocol headers are decoded, and the entire packet (headers AND data) is also displayed in hexadecimal and ASCII, 16 chars per line.
3 - A minimal display of headers and data is produced, provided JNOS was compiled with MONITOR #define'd.
I - Enable tracing of input packets if 1, disable if 0
O - Enable tracing of output packets if 1, disable if 0
Example:
# Trace all packets on port1 and display with headers: trace port1 0111
# Trace all lan non-broadcast received packets to a file: trace lan 1210 d:\lan_ipt.trc
ttylink <host> [<port_number>] Default: 87
The 'ttylink' command starts a tcp protocol session with <host> using the split screen mode. Also see the telnet command.
udp status;
Show the status of active udp control blocks
write <username|sock#> <message>;
Send a message to a particular user. <message> is the message, if "more then one word, put it in quotes." <username|sock#> can be either the user name of a mailboxuser, or a valid sockeor a valid socket number.
The latter allows you to send a message to a network conference user etc. See also 'writeall'.
E.g.: 'write wg7j "this is a test!"'
The message will be shown as: '<bell>*** Message from sysop
writeall <message>;
Send a message to all mailbox and conference users. This command is useful to warn users of an impending shutdown, and might be suitable for inclusion in your onexit.nos script file.
Example: writeall "N5KNX BBS shutting down...bye!"
See also: write