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: 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 . * 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 ). 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