			XROUTER - RECENT CHANGES
			========================


Version 176c 30/7/02
~~~~~~~~~~~~~~~~~~~~
- "IP QUIET 1" was having the opposite effect to the intended one, i.e.
  it enabled ICMP echo replies instead of suppressing them. Fixed.

Version 176b 25/7/02
~~~~~~~~~~~~~~~~~~~~
- NAT commands are no longer sub-commands of the IP command.

- BOOTCMDS.SYS now accepts ARP, DUN, IP, NAT, PPP, and RIP configuration
  commands.

- While rooting around the code, I found a long forgotten DIAL command,
  left over from DUN development.  This caused a dialer script to run,
  but was hardwired for port 1.  Added a <port> argument, so the
  syntax is now "DIAL <port> <script>".  You would use it to manually
  trigger a dial-up connection.

- PZTHOST and PZTSOCK drivers now accept the switch "-8", to restrict
  them to 8 bit application support only.  When the driver is loaded
  before Windows, using the -8 switch prevents Windows from attempting
  to load BPQ's 16 bit drivers.  You need the 16 bit drivers for UI-View
  and Winpack, but DOS applications like PAC4, PZTBBS, and DOSFBB don't
  need them.

- When PZTHOST / PZTSOCK are loaded before Windows itself, when Windows
  booted, it would look in "\WINDOWS\SYSTEM\" to find BPQCODE.386.  This
  was *exactly* the same behaviour as BPQ.  But I was asked to hard-code
  the drive letter, so the path is now "C:\WINDOWS\SYSTEM\".  If your
  Windoze is not on C: you will now have to create a dummy directory on
  on the C: drive and stick BPQCODE.386 in it.

- ENABLE_LINKED now defaults to N instead of Y.  If your applications
  don't work with this version, it's because you have omitted the
  keyword.

- On big systems with lots of ports and very large nodes tables, there
  was not enough time to broadcast the entire table on all ports before
  the next broadcast was due.  In order to alleviate this, nodes
  broadcasts no longer honour the port PACLEN, using maximum sized
  packets instead.  The interval between frames is halved from 10 to 5
  seconds.  This is a bodge, and I will fix it properly in a later
  version.


Version 176a 18/7/02
~~~~~~~~~~~~~~~~~~~~
- Added DHCP client. This allows Xrouter to obtain IP, gateway and DNS
  addresses dynamically from a DHCP server, therefore enabling it to be
  connected directly to a cable modem as used by broadband cable ISP's.
  DHCP client action is enabled by putting "DHCP=1" in the appropriate
  PORT block in xrouter.cfg. The port IPADDR will then be set by
  DHCP.  If no global IPADDR is specified, it will also be set by dhcp.

- DNS: Modified to accommodate the situation whereby, if DHCP is used,
  the router's IP address(es) may change dynamically.

- DNS: External queries which returned a CNAME record would not resolve,
  although CNAME records in the DOMAIN.SYS file resolved normally - fixed.

- TCP: Fixed problem whereby outgoing TCP sockets were getting stuck in
  state 7 (CLOSE_WAIT) if the other end initiated link closure.

- APRS: Added an APRS server, enabling clients to exchange APRS frames
  with each other, with RF ports, with Internet servers, and with users
  of Xrouter's APRS messaging system.

- Initialisation of PSTN modems is no longer hardwired.  Now uses new
  INITSTR keyword in PORT section of xrouter.cfg.


Version 175f 5/7/02 (Restricted release)
~~~~~~~~~~~~~~~~~~~
- AXUDP: Initialisation wouldn't allow more than one AXUDP port to use
  the same local socket (IP address / UDP port number pair) - fixed.


Version 175e 29/6/02
~~~~~~~~~~~~~~~~~~~~
- When the router had been running for a long time, such that the total
  of incoming and outgoing AX25 L4 connects exceeded 32767, L4 connect
  commands issued at the command prompt were returning "Node Busy"
  message - fixed.


Version 175d 30/3/02
~~~~~~~~~~~~~~~~~~~~
- Added IP QUIET <value> command.  If non-zero, this suppresses
  responses to port probes etc.

- DNS: Minor bugfixes.

- NAT: Some changes to accommodate dynamic port IP addresses, e.g. if
  port obtains its IP address from an ISP using dialup PPP.  It no
  longer needs a special routing entry directing the public IP address
  onto a private port.


Version 175c 29/3/02
~~~~~~~~~~~~~~~~~~~~
- Modem callers: The command "XLINK PPP" now causes it to read file
  "ppphost.x" where x is the incoming port number.  This file can
  contain any PPP commmand, and is used to configure the resulting
  PPP link before it starts.

- New "<" command (e.g. "< <filename>") reads commands from a text file.
  This can be used to automate frequently used sequences of commands.

- DNS: Added DNS proxy.  In combination with dialup PPP and NAT, this
  allows Xrouter to perform internet connection sharing for a network
  of machines.


