*** PL 1:

net/unix/unix.c:
	Changed the behavior of read() and write() for streams. They
	return now as soon as any data is available (Unix like).
	However, you can turn it off (ie make read() and write() block
	as necessary) by undefining USE_UNIX_TRANSFER_STYLE in config.h.
	
net/sockutil.c, net/unix/unix.c:
	Moved the peer wakup stuff from so_release() to the abort()
	function, because probably not all protos need to do that.
	Fixed that way a problem with select(). If you select on
	a connected socket and the peer is released, you were not
	woken up from the select.

net/unix/{ stream.c, dgram.c }:
	Fixed again the return values for the FIONREAD/FIONWRITE
	Fcntl's. They return now -1 ("infinity") for broken connect-
	ions or shutdown ones.

tool/netstat.8:
	Wrote a manualpage for netstat(8).

net/unix/unixdev.c:
	Fixed a silly bug which crashed netstat sometimes. (Forgot
	the second argument to un_read_header...)

tool/netstat.c:
	Implemented a simple netstat(8). For now, only the -f option
	for `unix' is implemented. It uses the new /dev/unix device.
	So it will not work with earlier versions of MiNT-Net.

net/unix/{ unix.c, dgram.c }:
	Do un_put() when attaching, not when binding. So you can read
	also information for unbound sockets out of /dev/unix.

net/unix/{ Makefile, un.h, unixdev.c }:
	Implemented a /dev/unix device for unix domain configuration/
	information/statistics/debugging. Currently you can read an
	info structure for every unix domain socket in the system out
	of it. See unixdev.c for more infos.

*** Version 0.2:

net/unix/cache.c, net/unix/unix.c, include/config.h:
	Implemented some sort of file name lookup cache to gain some
	speed on real filesystems like the minix one. You can switch
	it on by defining USE_UN_LOOKUP_CACHE in config.h, which is
	the default. Please read the comments in config.h.

net/unix/dgram.c:
	Fixed a bug in the FIONREAD Fcntl(). Now returns 1 byte if
	shut down instead if 0.

*** PL 2:

test/dgram.c, test/dgramd.c:
	Changed to use the ability to get the senders address with
	recvfrom() or recvmsg(). Client contacts the server. Server
	gets the clients address and writes back some stuff.

test/sockname.c, test/Makefile*:
	New file to test getpeername() and getsockname().

lib/{accept.c, getsockname.c, getpeername.c, recvfrom.c, recvmsg.c}:
	Changed so they do dos->unix path name conversion when
	appropriate.

net/unix/*.c, net/unix/un.h:
	Implemented getpeername(), getsockname() on unix sockets.
	accept() returns now the address of the client (if it has one).
	recvfrom() and recvmsg() return the address of the sender.
	NOTE that the addresses returned from the above calls make only
	sense if you use ALWAYS ABSOLUTE paths for the socket files
	(for instance /tmp/sock or u:/tmp/sock, but not just sock) when
	doing bind().
	NOTE that the returned path names are always null terminated like
	normal C strings.
	The returned address length does NOT include the trailing zero.
	This is done to let you pass the addrlen returned from one of the
	above calls unchanged to socket calls like connect() or sendto().

net/unix/unix.c, net/unix/dgram.c:
	Remove the silly `un_index' and use the address of the `undata'
	instead.

*** PL 1:

INSTALL, README, lib/Makefile*:
	Cleaned up a bit, to give more information about installing
	and compiling MiNT-Net.

include/net.h, net/sockdev.c:
	Implemented file locking on sockets. It is rarely useful,
	done for completeness only. :-)

net/sockdev.c:
	Set addrlen in sock_accept() to zero if getname() failed.

lib/bind.c, lib/connect.c, lib/sendto.c, lib/sendmsg.c:
	Removed the attempt to terminate the file name in sun_path
	with '\0'. If the address structure is in read only memory
	this could cause memory violations.

lib/recvmsg.c, lib/sendmsg.c, man/recvmsg.3, man/sendmsg.3:
	Complete rewrite so that they use the dev drivers recvmsg()
	and sendmsg(). Updated the manual pages.

net/Makefile:
	Cleaned up a bit. Hopefully neither .xdd nor .tos versions
	are broken now :-)

lib/Makefile, lib/Makefile.tcc, lib/perror.c, lib/strerror.c:
	Removed Strerror() and Perror() from the socket lib, since 
	the MiNTLibs as of patchlevel 41 support the new error
	codes both in errno.h and strerror().

include/sockerr.h:
	Changed EINTR's value to 128 to match the MiNTLibs EINTR.

include/mintsock.h, include/socket.h, net/sockdev.c:
	Added recvmsg() and sendmsg() calls to the device driver.
	They handle io-vectors, but still no access rights.

lib/socket.c (-DKERNEL version only):
	socket() in ksocket16.olb now opens a O_GLOBAL handle. This
	is done because normal handles are rarely useful for a file-
	system or dev driver that uses sockets. However, if you need
	a non global handle, you can use Fdup() to get one.

