This is an alpha test release of MintNet, a networking extension
for and based upon the MiNT operating system extension for Atari
computers.

You cannot use this version of MintNet without patching Mint.
Read the file README.FIRST for more info about patching.


BSD sockets are used as the interface to the user level. Currently
the unix (or file) communication domain is implemented.

The Internet stuff is partially implemented. MintNet is on the way
to become more or less complete inet implementation ...
TCP/UDP/IP/ICMP/SLIP/PLIP work in a restricted way. IP misses option
processing.

The package consists of two parts, a loadable device driver and a
library which lets you use the facilities provided by the device
driver via the usual socket(), connect(), ... calls.

There are manual pages for all the socket related library functions,
look at the subdirectory `man'.
 
All the stuff should be regarded as experimental, so

ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTOR BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


See the file INSTALL for instructions about compiling, installing and
using the package.

Some things to watch out for:
-----------------------------

o	The socket ioctl's are currently not in the Mint Library.
	Use the file sockios.h from the include dir instead.

o	IP lacks option processing.

o	Very few (only the most important from my point of view)
	ICMP message types are implemented.

o	Currently sendmsg() and recvmsg() do not support sending
	and receiving of access rights. (ie file handles in the
	unix domain).

o	There are lots of new error codes, like ENOTCONN, ...
	To get meaningful messages from perror() and strerror() and
	for support of the new errorcode you will need the MiNTLibs
	patchlevel >= 41.

o	For AF_UNIX stream sockets you can set the send buffer size
	with the setsockopt() call only if the socket is connected.
	For AF_UNIX dgram sockets you can't at all set the send buffer
	size, only receive buffer size.

o	stat(), fstat() on sockets and AF_UNIX socket files return for
	the file type S_IFCHR and S_IFREG, respectively (not S_IFSOCK).

o	select()ing for writing on dgram sockets will always report
	that writing will not block, even if the desriptor is NOT
	ready for writing.

o	The FIONREAD ioctl() call on AF_UNIX/AF_INET dgram sockets
	returns the size of the next datagram or zero if none is
	available. The FIONWRITE ioctl() call on AF_UNIX dgram sockets
	returns an infinite number bytes if you did not specify a
	destination address for the socket using connect().
	FIONWRITE on UDP sockets returns always `infinity'.

Any other things than the above mentioned that differ in their behavior
from BSD sockets are probably bugs (or maybe I forgot one :-).

Testing the socket library:
---------------------------

Please test the provided lib/dev driver in any way you can (ie port
unix software that uses sockets, compare it with other socket
implementations you know, try things which might crash, ...) and
report any bugs, improvements, suggestions, thanks, etc. etc. to

roemer@rbi.informatik.uni-frankfurt.de

The earlier I get feedback, the sooner I can fix your problems,
make new releases, ...


Have fun -- Kay Roemer.
