Short:        TCP/IP protocol stack
Author:       AmiTCP-Group@ndsi.fi (Network Solutions Development Inc.)
Uploader:     AmiTCP-Group nsdi fi
Type:         comm/net
Version:      Release 4.0 demo version
Architecture: m68k-amigaos

  AmiTCP/IP is the most videly used TCP/IP protocol stack for the
  Amiga. AmiTCP/IP utilizes the standard Sana-II network device
  drivers and provides an application level socket interface to the
  Internet protocol suite as an Amiga shared library.

  AmiTCP/IP is propiertary, copyrighted product of the NSDi - Network
  Solutions Development Inc, Finland.  See the file 'LICENCE' included
  in the archive for the licence conditions.

  This is the demonstration version of the AmiTCP/IP 4.0.

* About the Commercial AmiTCP/IP Version

  The commercial version of AmiTCP/IP 4.0 includes:

	- Enchanced version of AmiTCP:
	  - Frendlier logging system with global filter etc.
	  - Cache for name server replies
	  - Sana-II 2.0 support
	  - Full BOOTP support
	  - Access control for server programs
	  - Optimized version for '20 and up
	- Automatic BOOTP configuration utility
	- Printed & online User Manual
	- Technical support via email, fax and normal mail

  All the new features in the future will be added to the commercial
  version only.

  The commercial version can be ordered from:

	NSDi / Orders
	P.O.Box 32
	FIN-02151 ESPOO
	FINLAND

	email: <orders@nsdi.fi>
	fax: +358-0-452-1998

  VISA and Master Card are accepted. More complete order information
  is included in the demo version archive (in the file "HowToOrder".

* Distributions

  AmiTCP/IP 4.0 is distributed in 2 archives:

	AmiTCP-demo-40.lha	AmiTCP/IP demo version package
	AmiTCP-sdk-40.lha	Include files, link libraries and examples

  The source distribution with sources to some of the utilities and
  applications will be relesed shortly, too.

  If you just want to use AmiTCP/IP you need just 'demo'. If you want
  to write your own applications you need 'sdk', too. Number in the
  name corresponds to distribution version.

  Unpack archive(s), then read LICENCE, README.FIRST and HowToInstall.

* Bug reports 

  Send any bug reports to <AmiTCP-Bug@nsdi.fi>.

* New Features, enchancements and bug fixes on each release:

  NOTE: 3.0 beta releases are not mentioned in this list for clarity
  and to avoid unnecessary confusion.

  New Features on the commercial 4.0 (not in the demo version):

    * AmiTCP:
	- Added an optimized IP header checksum routine.
	- Added full support for the BOOTP.
	- Added Sana-II packet filtering function and interface configuration
	  flag "FILTER". This is needed only if you have several protocol
	  stacks using the same Sana-II device and unit. Envoy, for example
	  uses IP, too, so the FILTERing should be enabled on interfaces
	  shared with Envoy.
	- Added "INACTIVE" to the log window parameters.
	- Added simple (but efficient) access control to the protocol
	  stack. Now it is possible to deny TCP connections to
	  given/any ports from given/any machine.
	- Added caching of the host info got from the name servers
	- Added configuration variable LOG FILTER (defaults to 7, all
	  messages shown).

  New Utilities on 4.0 demo:

    * ch_nfsc:
	- Carsten Heyl's (SUN NFS compatible) NFS client added to the
	  distribution. (Newest version for the AmiTCP/IP 4.0).

    * ftpd:
	- net/2 ftp server ported by Magnus Lilja.
	  
    * telnet:
	- Totally new version.

    * APIPE:
	- Added to the distribution.

    * traceroute:
	- Trace routes used to send packets to some host.

    * hostname:
	- Return the AmiTCP's view of the current host name.

    * id, login, passwd, umask and whoami:
	- New usergroup.library oriented utilities
	
    * resolve:
	- Return host, network, protocol or service name from the IP
	  address, network number, protocol number or service number,
	  correspondingly. 

    * rsh:
	- Execute commands on remote hosts, note that the server
	  program is not included.

    * portmap:
	- RPC program,version to port mapper, needed to be run before
	  any RPC based servers.

    * rpcinfo:
	- Utility to show RPC bindings on a portmap on some host.

  Removed utilities on 4.0 demo:

    * ftp:
	- was outdated, use ncftp instead (Hint: alias ftp ncftp -u [])

    * qwriter:
	- not needed

    * agnet:
	- not needed
	
  New Features on 4.0 demo:

    * distribution:
	- All files which are installed to non-AmiTCP directories are
	  now placed in AmiTCP:export. After the installation is done
	  you can delete all these files.
	- ExtUtil directory contains some usefull stuff for the remote
	  Unix side.

    * AmiTCP:
	- AmiTCP now detaches itself, so it should not be started with "run"
	  any more!
	- Added the link level address handling, changed if_type to use
	  hardware types.
	- Added new sana-II errors to the error lists.
	- Added "ADDRESS" option to interface properties in db/interfaces
	  with which the default Sana-II hardware address can possibly be 
	  overriden. This is useful if the default hardware address
	  cannot be used (for example, if AmiTCP/IP is used over
	  Ethernet concurrently with DECnet protocol (Enlan DFS)).
	- Configured domain names are now used on internal host
	  searches, too.
	- Added error messages to startup failures.
	- Early error messages are now printed to the console.
	- db/resolv.conf is now read for DOMAIN and NAMESERVER entries.
	- db/netdb is not read any more, the individual files (hosts,
	  protocols, networks, sercives, resolv.conf and inet.access)
	  are read explicitly
	- WITH keyword is removed from netdb parsing
	- Removed ARexx variables TASKNAME and NTHBASE (they were
	  obsolete).
	- Added new API function GetSocketEvents().
	- Added new SocketBaseTagList() tag SBTC_SIGEVENTMASK.
	- Added new socket option SO_EVENTMASK
	- Socket owner is now set by default, _except_ after
	  ObtainSocket().
	- FIOSETOWN ioctl now demands the caller to set itself as the
	  owner.
	- db/interfaces interface names can now contain numbers and
	  must be unique, no separate unit number is used. Sana-II
	  devices unit number MUST be present.
	- Added new callback functionality to coordinate fd tables
	  with the link library. (SocketBaseTags() tag
	  SBTC_FDCALLBACK).
	- Made name server resolving multithreaded. Now each
	  application has it's own set of resolver state variables.
	  Before any name resolvation would block if another
	  resolvation was in progress.
	- Added h_errno setting via a pointer (SocketBaseTags() tag
	  SBTC_HERRNOLONGPTR).
	- Changed the AmiTCP ARexx port (AMITCP) to show only after the API
	  is up and running (no need to "wait" on the bin/startnet).
	- Added functions sendmsg() and recvmsg() for scatter/gather I/O.
	- First parameter to Dup2Socket() can now be -1 to mark the fd
          (the second parameter) as not to be used by AmiTCP.
	- Added function SocketBaseTagList(). Tag definitions for it are
          on netinclude:amitcp/socketbasetags.h
	- Added function gethostid(), which returns the primary IP
          address of the host as the unique host id.
	- Implemented gethostname() API function and HOSTNAME ARexx variable
	  (QUERY/SET). The host name is queried from the netdb and/or name
	  server, if it is not explicitly given in db/AmiTCP.config _or_ set
	  with the ARexx SET command.
	- Added support for the BSD %m feature to the syslog() (%m is
          replaced by the error description of current errno value), Also
          changed the formatting code to not use the Exec's RawDoFmt()
          allowing 32 bit values to be printed without the 'l' size
          modifier. 
	- Only the sizes 1, 2 and 4 are now allowed for the errno
          variable.
	- SetErrnoPtr() has now return value. 0 on success and -1
          otherwise. The _old_ errno indicates the error causing the
          failure.
	- "new" interface naming style (eg. slip.device/0 -> slip0)

    * db/inet.access:
	- New configuration file for Internet access control. Includes
	  documentation. (Functional only on commercial version.)

    * db/interfaces:
	- New configuration file to allow easy extension to new sana2
	  devices. Maps interface names to sana2 parameters.

    * libs/usergroup.library:
	- New library managing the user/group information.
	- default user is now "nobody".

    * devs/netinfo.device
        - New device, which handles the actual user/group database
	  files.
	- Uses DOS notifications, the changes in passwd and group
	  files are immediately visible with passwd and group maps.

    * Install_AmiTCP:
	- Various fixes and enchancements including:
	- Interfaces are handled in new style,
	- SLIP and CSLIP configuration files are now created,
	- some support for dynamic IP addressing
	- AmiTCP:log directory is created,
	- db/resolv.conf is now created,
	- added info about private IP address ranges (RFC1597),
	- "login" and "umask" are now done at startnet, not s:user-startup
	- many other clarifications and suggestions.

    * rh(c)slip.device:
	- Added configureable MTU and EOFMODE.

    * tcp_AmiTCP:
	- Added sending of custom packet to ABORT pending read packet
	  when network closes the connection. This packet is FIFO
	  spesific and won't do anything when using another handler.
	  Anyway, it works with emacs which uses FIFO to communicate
	  with spawned processes.

    * napsaterm:
	- Upgraded to version 3.8, merged enchanchements made by R. Knop
	  (tektronix emulation).
	- Telnet protocol support (-d telnet).
	- Added "About" requester.
	- Uses the usergroup.library for user information.

    * netfs:
	- Updated version.

    * tcp_AmiTCP:
	- Updated version.

    * inet-handler:
	- Updated version.

    * netstat:
	- Added resolving the IP addresses (by Pavel Troller
	  <patrol@k332.feld.cvut.cz>). The resolving is done with
	  AmiTCP command 'resolve' via APIPE:, and can be bypassed
	  with command line switch '-n'.
	- Added caching the resolved addresses (jraja).
	- Added more symbolic output (socket names, routes, &c).

    * online, offline:
	- 'new style' interface names are now recognized.
	- more informative error messages

    * ncftp:
	- Updated to the ncftp 1.8.3. Main new feature is "passive mode",
	  which can be toggled with "passive" command. Passive mode allows
	  usage through a firewall which does not let incoming connection
	  requests to come through.
	- Default stack is now 8192 bytes, since 4096 was not enough.
	- CTRL-C handling is now better, transfers can be interrupted
	  without side effects now.
	- Uses usergroup.library to find the user name _and_ home
	  directory. 

    * a2065.device:
	- Updated to a new version.

    * inetd:
	- Added DOS notifications on the inetd.conf. Now inetd will
	  read the inetd.conf again when DOS notifies that it has
	  changed.
	- Added support for naïve servers using DOS IO.  Fixed some bugs.
	- Added task priority and stack size parameters per
	  server. See the provided db/inetd.conf for examples.
	- Added command line option SERVPRI/K/N, which can be used to set
	  the process priority on which the launced servers are run. The
	  default is -1.

    * finger:
	- Changed to use stdio on the socket for improved speed (data
	  is now read in chunks instead of a byte at a time).

    * ping:
	- New loose routing option (-L).

  Fixes Bugs on 4.0 demo:

    * AmiTCP:
	- Fixed bug with configuration string setting. Too small buffer
	  restricted the configuration string sizes to less than 24 bytes.
	- Fixed bug causing second instance of AmiTCP to hang before
	  it could exit (only one copy can be run at a time).
	- Fixed concurrency control problem which very randomly caused
	  severe problems.
	- A bug causing enforcer hits with buggy SANA-II drivers is fixed.
	- Fixed syslog message level handling. It was broken if the facility
	  code was present.
	- Fixed S2_GETSTATIONADDRESS and S2_CONFIGINTERFACE usage according
	  the Sana-II standard.
	- Changed gethostbyname() not to treate the name as dot notation IP
	  address based on the first digit only. Full check for the dot
	  notation is now made.
	- Fixed ARP hardware type field to be always set to Ethernet, as 
	  specified in the standard. This means that ARP on other than 
	  ethernet is not compatible between this release and the earlier 
	  ones.
	- Host aliases are now searched case insensitively, too
	- gethostbyaddr() now checks all the addresses given to a
	  specific host.
	- ARexx result is now always given.
	- Packets exceeding MTU are now truncated, not dropped.
	- Fixed bug in getservbyname() which now checks the protocol
	  string.
	- Fixed the bug in log file/console name change notify
	  function (NETTRACE's DosBase is no more used before
	  initialization).
	- Fixed the route dumping bug.
	- Logging information is now appended to the end of the old
          log file.

    * online, offline:
	- now set the DOS error code correctly

    * serv/in.fingerd:
	- The finger -s is now called if no user names are provided.

    * db/passwd-example:
	- Root password is now empty by default. Install_AmiTCP
	  requires the user to set the root password on installation.

    * napsaterm:
	- Error messages are now printed correctly.

    * askhost, showmount:
	- Updated to allow host names starting with a digit.

    * netinfo.device:
	- Added 4 bytes to CreateIORequest() request size due Mungwall
	  pickiness.

    * ls (sort.c):
	- Fixed a sorting bug which caused a crash in some cases.
    
    * inetd:
	- Fixed bugs in server argument parsing. Before any more than
	  one argument would not have worked. (Thanks to Magnus Lilja
	  for pointing this out).

    * rsh:
	- Fixed bug which caused sending to stop if input was redirected
	  from a (not small) file.

    * ping:
	- record routing (-R) now works.


  New Features on 2.3:

    * AmiTCP:
	- New ARexx command "KILL" and a new script, bin/stopnet,
          which sends this command to AmiTCP, causing it to try to
          stop all networking applications, and if successfull,
          itself, too.

    * NcFTP:
	- Faster I/O on binary transfers.

  Fixed Bugs on 2.3:

    * AmiTCP:
	- Removed the incorrect use of M_EOR, which caused fragmented
          packets to be	truncated.

  New Features in 2.2:

    * AmiTCP:
 	- The interactive sessions have now a higher priority when
	  using rh(c)slip.device

    * netstat:
	- Routing table can be dumped

  Fixed Bugs in 2.2:

    * arp: 
	- Arp table dumping is now working

  New Features in 2.1:

    * AmiTCP:
	- A timestamp is added to the log messages
	- Faster checksum calculation implemented in assembler

    * Inet-handler:
        - With Inet-Handler you can use AmigaDOS IO to access TCP protocol

    * finger: 
	- New application, prints information about local and remote users

    * fingerd:
	- Calls now finger when asked for local users. (This feature requires
	  Apipe-handler by Per Bojsen, Apipe-handler can be found e.g. on Fish
	  disk 783)

    * ls:
	- New application, an imitation of Unix directory lister.  Supports
	  multiuser filesystems. Included as an example of user and group
	  database usage

    * Napsaterm:
	- Default window title is now the name of the remote host
	- A public screen can be used with -S switch (thanks Timo Rossi!)

    * SynClock:
	- A simple script which synchronize clock in Amiga with
	  specified host in network

EOF