-----------------------------------------------------------------------------
File name:	UDP_STX.TXT			Revision date:	1999.10.11
Created by:	Ulf Ronald Andersson		Creation date:	1999.09.22
-----------------------------------------------------------------------------
This file describes the current development state of the UDP module for
STinG, as it has progressed since Peter handed over administration of the
future STinG development to me (together with all his sources of course).

The copyright to patched versions remains property of Peter Rottengatter,
and the release form remains FREEWARE, as originally defined by him.

Updates will be described below, in reverse chronological order.
-----------------------------------------------------------------------------
UDP.STX 1.44 (patched)	Beta release:	1999.10.11
----------------------
This version has a new function, UDP_info, to be used similarily to the
TCP_info function, except that some things obviously don't apply to UDP
connections.

Because the UDP_info function does not exist in older kernels, this UDP
module requires STinG kernel 1.21 or newer.  NB: Older kernels may BOMB.
-----------------------------------------------------------------------------
UDP.STX 1.43 (patched)	Beta release:	1999.09.22    Public:	1999.09.26
----------------------
This version contains some major updates relative to earlier versions.

All the Supexec calls have been removed from the UDP API functions, which
should make servers of all kinds more reliable, especially under singleTOS.
Now the only TOS function ever called by API functions is _appl_yield, as
is required for proper multitasking (NB: this is true even in singleTOS).

UDP CNbyte_count never returned E_LISTEN for passive connections.  This is
fixed by making a passive UDP connection return E_LISTEN until it has
received some incoming packet.  This ceases as soon as it does receive any
incoming packet, even if that packet has no data at all.  From then on the
value returned will be the number of data bytes received (0 if none) unless
a network error occurs, in which case that error code will be passed as is
normal for STinG API functions.  This should make consistent server design
easier, as it allows TCP and UDP functions to be 'watched' by similar means.

Note however, that in reality there is no such thing as a UDP connection
and consequently there is no such thing as a 'passive' UDP connection.

The concept is undefined, but for the purpose of our STinG usage I have
followed the tradition that a UDP opened for an unspecified remote host
IP shall be considered to be passive, and return E_LISTEN for CNbyte_count
calls, until some packet has been received.  Connections with specified
remote host will continue to function like previously, returning E_NODATA
until packets arrive.

Several of the TCP patches I have made over the last year also apply to
the UDP module, and these have now been merged in as well.
-----------------------------------------------------------------------------
End of file:	UDP_STX.TXT
-----------------------------------------------------------------------------