include/net.h, include/iov.h, net/sockdev.c, net/unix/*.c:
	Internally all reads and writes now use io-vectors instead of
	one continuous buffer. This should make it easy to add readv(),
	writev() (if the kernel ever implements them), sendmsg() and
	recvmsg().

net/Makefile:
	Fixed so that building the .tos version is possible again
	(init.o must not be linked when building the .tos version).

*** Version 0.1

net/unix/dgram.c:
	The FIONREAD ioctl() request on unix dgram sockets returns
	now the size of the next available datagram or zero if none
	is available.

net/unix/*.c:
	Made seperate select() and ioctl() functions for unix stream
	and dgram sockets. Fixed that way some problems with select()
	and ioctl() on unix dgram sockets.

net/unix/unix.c:
	Made listen() on dgram sockets return success instead of
	failure (listen on dgram sockets has no functionality).
	This is made because BSD lets you do it too, but I'm not
	sure at all if this is right, since listen() is defined
	only for SOCK_STREAM sockets. Does anybody know better?

lib/Makefile, lib/*.c:
	Added a new make target `kernel' to build `ksocket16.olb',
	a socket library which can be used in MiNT filesystems that
	uses sockets (such as Ulrich Kuehn's NFS).
	Note that before using any of the functions in the library
	you MUST set a variable `kernelinfo' to point at the `struct
	kerinfo' obtained from the kernel, like this:
		struct kerinfo *kernelinfo;
		kernelinfo = (struct kerinfo *)Dcntl (FS_INSTALL, ...);
	The functions in the library behave as their counterparts
	in socket16.olb, except that they do not set `errno'. Instead
	they return the (negative) errorcode as the result.
	Perror() is totally bogus. But you can use Strerror() on the
	ABSOLUTE VALUE of the results returned from the library
	functions, like this:
		r = socket (AF_UNIX, ...);
		if (r < 0) {
			DEBUG (("socket() returned %s", Strerror (-r)));
			...
		}
	`ksocket16.olb' is not made by default, instead you must type:
		$ cd lib
		$ make kernel

man/sendmsg.3, man/recvmsg.3:
	Added manual pages for the new sendmsg() and recvmsg()
	library calls.

lib/sendmsg.c, lib/recvmsg.c, lib/Makefile, lib/Makefile.tcc:
	Wrote sendmsg() and recvmsg() emulations which use sendto()
	and recvfrom(). They are COMPLETELY UNTESTED. If you don't
	mind trying something out which might not work at all, just
	go ahead and tell me about the results. <grin!>
	Note that neither sendmsg() nor recvmsg() support access
	rights. I'm not sure if it's worth to include the *msg()
	calls into the device driver (lots of work). I tend to
	not include them and use the emulation instead. Tell me
	if you don't think so.

lib/bind.c, lib/connect.c, lib/sendto.c:
	When `addrlen' is not valid those functions returned EINVAL
	instead of setting errno to EINVAL and returning -1.

include/sockerr.h, man/*, lib/strerror.c:
	Made EINVAL an alias for EINVFN to prepare including the
	socket stuff into the MiNTLibs. Updated the manual pages
	to reflect this change, also replaced the Atari specific
	error codes in the manual pages with the appropriate ones
	from the MiNTLibs (ie Unix style).

net/sockdev.c:
	From sock_select() we cannot return errors, only 0, 1 or 2.

*** PL 3

net/unix/unix.c, lib/bind.c, lib/sendto.c, lib/connect.c:
	Cleaned up a bit for BSD compatibility. Namely the address length
	of a unix domain address doesn't need to include the trailing 0
	(ie the string terminator) any longer.

test/sockpair.c
	Made the parent wait for `cat' to exit. You must now type
	^D or ^C to kill it. This seems to be a better solution than
	having a stopped `cat' process after running sockpair, which
	must be kill `by hand'.

net/Makefile, net/main.c, net/init.s: ++ts
	Changed the .xdd version of the dev driver, so that it installs
	itself with Dcntl() instead of letting MiNT do the job. So we
	don't run into trouble when the user chooses to change the dev
	drivers name to something other than socket.xdd.

lib/Makefile.tcc, test/Makefile.tcc: ++ts@uni-paderborn.de
	New makefiles for compiling the library and the test programs
	with TurboC, tcc (courtesty of Thomas Schulze) and unixname.prg.
	Does anybody use this besides from Thomas ? :-)

net/unix/unix.c:
	Allowed decreasing the send buffer size for connected unix stream
	sockets, which was not possible before.

*** PL 2:

net/unix/unix.c, net/unix/dgram.c: (thanks to uk)
	The unix-datas are now managed with a hash table instead
	of a linear list. send() and sendto() should now be somewhat
	more efficient for connected unix dgram sockets, espacially
	if lots of them are used at the same time.

net/unix/dgram.c:
	Set `head' in recv() to zero instead of subtracting `buflen'
	when wrapping around. This could save some micro sec's :-).

include/kerbind.h, net/unix/*:
	Made Unix domain sockets work on MiNT's brain damaged Tos
	filesystem. They did not work, because Fxattr() manages to
	return another value for `index' every time you call it
	on the *same* file. :-(

*** PL 1:

include/config.h:
	New file for keeping all global configuration defines.
	Currently you can define:
	NDEBUG		turn debugging output off.
	NEW_SELECT	use new way for select() device driver functions
			(not yet official, so do not use it).

net/Makefile, net/main.c, net/sockdev.c: (thanks to uk)
	Added a new compile time option for making an .xdd. It is
	only useful if you use MiNT >= 1.08. By default only the
	.xdd version of the dev driver is made.
	To make the .tos version of the dev driver, you need to
	do the following:
		$ cd net
		$ make clean
		$ make
	To make the .xdd version, type (this is done by the toplevel
	Makefile by default):
		$ cd net
		$ make clean
		$ make XDD="a"

Makefile:
	Oops, forgot to change the library's name from libsocket.a
	to socket.olb.

include/version.h:
	New file for keeping version information.
