
                  XRouter v184c - Changes Since v183a
                  ===================================

- Added capability for http proxy to pass traffic to a downstream proxy.
  This is enabled by putting the following line in HTTP.SYS:

      proxy <ipaddr> <port> <subnet_mask>

      e.g. "proxy 44.131.91.245  80  255.0.0.0"

  <ipaddr> and <port> are those of the next proxy, while <subnet_mask>
  when combined with the proxy address specifies the range of addresses
  which are on the same subnet as the proxy.  These addressess will bypass
  the proxy, i.e. our proxy will connect directly to them instead of via
  the next proxy.

  This is all a quick bodge to enable amprnet systems to use a further
  proxy to gain a commercial ip address when contacting non-amprnet
  websites. It was necessary because amprnet routing is useless, i.e.
  if a 44-land browser tries to directly use google, the reply probably
  won't get routed back.

  For example, consider a browser (using Internet Explorer) whose IP
  address is 192.168.0.5, ethernet-linked to an Xrouter, whose ethernet
  IP address is 192.168.0.3, and radio IP address is 44.131.91.3. This
  station is radio linked to the KIDDER network access point. KIDDER is
  linked to the Internet, and via radio to other amprnet systems.

  The browser has been set up to use Xrouter's HTTP proxy, which means
  all outgoing http traffic now originates from 44.131.91.3.  This
  traffic will work fine on amprnet websites, but is unlikely to work on
  commercial internet sites.  But if the Xrouter has been set up with the
  above configuration, the amprnet (44.x.x.x) sites will be routed
  directly by the proxy, whilst the non-44 sites will be passed to
  KIDDER's http proxy, where they will gain a 62.31.206.176 source
  address, which is reliably routable and doesn't rely on the
  co-operation of others in the ampr net.

  The obvious question is, why not use KIDDER's proxy directly, using NAT
  to translate the 192.168.0.5 to 44.131.91.3?  The answer is that Win95's
  TCP/IP settings are really useless for packet radio, so the intermediate
  proxy makes it radio-friendly.  Also, it would not otherwise have been
  possible to use the 44 address for selectively working ampr web sites.

- Added another directive to HTTP.SYS:

     proxytimeout 30

  Specifies the maximum wait interval for a connection in seconds.  If a
  proxy connection takes longer than this to establish, an error is returned.
  Default is 30 secs, which was the previous fixed value.  It probably needs
  > 60 sec on a radio channel, and it probably needs to vary according to
  the destination address, e.g. 30 secs for internet and 180 sec for amprnet

- TCP window now depends on interface rf baud rate - to limit the maximum
  transmission time.  Long transmissions delay the acks and cause retries.

- Prevented destination address of 255.255.255.255 from being routed,
  or processed by NAT.

- Recent reorganisation of I/O (182j) had broken the PPP receive - fixed.

- Fixed a bug which was causing incoming TCP/IP datagrams to be rejected
  if a PAT entry applied.

- Enabled Dynamic NAT for ICMP, AXIP etc. It's not perfect, in that it
  may not perform reliably if two hosts ping an outside address at the
  same time, but it's a start!

- Added protection against zero source address if dynamic nat is invoked
  before port IP address has been negotiated.

- Added stuff to allow static entries with public ipaddr of 0.0.0.0 to
  respond to incoming frames addressed to any of our IP addresses, thus
  coping with dynamic IP. This allows ports to be "opened" through to
  LAN hosts. Thus to "open" a TCP port, use an entry like this:-

	NAT ADD STATIC 192.168.0.4:23   0.0.0.0:88  TCP

	This would "open" public TCP port 88 through to local host
	192.168.0.2 port 23.


- Fixed another bug in static NAT.

- Fixed a little problem which prevented downlinks from NAT router to a
  host on LAN when a NAT entry local addr matched the host.

- Added FTP Proxy.

- Fixed a bug which may have caused crashes if out of memory.

- Added "MTO [call | ipaddr]" which allows selective monitoring. Use
  "MTO ALL" to disable selective monitoring.

- Changed trace flags to separate ethernet from KISS and TCP from UDP.

- Added dynamic dns update client (see dyndns.txt)

- DHCP now attempts to re-obtain the previous IP address when rebooted.

- Dynamic DNS update now works on PPP ports too.

- Changed the ARKTILL scc info because the original info from the TVIPUG
  website was wrong.  Also added a little section to write 4 bytes to the
  addressable latch to enable the IRQ's.

- Netrom->ax25 proxy was broken in recent versions - fixed.

- At request of VK3TE and VK3ZZT, added HEADERLN to TNC2 emulation.

- SEND command was not working when invoked from CRONTAB.SYS - fixed.

- AGW interface wouldn't allow transmission on any port other than the
  first - fixed.

- Sysop passwords less than 5 characters were causing XRouter to crash
  when "@" command was used. It clearly states in the password.sys
  file that passwords must be over 5 characters, but I've added
  protection in case people don't take heed of my warnings.