Version 175b 20/3/02
~~~~~~~~~~~~~~~~~~~~
- DNS: Added "DNS <ADD | DROP | LIST>" commands, to allow the list of
  domain servers to be managed on the fly.

- PPP: Added lots of sub-commands to allow PPP links to be configured
  on the fly.

- ARP: Added support for ARP over virtual ciruits, which for some reason
  I hadn't included before because I thought that it wasn't valid!  I'm
  still not convinced....

- ARP: was only responding to queries in which the target IP address was
  that of the port on which the request was received, i.e. the ARP on
  each port had no knowledge of the addresses on other ports.  It now
  maps all Xrouter's addresses to the appropriate port's hardware address.


Version 175a 18/3/02
~~~~~~~~~~~~~~~~~~~~
- Added PPP.

- DNS queries are now sent using the PORT address instead of the core
  address, because the core address may be private, which is clearly
  unsuitable for transmitting on a public network.


Version 174c  25/2/02
~~~~~~~~~~~~~~~~~~~~~
- FTP: Further work to accommodate automated FTP clients.  It now seems
  to work OK with "CuteFTP" and "SmartFTP", but in order to make this
  possible, "CoffeeCup FTP" will display PM times as AM - but that's a
  bug in CoffeeCup, not my problem.

- Added support for PSTN modems on ASYNC interfaces. This adds a new
  interface protocol: "MODEM". Initialisation of the modem is hardwired
  at present.  If the modem is set for auto-answer, callers can access
  Xrouter via the PSTN.

- Added new XLINK command (syntax: "XLINK <slip | ppp | kiss>") to allow
  incoming modem callers to switch to a link protocol other than ascii.
  At the moment, only XLINK SLIP is accepted.

- Added dial-up-networking (DUN), allowing Xrouter to dial out and
  establish a SLIP connection with another system on demand, i.e. when
  a packet is routed to a port which has DUN enabled.  The dialling
  and login command sequences are contained in custom script files,
  one for each DUN peer.

- Added "DUN <add | drop | list>" commands, to specify which gateways
  in the IP routing table will be accessed via dial-up links. DUN ADD
  is also recognised in IPROUTE.SYS.

- Using the STOP command without arguments now displays a list of the
  active daemon processes.


Version 174b  20/2/02
~~~~~~~~~~~~~~~~~~~~~
- Rudimentary security intended to prevent Internet users from
  downlinking on Amateur Radio frequencies wasn't working because
  I'd made a minor mistake.  Rather than simply fixing it, after
  considering the widely differing access requirements a new system
  was implemented.  This uses a new file ACCESS.SYS which specifies
  the login requirements appropriate to the caller's IP address.

- Added new file, USERPASS.SYS, which stores any passwords required
  for user access via standard telnet port (23) logins.

- Added RIP LEARN [on | off] command, to control RIP98 route learning.

- Default route is now displayed by IP ROUTES cmd.

- FTP: modified so it can be used by automated FTP clients. At present,
  it works ok with CoffeeCup FTP and WS_FTP, but not with CuteFtp and
  SmartFTP

- This version posted on Yahoo's Xrouter files area.


Version 174a 14/2/02
~~~~~~~~~~~~~~~~~~~~
- Added RIP98 protocol to enable routers to learn each other's addresses
  and routing.  This adds a new "RIP" command, with several sub-commands,
  which can be used either at the command line or in IPROUTE.SYS.

- Added INTERNAL interface type, allowing applications using the BPQHOST
  API to interconnect with Xrouter using HDLC, as if it were a wire link.


Version 173a    9/2/02
~~~~~~~~~~~~~~~~~~~~~~
- Added NAT (Network Address Translation) and PAT (Port Address
  Translation), allowing datagrams to be routed between public and
  private networks, among other benefits.  This adds a new set of
  configuration commands: IP NAT <ADD|DROP|LIST> [...]  of which
  NAT ADD <...> can also be used in IPROUTE.SYS.

- IP datagrams received on hardware multicast address were being routed
  instead of passed up to higher layers - fixed.

- Traceroute programs wouldn't show the IP address of any Xrouter in the
  route - fixed.


Version 172n   6/2/02
~~~~~~~~~~~~~~~~~~~~~
- IP: Route lookup was returning FIRST match not BEST match - fixed.

- Ascii characters > 127 were originally filtered out to keep the
  screen tidy when monitoring FBB compressed forwarding traffic.
  As requested by an Xrouter list member, this filtering has now
  been removed.

- SCC: The channels for card type PC120 were apparently in the wrong
  order. I had assumed that the 8530 at the lower address was for
  channels a/b, and the higher address was for channels c/d, as with
  all other known makes of SCC card.  Having never seen the card, and
  being unable to get any definitive information on it, even from
  PAC-COM, I can only take other peoples' word for the channel layout.
  I've swapped them over, so the IOADDR parameter must now specify
  the higher of the chip addresses.


Version 172l    21/1/02
~~~~~~~~~~~~~~~~~~~~~~~
- I think this one fixed SCC code which I'd seriously broken in 171k.


