/
dgd-net/
dgd-net/doc/
dgd-net/doc/kfun/
dgd-net/src/host/unix/
dgd-net/src/kfun/
	General overview of the facilities of the DGD Networking package

This package enhances the ip networking features of DGD, at the cost of some
security. (A driver that can initiate connections or send udp packets can, if
its internal security fails, be used as a platform for further attacks by a
cracker or other malicious user.)

To install it, just copy the files in this directory tree over your DGD 1.0.a7
or 1.0.a7.1 directory tree.  If you have a different DGD version, you should
check if all files changed by this package (the originals are inluded with
.DGD extensions) are still the same in your version.

The networking package introduces three special kinds of objects:
	- tcp or telnet port objects
	- tcp or telnet connection objects
	- udp port objects

Tcp and telnet port objects are associated with a tcp port.
Whenever a client seeks a connection with a port DGD has opened, 
	accept(string clienthost, int clientport)
is called in the port object associated with that port.  This function is
expected to return an object that will function as the connection object for
that client.

Udp port objects are associated with a udp port.  There are no udp connection
objects.  When a udp datagram arrives on a port DGD has opened,
	receive_datagram(string data, string fromhost, string fromport)
is called in the udp port object associated with it.

Tcp and telnet connection objects are associated with a client.  Whenever data
arrives on a tcp connection, receive_message(string data) is called in the
connection object.  When data arrives on a telnet connection, the driver
parses it according to the telnet protocol.  Whenever a full line is parsed,
receive_message(string text) is called in the connection object.

There are kfuns for opening ports, sending udp datagrams and tcp/telnet data,
and initiating tcp or telnet connections. See kfun/open_port,
kfun/send_datagram, kfun/send_message, and kfun/connect.

The config-file entries telnet_port and binary_port are still valid but will
be ignored.  The driver object should take care of opening the appropriate
ports during initialization.

The kfun users() will return port objects as well as connection objects.
The kfun query_ip_number() will return "0.0.0.0" for port objects.

Richard Braakman <dark@hacktic.nl>