General overview of the facilities of the DGD Networking package This package extends 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>