Version 172k    20/1/02
~~~~~~~~~~~~~~~~~~~~~~~
- SCC: Since v172h, SCC cards wouldn't work if SPEED was set to 0 - fixed.

- SCC: Card type PC120 being initialised like a BAYCOM, which may have
  been wrong - Fixed.

- SCC: Added card type ITACARD.  Currently only the first chip is
  recognised because there's some doubt over the register layouts in
  the second chip.  Released to one person for evaluation, as I don't
  have such a card.  If the first chip works, I can enable the second.

- SCC interfaces can now use CHANNEL=[A|B|C|D] or COM=[1|2|3|4]
  interchangeably.  This makes it compatible with previous versions,
  but alllows those sysops who can't get to grips with "COM=" to use
  the more familiar "CHANNEL=" instead.

- If a ping interval > 32 secs was specified, it generated a
  pingstorm - fixed.


Version 172j    13/1/02
~~~~~~~~~~~~~~~~~~~~~~~
- I was working too fast, and forgot to document what I'd done!


Version 172i    9/1/02
~~~~~~~~~~~~~~~~~~~~~~
- ARP ADD was reporting Error! for ethernet addresses - fixed.

- SCC: Rewrote initialisation code to save bytes, make it easier to
  understand, and create new bugs for me to fix :-)

- SCC: One of the DRSI 8536 registers wasn't being initialised - fixed.

- SCC: Added PC120 type. As with other card types, all PC120 interfaces
  on one card should use the same IOADDR and INTNUM, which should be
  the lower address.

- APRS: Static position report will now be recognised if it starts
  within the first 40 chars of a received beacon.  All other reports
  must start on the first char, as specified in APRS protocol manual.


Version 172f    27/12/01
~~~~~~~~~~~~~~~~~~~~~~~~
- Netrom: Qualities of routes to adjacent nodes were being reset to
  global minqual upon receipt of any Netrom L3 frame with that node
  as source call - fixed.


Version 172e    21/12/01
~~~~~~~~~~~~~~~~~~~~~~~~
- Netrom: "Hidden" nodes (alias beginning with #) were not being
  entered into nodes table, and L2 downlinks to the alias were not
  possible - fixed.

- IP: Added "IP ROUTE LOAD" command, to reload IP/ARP tables from
  IPROUTE.SYS file after making changes.

- Removed the duplicate IRQ check because it was preventing the use
  of shared IRQ async cards.

- IP: Virtual Cicuit routing had somehow become broken - fixed.

- AX25L2: If port paclen was set to 256 it was causing single byte
  frames - fixed.

- AX25L2: The fact that Xrouter used variable Paclens by default
  seemed to un-nerve some sysops, so I've disabled them.  Those who
  are more adventurous may re-enable adaptive parameters by setting
  the port paclen to 0.


Version 172d    6/12/01
~~~~~~~~~~~~~~~~~~~~~~~
- PMS: If no messages were stored on disk, the first message would
  be numbered 0 instead of 1 - fixed.

- Netrom: L4 connects to applications were going to the wrong one - fixed.

- Netrom: Suppressed "Trying hostxx" on L4 connects to applications.

- (probably did other stuff, but I forgot to write it down)


Version 172c    28/11/01
~~~~~~~~~~~~~~~~~~~~~~~~
- Added inbuilt PMS, and PMS command. This adds PMSCALL, PMSALIAS and
  PMSQUAL to xrouter.cfg.

- Netrom: On extended N comands, RTT was displayed as 0.00 if not known.
  It is instead no longer displayed unless it has been measured.

- Netrom: RTT figures were starting high and taking a long time to come
  down.  They also had a tendency towards the high side, but should be
  more accurate now.  Note they will always be inflated by the other
  end's delayed ack timer (often set to 10 secs on BPQ nodes).

- Netrom: At long last, found the bug, introduced in v167b, which would
  occasionally cause the router to crash upon closure of a netrom
  session.

- BPQHOST: Unproto frames sent by applications now have FIRST
  application's callsign as the source. If first application doesn't
  have a callsign, (e.g. it is only available from the command line),
  the source callsign will be that of the port on which the frame is
  transmitted. BPQ's host API spec never envisioned more than one
  "BBS" type application, so it doesn't allow me to do anything better
  than this!


Version 172b    24/11/01
~~~~~~~~~~~~~~~~~~~~~~~~
- Netrom Ping now displays resolved target as in:
  "pinging KIDDER:G8PZT <Return> to quit".

- Netrom: Added RTT to repeating NPING display, and fixed the average
  RTT which was prone to overflow at RTT > 64 sec.

- Netrom: If a "learned" netrom route was obsoleted, further frames
  wouldn't reactivate it - only a node bcast would do so - Fixed.


Version 172a   21/11/01
~~~~~~~~~~~~~~~~~~~~~~~
- SCC: Minor hack of version 172 to test a PC120 card, allowing the
  card to be specified as two separate PC100 cards at different
  IOADDR's but shared IRQ.  Released to one person only.

