26-Feb-24: Improved MAILD error handling for both SMTP and MAIL11. Improved FTP/FTPD file handling to ensure created files always have at least RD protection for user and system. 8-Feb-24: If MAILD sends mails using SMTP, and the remote side close the connection during a session, we should reopen the connection for the next mail to be delivered. 7-Feb-24: Improved IPCONFIG. 4-Feb-24: Bugfix in IPGEN. C header files should be installed to PDP11C$INCLUDE: if it exists. Bugfix in NTP building. It was referring to $TMADJ, which might be a non-existing symbol. 1-Feb-24: Bugfix in C DECnet library. Connection block setup used the wrong format codings, leading to connection failures to some operating systems. This affected MAILD. 1-Feb-24: Improved MAILD error handling for both SMTP and MAIL11 when sending mails to nodes/hosts that are not reachable. 14-Jan-24: Improved MAILD error handling when sending SMTP mails. 4-Jan-24: Improved MAILD logging. In some situations, the wrong network error code was logged. 3-Jan-24: Improved UDDRV IO timeout handling. 3-Jan-24: *** NEW RELEASE (V2.15) *** 3-Jan-24: Bugfix in UDDRV. At packet timeout, we tried to free an IP packet that don't exist. 31-Dec-23: *** NEW RELEASE (V2.14) *** 29-Dec-23: Bugfixes in all drivers. Sometimes task header was not mapped when doing manipulations that assumed the task header was mapped. 10-Dec-23: Remove buffered I/O from UDP for now. Seems to be some obscure bug in the code. 9-Dec-23: Add user flag for blocking ASTs in TCP. Change telnet server to use flag to block ASTs when terminal driver indicates XOFF, so that we can still be notified for things like connection closed. 30-Nov-23: Improve resolver ACP abort handling to avoid a race condition. 29-Nov-23: Bugfix in C IP libraries. Memory corruption could happen because a register could get corrupted. 22-Nov-23: Improved DNS resolver timers. 21-Nov-23: Improved DNS resolver. Remember all DNS servers we query, and mark servers bad not only if we get errors, but also if we get no responses at all. Bugfix in IPGEN.CMD. On initial generation, if manual interface configuration is selected, the program crashed out. 20-Nov-23: Improved DNS resolver. Remember if we have a bad DNS server, and don't make use of it for a little while. Fix various timing issues in DNS resolver. 19-Nov-23: Improved DNS resolver. If we get NXDOMAIN on a query, and we also might consider doing an mDNS query for it, we should not fail the query at the first NXDOMAIN error. Improve staggered DNS query progress. 18-Nov-23: Improved DNS resolver. It now can make use of TASK defined logical names. 17-Nov-23: Bugfixes in resolver. DNS buffer handling and logical name ordering. 15-Nov-23: Bugfix in DNS handling of CNAMEs. 14-Nov-23: Improved DNS resolving. Proper processing of .local domain. Added more error handling. 7-Nov-23: Improved DNS resolving. Better response processing, improved cache handling. 5-Nov-23: Fixed DNS caching issues. Added more types of results in DNS. Added DNS lookup tool. 1-Nov-23: Bugfix in UDP. If UDP gets an ICMP error packet, system crash out, as it was incorrectly interpreted as a packet with data. Bugfix in IPC library. neterr was not set on a successful rcv. 30-Oct-23: Bugfix in UDP. When buffer reads were introduced, the timeout handling was overlooked, and a timeouts, the task will hang. Also fix for a potential error in buffering in both UDP and TCP, in case special data function is issued, which cannot be buffered. 29-Oct-23: Complete new resolver ACP written. 19-Oct-23: Bugfix in telnet client. Even if server responded with DONT to terminal type, the terminal type was sent. Bugfix in telnet client. If we are in binary mode, CR should not be padded. 17-Oct-23: Make UDP reads buffered I/O. Add EFN user notification in UDP. 16-Oct-23: Added new RWHOD daemon, along with RUPTIME and RWHO client. 19-Sep-23: Improve TCP ack, window update and retransmit performance. 16-Sep-23: Improve TCP retransmit timer in case we are probing a zero window. 15-Sep-23: TCP driver cleanup. 12-Sep-23: Improve TCP receive retransmit logic. 9-Sep-23: Bugfix in mail reader. If a mail didn't have a label on it, the mail reader could get into an infinite loop. Repair function did not repair such mails. EXPUNGE function in mail was very slow. 5-Sep-23: Changed LPQ program to be able to take hostname argument. 29-Aug-23: Revised the BP2 inet library. 21-Aug-23: Fixed TELNET server to properly handle if TC: is not running. 21-Aug-23: Improved IPINS to dynamically select QNA or UNA for ethernet. 24-Jul-23: Improve retransmit handling. Fixed keepalive management including actually activating it when enabled. Remove separate probe handling. 23-Jul-23: Bugfix. If a TCP socket initially cannot send, the retry logic might not ever have sent any data. Bugfix. The fast retransmit logic in TCP was not working right. 22-Jul-23: Bugfix. MAILRD could crash when showing mails with long lines. 16-Jul-23: Rewritten IPCONFIG.CMD 6-Jul-23: *** NEW RELEASE (V2.13) *** 4-Jul-23: Updated XLISP to V1.7. 13-Jun-23: Added TCP fast retransmit feature. Improved MAILD SMTP send error handling. 3-Jun-23: Added lots of documentaiton for BQTLIB. Cleaned up BQTLIB. 30-May-23: Added more checks for errors on snd/rcv for telnetd. Bugfix in TCP. If IO.RAS is used to setup an AST notification, an AST should immediately be generated if we have received a FIN. 22-May-23: Improved TCP retransmit timer calculation. It was wrong on socket creation. Also added handling of delayed transmit time set to 0. 21-May-23: Improved mail queue processing to not retry mails extra times just because an error notification mail is created for something. Improved internal time handling in telnetd. 16-May-23: Changed mail daemon to only send notification mails about temporary delivery problems when the mail have been in the queue for at least 30 minutes. 14-May-23: Added full vectorization for TELNETD. 6-May-23: Changed NTPDATE to use time adjustment functionality in kernel, if it exists. Added functions in BQTLIB for adjusting time. 1-May-23: Cleaned up BQTLIB. Improve TCP retransmit to not back off for the first few retries. 29-Apr-23: Bugfix in RMD. In port page, if xmit or rcv size was greater than 32767, RMD crashed. 27-Apr-23: *** NEW RELEASE (V2.12) *** 26-Apr-23: Added improved exit status to NTPD to indicate if time changed. Added better error message to FTP in case of timeout. Added PORT command to FTP client. 20-Apr-23: Improved FTP HELP command. Improved FTP help file. Fix FTPD timeout through FTPD$TIMEOUT logical 19-Apr-23: Added idle timeout handling to FTPD. (It was lost in the previous change.) 19-Apr-23: Changed FTPD to use ast notifications for incoming commands, instead of QIO. That way, no I/O is normally active, and things like task extensions can proceed without problems. 2-Apr-23: Improved MAILD SMTP error handling when happening in the middle of an ongoing connection. 29-Mar-23: Tweaked default configuration for ethernet to improve performance. 27-Mar-23: Fix telnet server to not delay/buffer output if a write with breakthrough happens. Improved IFCONFIG SHOW ARP to read multiple entries before printing anything out. 26-Mar-23: Improved MAILRD command line parsing. 19-Mar-23: Implement TCP window scale option. 17-Mar-23: Rewritten MAILD queue RMS processing. 12-Mar-23: Improved MAILD. Mail content was artificially wrapped because of buffer length limit. This limit was now raised to proper value. 28-Feb-23: Improved MAILD SMTP send connection error handling. Changed MAIL DIRECTORY listing format slightly. 13-Feb-23: Changed MAILD MAIL11 reception to do delivery in separate process. 12-Feb-23: Changed Multinet/TCP to use push for data, and delayed ack. 8-Feb-23: Fixed MAILD SMTP$RELAY handling. Added capability to act as relay for mail for other systems. Bugfixes in mail handling and error reporting. 8-Feb-23: Improve telnetd performance by doing more buffering and fewer packets. 1-Feb-23: Implemented full TCP retransmit timeout computation according to RFC. 30-Jan-23: Changed call to notify about spammers. 13-Jan-23: Bugfix. Resolver library handled IP address string wrong. 8-Jan-23: Changed TCP retransmit handling again. 7-Jan-23: Improved behavior of TELNET and FTP with timeouts and multiple addr. 6-Jan-23: Added ability to handle multiple IP addresses for host in MAILD, TELNET, FTP 2-Jan-23: Added max pool allocation statistics. 25-Dec-22: *** NEW RELEASE (V2.11) *** 22-Dec-22: Corrected checksum update to just fix checksum generation. Checksum checking was already correct. 21-Dec-22: Corrected checksum computation and checking. Checksum values of 0 should be replaced by -1. 20-Dec-22: Improved TCP retransmit strategy. 13-Dec-22: Improved TCP NVT send processing code. Improved TCP retransmit handling. 2-Nov-22: Improved error messages from failed file operations in FTP/FTPD. 27-Nov-22: Changed FTP GET command to issue SIZE before PORT/PASV/EPSV Changed FTPD RETR command to not push after file attributes. 17-Nov-22: Added inhibit of task and session logical name table search for LPT/LPQ. 31-Oct-22: Added MDTM command to FTPD. Improved error messages on failed FTP OPEN command. 23-Oct-22: Bugfix in MAILD logging for MAIL11SND. Remote string could get corrupted. 20-Oct-22: Improved MAILD. At SMTP receive, if the remote host is bad, we returned 550. Changed to 454, as host lookups is not a permanent error. 21-Sep-22: Improved NCP as provided in RSX patches. 9-Sep-22: Made URL matching case insensitive in HTTPD. 5-Sep-22: Improved processing of URLs in HTTPD. 23-Aug-22: Improved telnet server to handle abort as stop accepting new connections, and exit when the last existing connection is closed. 11-Jun-22: Improved mail delivery logging. 30-Jun-22: Added handling of progress updates in FTP client so that it don't possibly issue many QIOs. 26-Jun-22: Added sender string as configuration to mail. Updated mailbox format. Improved mail error handling. Changed MULTINET to use nagle with immediate ACK. 20-Jun-22: Improved MAILD SMTP reception host filtering. 12-May-22: Improved installation procedure to handle installation from non-system disk. 2-May-22: Improved TCP receive packet sequence number processing. 28-Apr-22: Added ability to block mails from hosts with certain reverse DNS. Added 400 response to http requests with no host header option. 10-Apr-22: *** NEW RELEASE (V2.10) *** 9-Apr-22: Improve TCP flow control. 5-Apr-22: Fix FTPD log file lock error. Implemented retries. 2-Apr-22: Fix to make sure TCP socket in last-ack state will time out. 31-Mar-22: Improved TCP reception code. (Sequence and window check.) 26-Mar-22: Improved TCP probe handling and keepalive handling. 19-Mar-22: Improved TCP retransmit handling. 16-Mar-22: Changed semantics of TCP window update statistics. 13-Mar-22: Improved MAILD SMTP server to better handle relaying and bad host detection. 9-Mar-22: Bugfix in FTP and FTPD. When block mode read of files was done, a multibuffer implementation was used which did not free memory at completion. Added cleartext error messages in FTP and FTPD. 7-Mar-22: Improved MAILD mail delivery to not do parallel delivery to the same destination by several tasks. 3-Mar-22: Changed MAILD to use possibly multiple tasks for delivering new mails, since to some destinations, mail deliver can be really slow. Also changed SMTP mail receiver to accept mails from hosts even if they present bogus host names in HELO/EHLO command. 1-Mar-22: Changed XLISP INET daemon functionality to use a filename based on port connection accepted on. 23-Feb-22: Updated MCR. Added some more spoof notification calls in smtp mail receiver. Added a simple TXT print spooler symbiont. Improved TCP retransmit and congestion recovery. 16-Feb-22: Added hardtab expansion in LPT printer despooler. Improved TCP performance by better ACK handling at packet loss. 11-Feb-22: Added patched ACNT, PSW and SYSLOG to distribution. 8-Feb-22: Bugfix. IP packet processing could cause a crash with fragmented packets. 6-Feb-22: Added more TCP tuning parameters to IFCONFIG. 5-Feb-22: Improved TCP window update and ack sending. 4-Feb-22: Changed ftp directory Unix format timestamp. 30-Jan-22: Fixed DTR leap year bug. Fixed DDMF (remote DTR) server to set correct default directory. 28-Jan-22: Added patched NVPFSL.TSK to distribution. Added patched HELRES.TSK to distribution. 24-Jan-22: Improve DTR programming interface to allow DECnet to work in parallel with DTR. 19-Jan-22: Bugfix in ARP cache timer. If the time to the next event related to the ARP cache was too big, the timer stopped. 18-Jan-22: Bugfix in Multinet. Under some circumstances, the timers would stop. 16-Jan-22: Improve telnet option negotiation in server and client. 14-Jan-22: Added terminal type option to telnet client. Removed binary mode from telnet client. Added processing of SB/SE functions in telnet client. Added processing of SB/SE functions in telnet server. Added proper handling of terminal names in telnet server. Added proper handling of terminal names in telnet client. 13-Jan-22: *** NEW RELEASE (V2.9) *** 13-Jan-22: Bugfix in name resolver. There was a race condition that could crash the system if you were unlucky. 12-Jan-22: Improve SMTP Mail receiver to detect bad hosts. Allow them to talk with us, but only accept mails to postmaster from them. Improve DECnet ECL module to work better where speed between machines are very assymatric. 5-Jan-22: Improved TCP FIN handling when both sides send FIN at the same time. Bugfix in C spoof _notify() call. Cost was handled incorrectly. 2-Jan-22: Improved telnetd connection close processing. 30-Dec-21: Added more logging in FTPD about success/failure. Added more calls to spoof detection from MAILD. Added temporary mail delivery problem informational mail in MAILD. Improved mail queue delivery processing. 26-Dec-21: *** NEW RELEASE (V2.8) *** 19-Dec-21: Changed mail back to using MAILDN for new mail delivery. Added patched LAT. 9-Dec-21: Added patched DCL, RMSDSP, RMSDAP 5-Dec-21: Improved resolver to ignore leading spaces in hostnames. 3-Dec-21: Improved MAILD. Refuse connections from hosts with no reverse DNS, or who claim to be someone else at EHLO/HELO. 24-Nov-21: Bugfix. In some special circumstances, TCP could crash out with an odd address trap when doing an IO.REJ. 22-Nov-21: Fixed maild. If outgoing mail have format=flowed, the mail was missing an extra space on lines starting with space. 20-Nov-21: Changed TT: driver patch. Updated MCR. Change TNC2 to use the new format returned by SF.GMC. 5-Nov-21: Improved name resolver to have more randomness in returning a random result to a name lookup with multiple answers. 31-Oct-21: Improved ICMP time exceeded error handling. Also affected TRACERT. Fixed TCP handling at close, which could sometimes cause a spurios retransmit. Fixed TCP behavior at large packet loss, which could lead to very bad performance. We now reset the delayed ACK handling when we get to a delayed transmit. 18-Oct-21: Improved ICMP error return value for destination unreachable to have IE.NRJ with subcode in high byte. Second word of IOSB now contain possible additional information. 17-Oct-21: Bugfix. ICMP error generation could corrupt the IP pool in some circumstances. ICMP errors returned for destination unreachable failed to include the correct subcode. 13-Oct-21: Added mail blocking based on from address. 11-Oct-21: Improve pool utilization. 10-Oct-21: Added ability to include hardware layer overhead in packets. 26-Sep-21: Improve telnetd performance. Fix TNC2 giving an error on some terminals. 24-Sep-21: Bugfix in HTTPD. CGI execution could cause a spurious error. In Time wait state in TCP, a probe caused RST. It should be ignored. 22-Sep-21: Improvde MAILD memory usage. 19-Sep-21: Improved MAILRD handling of LAST keyword. 18-Sep-21: Improved MAILRD handling of reading current/next/previous mail. 17-Sep-21: Improved MAIL11 address rewriting in MAILD. 12-Sep-21: Improved window update handling in TCP when we have lost packets. Improved handling in the Multinet driver. 12-Sep-21: *** Re-release (V2.7) *** 12-Sep-21: Added two more files needed for patching the TT driver, and a README.TXT in [TELNETD] explaining how to install the patches. 10-Sep-21: *** NEW RELEASE (V2.7) *** 9-Sep-21: Added the ability to set a session timeout for FTPD. 15-Aug-21: Changed how TCP buffer tuning is stored and handled internally. 13-Aug-21: Improved MAILD to not use a separate MAILDN task for new mail. Local mails are now delivered by MAI..., which also is responsible for the local mail API. 6-Aug-21: Improved active tcp multinet connection handling. 29-Jul-21: Rewritten maild automatic forwarding handling. 10-Jul-21: Removed immediate ACK for TCP packets with PSH set. 7-Jul-21: Improved MAILD error mail generation. 2-Jul-21: Added settable TCP syn queue maximum size 20-Jun-21: Bugfix. TCP retransmissions failed if window size was 0. 13-Jun-21: Reworked TCP FIN logic and buffer management. TCP can now deal with up to 64K buffer size. 31-May-21: Added IO.IFL function to TC: Added _iflush() to IPC library. Fixed LPR mode of LPT spooler. 23-May-21: Improved httpd error logging. 22-May-21: Changed NTP to run under netuic. Changed DHCP to define NTP logical name in group table. 21-May-21: Changed DHCP, FTPD and TELNET to run under NETUIC. Changed IPINS to define logicals for DHCP, FTPD and TELNET under the network uic group instead of global. Changed DHCP to define state logicals in group table. 19-May-21: Added more logging information in HTTPD. 26-Apr-21: Added handling of TI: in FTP GET/PUT commands. Added handling of TI: in FTPD STOR/RETR commands. Added handling of file attribute errors in FTP/FTPD. 19-Apr-21: Added TNC2 task to define logicals at telnet terminals at login. Added files needed to update terminal driver with additional functionality. See README.DOC on TNC2 for details. 15-Apr-21: Improved ETA computation in FTP, when data rate is low. 5-Apr-21: Removed some unused functions from TC: 4-Apr-21: *** NEW RELEASE (V2.6) *** 4-Apr-21: In TCP, Change IO.REJ to create a socket in Time Wait, so that we don't get multiple requests for something we reject. Change TCP state texts. Previous LISTEN is now ACCEPT. Previous SERVER is now LISTEN. 28-Mar-21: Improved TCP congestion window handling. 26-Mar-21: Improved TCP retransmit recovery logic. 22-Mar-21: Improved mail reader screen handling. 14-Mar-21: Fix MAILD to remove temporary files if connection is dropped. Added EPRT handling to FTPD. Improve EPSV handling in FTPD. Added EPRT into FTP. 13-Mar-21: Correct TCP slow timer handling. If KAF is active, cancel timer. Added EPSV handling to FTP and FTPD. 11-Mar-21: Improve congestion window handling. 28-Feb-21: Updated IPNCONFIG.CMD for managing DECnet over IP connections. Contributed by Oleg Safiullin 24-Feb-21: Improved MAILD SMTP receive parsing. 4-Feb-21: Changed port lists in RMD and NETSTAT to not include local address by default. 20-Jan-21: Improve TCP sender. If the only thing motivating a send is a window update, we always delay it. 14-Jan-21: Bugfix for resolver. If DNS resolving results in multiple answers, the resolver only handled the first answer correctly. Bugfix for resolver. If a DNS response is received, which has an empty answer section, that is also an answer. Improve resolver cache. If we get multiple identical answers, only cache one copy. 8-Jan-21: Fix various priv issues in mail reader causing notification problems. (Bugs reported by Kevin Jordan) 7-Jan-21: Added timeout to telnetd console logging I/O. 5-Jan-21: Added mail label handling in mail reader. 3-Jan-21: Bugfix in BQTLIB. BP2 multiple IO code could misbehave. 2-Jan-21: Bugfix in mail. FILE command filed wrong mail. 1-Jan-21: Added better handling of locked records in mail. 6-Dec-20: Added not starting new processes if pool is low. 10-Nov-20: Changed TELNET server to delay small sends. 9-Nov-20: Changed TCP PU.RXP option to always return partial data, independent of push flags. Improved telnet server to not set push on data sent. Improved telnet client to use PU.RXP when in binary mode. 5-Nov-20: Improved telnet client. If connecting to something else than port 23, assume we don't do telnet negotiations. However, if remote side start doing them, we will also start doing them. 1-Nov-20: Improved mail submission processing to not wait until mail actually delivered before returning status. Improved performance in adding mails to a mailbox. 24-Oct-20: *** NEW RELEASE (V2.5) *** 12-Oct-20: Added PU.ACK as an option on TCP ports. Modified telnet server to use PU.ACK. 8-Oct-20: Added LPR protocol to LPT. 3-Oct-20: Improved TCP ACK strategy. Improved FTP and FTPD push strategy. Improved TELNET and TELNETD push strategy. Improved default TCP configuration. 30-Sep-20: Reworked TCP retransmission and fast recovery. 29-Sep-20: Reworked TCP window updating. 28-Sep-20: Improved TCP push handling. Only set PSH on last packet of sequence of packets included in push. 18-Sep-20: Corrected reads from TCP. Under some circumstances, read could return IE.NLN on a closed socket, when it should have returned IE.EOF. 9-Sep-20: Improved network reject error handling in MAIL11 sending. 6-Sep-20: Changed mail queue output format. 14-Aug-20: Added port number to host string in FTPD login message. Changed FTP client to probe for RSX system to after login. Some Linux ftp servers are broken, and gives multiple responses to commands given before logging in. 4-Aug-20: Bugfix for zero length domain names in DNS. 3-Aug-20: Added handling of zero length domain names in DNS. 1-Aug-20: Improved TCP fast retransmit logic. 29-Jul-20: Improve installation. If CEX does not exist, try to load XE: driver automatically. If IPAPPL is executed but there is no IP: loaded, exit immediately. In MAIL, make sure addresses are properly reformatted when receiving mails over MAIL11. In MAIL, when sending over SMTP, strip any DECnet part of destination address. Does not make sense to keep that. 19-Jul-20: Bugfix in TCP. Make sure congestion window never goes below MSS. 16-Jul-20: Added SMTP Source domain logical name for outgoing mails. Improved mail headers content. 13-Jul-20: Added class broadcast address handling. Bugfix in telnet client. It could loose input terminal characters in some circumstances. 5-Jul-20: Bugfix in telnet client. It could get into a state where it stopped reading from the terminal. 23-Jun-20: Rewritten the TCP congestion avoidance and slow start logic. Impoved TCP window update logic. 22-Jun-20: Reworked TCP MSS logic to better handle if MSS is assymetric. 21-Jun-20: Improve TCP retry logic in case of remote side constantly ACKing old data. Connection should eventually be closed. Reworked FTP client ETA computation. 8-Jun-20: Added check in FTP if run from VT device, and disable progress bar. Improved error handling in FTPD. 1-Jun-20: Bugfix in FTP. Under some circumstances, a successful GET could end up deleted the received file. (Reported by Ludwig Tauer) 30-May-20: *** NEW RELEASE (V2.4) *** 29-May-20: Did some changes to symbiont spooler to prepare for LPD support. 21-May-20: Add the ability to use alternate port when SMTP relaying. 20-May-20: Bugfix in FTP. If user failed to log in, FTP client got out of sync with server. 18-May-20: Bugfix in resolver. mDNS reverse lookups were not responded to. 14-May-20: Bugfix in longword arithmetic condition code setup. 6-May-20: Improved IPCONFIG script. 5-May-20: Improved TCP retransmit logic. 4-May-20: In TCP, if we are retransmitting and we get an ACK, we should reset the RTT time. 27-Apr-20: Bugfix in resolver. Resolver could fail to join multicast group at startup. Improved installation process, and added IP configuration for mDNS and UTC offset for NTP. 23-Apr-20: Bugfix in RSX. INS did not properly set uic if /UIC was given. Improve FTP client. Exit with status reflecting state in FTP session. Improved DNS timeout handling. If trying to resolv an ambiguous name start local lookup after a few retries. 22-Apr-20: Added MDNS as a separate resolver type. 17-Apr-20: Bugfix in DNS resolver. Possible stack corruption in some situation. 12-Apr-20: *** NEW RELEASE *** 12-Apr-20: mDNS have been implemented. 11-Apr-20: Bugfix in UDP. Multicast functions crash if argument address is odd. 3-Apr-20: Bugfix in TCP. Fast retransmit logic did not work right. 1-Apr-20: Rewritten Multinet driver. 9-Mar-20: Added Router Alert IP option for IGMP packets. Added Don't Fragment flag for IGMP packets. 5-Mar-20: Bugfix in HTTPD. CGI handling could leave process running infinite time for a badly formed request. 29-Feb-20: Bugfix in FTP/FTPD. If a text file was sent in binary mode, the implied CR+LF was lost. Bugfix in TCP. Large sends with PU.TXT mode, where lots of NULs are being sent could crash the system. 24-Feb-20: Improved TCP probe time handling. 21-Feb-20: Improved SPOOF detector to better block whole netblocks. 19-Feb-20: Added ability to not loop back broadcast packets in IP and UDP. Added /NOLOOPBACK to PING. 15-Feb-20: IGMP protocol implemented. 10-Feb-20: Added skeleton of IGMP protocol handler. 9-Feb-20: *** NEW RELEASE *** 9-Feb-20: Added IP multicast support, and functions to enable this on UDP sockets. 7-Feb-20: Bugfix in TCP. Under some circumstances, TCP will stop receiving data because of a calculation error on TCP sequence numbers. 2-Feb-20: Bugfix in FTPD. Account checking had reversed the logic of network login allowed. 31-Jan-20: Bugfix in FTPD. Long home directory names caused FTPD to fail. 23-Jan-20: Improved ARP processing. Improved error handling in FTPD. 17-Jan-20: Corrected field width of hosts in IFC SHO ARP. 13-Jan-20: Improvement in TCP. Code accidentally sent unnecessary probes when a socket is in Close Wait. 10-Jan-20: Small bugfixes in configuration and installation scripts. 6-Jan-20: Improved TCP window update and retransmit strategy. 5-Jan-20: Bugfix in TCP. Any ICMP error received for a socket caused the TCP connection to close down. This should not happen for ICMP source quench or ICMP timeout messages. Added ability to change MTU of interface in IFCONFIG. Correct MSS computation and setup based on interface MTU. Correct Ethernet driver MTU handling. 3-Jan-20: *** NEW RELEASE *** 3-Jan-20: Totally rewritten scripts to configure and install BQTCP. 26-Dec-19: Improved TCP ACK handling. Fast to slow machine caused excessive ACK packets to be generated. 10-Dec-19: Revert MSS change from 9-Dec. XMIT and RCV MSS should not be same. Changed handling of TCP ACK sending at high data rates. 9-Dec-19: Corrected MSS handling in TCP. XMIT and RCV MSS should be the same. 8-Dec-19: Further improvements to spoof handler. 7-Dec-19: Added address exception handling for spoof. 1-Dec-19: Corrected various makefiles to explicitly set checkpoint state. 21-Nov-19: Correct TCP daemon accept so that two different requests with the same source and destination, but different sequence numbers don't end up creating two sockets. Also correct ACK # if doing an RST to a SYN, which could be wrong. 19-Nov-19: Improve MAILD local list handling and SMTP DNS lookup error handling 9-Nov-19: Improve handling of duplicate Syn in Syn Recv state. 6-Nov-19: Bugfix in LPT. Symbiont did not respond to start and stop messages from queue manager. 30-Oct-19: Improved TCP receive window update strategy. 28-Oct-19: Correct MAIL address rewriting rules when transitioning protocols. 27-Oct-19: Bugfix in TCP ICMP error handling reception. Improved handling of problems during TCP Syn Sent state. Added in MAIL that just a number as command means read that mail. 24-Oct-19: Rewritten TCP retransmit and congestion avoidance logic to better match RFC 5681. 21-Oct-19: Improve TCP retransmit logic again. 20-Oct-19: Improved TCP retransmit logic more. Rewritten FIN handling. 19-Oct-19: Improved TCP retransmit and FIN logic. Improved MAILD address rewrite logic, and smtp sending to better handle various error situations. 18-Oct-19: Bugfix in MAILD. CC could accidentally be set for mails under some circumstances. 17-Oct-19: Improve TCP Nagle. Under some circumstances, it failed to perform. 15-Oct-19: Improved MAIL sending API. 14-Oct-19: Added handling of in-reply-to and references in MAIL. 13-Oct-19: Rewritten local mail submission to be more reliable. Also changed name for local mail submission task, now MAISUB. 10-Oct-19: MAIL have been split into a mail queue manager (MQM) and a mail reader (MAI). 7-Oct-19: Rewritten a whole lot of MAILD. Work still in progress. MAILQUE have a new format. 1-Oct-19: Bugfix in BQTC. RCVDW function was not working right. Bugfix in MAILD. Unprivileged users did not work right. 29-Sep-19: Bugfix. MAILD didn't enable privs before trying to send notifications, causing them to sometimes fail. MAILD didn't turn on privs before entering mails in the mail queue, causing this to sometimes fail. 24-Sep-19: Correct URL matching in HTTPD to not overly match wildcards. 14-Sep-19: *** NEW RELEASE *** 14-Sep-19: Cleanup of FTP and FTPD. 12-Sep-19: Bugfix in FTP. RSX and block mode sometimes failed to transfer files. 8-Sep-19: Added port as a parameter to connect function in XLISP. 7-Sep-19: Bugfix. DEV /FILES could crash RSX. 6-Sep-19: Change FTP in block and RSX mode to only read from file the actual number of blocks the file holds. 5-Sep-19: Mailbox format slightly changed. MBXUPD needed for upgrade. 1-Sep-19: Added proper interface to Datetrieve-11 from PDP-11 C in BQTLIB. 28-Aug-19: Bugfix in TCP. I/O writes of more than 8K was accepted, but actual data was not transferred correctly. Fixed. I/O reads of more than 8K was accepted, but should not. 27-Aug-19: More improvement of file handling in FTP for RSX mode. Performance is now close to 2x as fast as before in some situations. 26-Aug-19: Improved file handling in FTP for RSX mode. 25-Aug-19: Rewritten DHCP to better handle options and to try explicit renews instead of always starting over with request when time is up. Changed spoofer to be capable of blocking different block sizes. 22-Aug-19: Bugfix in IPGEN. No purge option didn't work. 20-Aug-19: Bugfix in interface driver. IO.RIF did not return proper status. Added capability to spoofer to block /24 netblocks. 19-Aug-19: Rewritten DHCP to handle interfaces in a new way. Added ability in UDP to bind socket to specific interface. 14-Aug-19: Bugfix in SPOOF. Previous fix did not actually fix the bug. Properly identified now. 13-Aug-19: Bugfix in SPOOF. Under some circumstances, it could loose track of hosts it was blocking, and never unblock them. Additional small fixes in DHCP code. 11-Aug-19: Updated IPNCONFIG.CMD to new version from Oleg Safiullin. Added notifying the SPOOF handler for some more TCP situations. 7-Aug-19: Cleaned up DHCP code in preparation for major rewrite. Corrected block lock handling in MAILD, which could sometimes keep blocks locked for long times with no good reason. 26-Jul-19: Improved MLTNET handling and recovery from some communication errors. 25-Jul-19: Corrected DHCP to detect if interface do not start. Improved DHCP output to not overwrite lines on terminal. Add indication in IFCONFIG SHOW IF to indicate if interface is running, also for DHCP controlled interfaces. Improved IPGEN.CMD to not purge .CMD files under LB:[IP] 22-Jul-19: Bugfix in MLTNET. There was an odd address error in one place. Bugfix in DECL macro, which handled wrapping wrong. Improved IPGEN more. 20-Jul-19: Fixed some subtle errors in relation to longwords all over the place Improved IPGEN in the face of multiple ethernets. 11-Jul-19: Reworked TCP ACK generation and window updates more. 9-Jul-19: More improvement on TCP ACK generation when communicating between a slow transmitter and a fast receiver. 8-Jul-19: Rewrote TCP ACK generation and window update handling. 7-Jul-19: Bugfix. A TCP connection in the process of closing down would just absorb incoming SYN packets to the connection. They should be responded to with a RST. 6-Jul-19: Improve TCP fast retransmit and ACK processing. Improve TCP window update processing. Add a retransmit timer for ACK if we have received data we cannot process because of lost packets. 5-Jul-19: Correct TCP retransmission logic. It was being triggered under normal conditions if we were sending many small packets in some circumstances. 3-Jul-19: Added additional space in telnet UCB, and telnetd now stores remote address in UCB. (Separate changes to RSX can enable reading this out via QIO to TT:) Improved handling of connections in Multinet. 24-Jun-19: Added ability to change mode of Multinet links to either be VMS compatible, or pure DDCMP style. 23-Jun-19: Bugfix in Multinet. It was not handling the startup of links properly, which caused issues with VMS. This change potentially can cause connections to RSX to not come up until both sides have updated. 21-Jun-19: Improved TCP retransmission strategy. 13-Jun-19: *** NEW RELEASE *** 13-Jun-19: Change HTTP logging to improve robustness. 11-Jun-19: Changed MAILD so all queue operations require privs. 10-Jun-19: Corrected attributes for sections for some functions in bqtlib, so they work right even in overlaid programs. Added check for /NOBRO for MAILD new mail notifications. 9-Jun-19: Increased stack size for MAILD. It was right at the margin for failing the task under some circumstances. Change FTPD read command processing to avoid a race condition. 6-Jun-19: Added more error checking to MAILD. Reduced static data memory usage. 5-Jun-19: Changed memory layout for MAILD. 2-Jun-19: Changed mailbox format. 29-May-19: Improved retransmission handling at Fin Wait 2. 14-May-19: Added copy of sent mails to Sent label. 13-May-19: Bugfix in BQTC library. Recent changes to quadtime to string conversion had increased the potential size of output strings so that a buffer overflow could happen. 12-May-19: Correct the message id handling for MAILD error mails. 11-May-19: Correct keepalive handling for TCP at Fin Wait 2. 10-May-19: Improve MAILD mail error generation. 5-May-19: Improved TCP process at socket close. TCP sockets should do keepalives, and not probes, when in Fin Wait-2. 4-May-19: Bugfix in IND forms library for CGI scripts. 1-May-19: Increased stack size for HTTPD. 27-Apr-19: MAILD changed to start tracking lines and mail size for mails. Also changed formats slightly for some fields output by MAILD. 22-Apr-19: *** NEW RELEASE *** 22-Apr-19: Added SLIPACP and DLXACP. Both to be considered experimental at this point. 21-Apr-19: Added proper handling of IP TTL field when routing. Added sending ICMP errors when TTL exceeded. 20-Apr-19: Added routing capability to IP layer. Added commands to IFCONFIG to disable/enable routing. 19-Apr-19: Bugfix in ETHACP. Some code cleanup had accidentally broke things. 18-Apr-19: Improved performance and added some management options to MAILD. 6-Apr-19: Improved robustness of SMTP receive processing. 29-Mar-19: Added timeouts to TELNETD network operations. 27-Mar-19: Added checking for illegal values for IFCONFIG SET TCP options. 17-Mar-19: Fixed generated IPINS.CMD file to work if CLI is not MCR. Added default for LINE question in IPGEN. 9-Mar-19: Added another XLISP example program. 7-Mar-19: Improve IPGEN purging function. 4-Mar-19: Added correct checking for disabled accounts in BQTLIB. This affected ftpd. Improved account checking functions. 1-Mar-19: Added error handling in TELNETD for low pool situations. 28-Feb-19: Improved TCP retransmission strategy. 27-Feb-19: Bugfix in TCP timeouts. Allow TCP port creation if there is an existing port which is in time wait. 26-Feb-19: More improvements to TCP retransmit logic. Improve logic for when TCP connections should be probed. 24-Feb-19: More improvement to TCP retransmit logic. 23-Feb-19: Improved TCP retransmit logic. 22-Feb-19: Bugfix in FTP. Checking for existing file to not overwrite at MGET incorrectly caused some transfers to not proceed. 20-Feb-19: Added RSXERR.MSG to distribution. 19-Feb-19: Bugfix in TCP. After last cleanup, meaning of PU.RXP had become inverted. 16-Feb-19: Bugfix in FTP - PASSIVE command responded with the wrong message. Bugfix in TELNETD - Don't binary option was not properly processed. Bugfix in TCP. If CR mode was enabled, CR was not padded with NUL if followed CR. Added PU.RBL option to TCP sockets, for reading without blocking. 12-Feb-19: Improve MAILD. Change mail queue format for better efficiency. Fix MAIL11 sending. Nonexistent node is a fatal error. Improve statistics output at quit and logout in ftpd. 11-Feb-19: Bugfix in NTP. If local time was far from UTC, NTPDATE failed to correctly adjust time because some arithmetic was done 16-bit. 10-Feb-19: Reworked bqtlib. Changed MAILD mail queue processing. 26-Jan-19: Improved LPT communication with queue manager. 23-Jan-19: Increased stack size of MAILD. 22-Jan-19: Added two forgotten files with the HTTPD server. Added [1,1]DAPSLX.ODL to distribution. 19-Jan-19: Improved LPT spooler, so that it can stop and restart jobs. 17-Jan-19: Improved LPT spooler, so that it can abort jobs. Bugfix in TCP. The check for excessive connections to a daemon was wrong, and allowed too many daemon connections. 15-Jan-19: Added new LPT spooler and updated documentation for it. Bugfix in IPC library. sclose() leaked file numbers. 7-Jan-19: Bugfix in FTP. The initial connection from command line caused FTP to enter the wrong transfer mode if remote system is RSX. The keepalive command in init files caused the processing of the init file to abort. 6-Jan-19: *** NEW RELEASE *** 6-Jan-19: Changed FTP login routines to set system type in login routine instead of in open routine. 5-Jan-19: Added init file for FTP. 4-Jan-19: Added rejection counting for SYN packets to ports with no listeners. 18-Dec-18: Bugfix. If FTPD was requested to list files in Unix format, and a file was protected, FTPD could crash. 17-Dec-18: Bugfix in RMD TCP network page. Byte counters had been changed to 3 word fields. 12-Dec-18: Added optional argument to KEEPALIVE command in FTP. 10-Dec-18: Added KEEPALIVE command to FTP. 8-Dec-18: Bugfix. MSS should never be larger than the buffer size in TCP. 7-Dec-18: Correct TCP ACK repeat rate to also consider the buffer size. With a small buffer, we cannot have a low ack rate. 4-Dec-18: Improve TCP retransmission. If more than one packet is ACKed, assume we are actually on track, and reverts to normal mode. 4-Dec-18: If we have a socket with lots of full size packets, we do not send window updates immediately if the window is growing. We might as well keep the slower rate. 2-Dec-18: Changed default number of receives issues by ETHACP to 6. Changed FTP client to use nagle on command channel. 1-Dec-18: Bugfix in FTP DIR command, which could crash with a stack corrupt. Bugfix in FTPD. If FTPD logs in to a directory without a FTP.TXT, the mode of the command channel ended up wrong. 28-Nov-18: Improved TCP performance at high throughput mode. Changed TCP receive ACK generation to do dynamic handling of how often ACKs needs to be sent. Fixed TCP close function to not generate spurious packets. Change ftp and ftpd to better utilize tcp high throughput mode. 25-Nov-18: Updated installation documentation. Changed TCP slow start window processing. 24-Nov-18: Improved TCP retransmission logic more. 20-Nov-18: Fix TCP retransmission logic. Under some circumstances, packet only retransmitted with a delay, even though they should have been retransmitted immediately. 19-Nov-18: Improved Pascal-2 support. 19-Nov-18: Added support for Oregon Pascal-2. 13-Nov-18: Bugfix in MULTINET. Some error messages was printed with a corrupt line number. 10-Nov-18: Improved telnet server interaction with TTDRV. 4-Nov-18: Improved TCP nagle implementation. 3-Nov-18: Bugfix in FTPD. Files sent to FTPD did not get the correct owner set. Bugfix in MAILD. Other changes had caused MAILD to not be able to process mails with multiple recipients. MAILQUE.DAT file format had to change, so the mail queue needs to be reinitialized. 27-Oct-18: Adjust retransmit time calculation. Improved XLisp network handling. 25-Oct-18: Further improvements to TCP retransmit and recover logic. 24-Oct-18: Improved TCP retransmit recover logic more. Improved FTP performance. 22-Oct-18: Improved TCP retransmit recover logic. 21-Oct-18: Added proper message id handling to MAILD. 17-Oct-18: Change BQTLIB to not require privileges for isco() function from C. Change IPC library to include listen() as well as sgetc(). Changed TCP to allow combination of PU.TXT and PU.RXP. Changed TCP to start daemons with the installed default UIC. Added XLISP and some example programs to distribution. 10-Oct-18: Changed multinet to always push tcp data. 8-Oct-18: Added ability for CGI programs to return other than 200 status. 25-Sep-18: Added SET IFn: RECEIVE n to change how many outstanding receives to have on ethernet interface. This is now dynamic at runtime. 18-Sep-18: Improve dispay of mails when reading. 17-Sep-18: Bugfix. Unprivileged users could not create their mailbox in MAIL. Changed IRCBOT to be more efficient and sane with PUSHes. Improved MAIL11 receive address processing. 15-Sep-18: *** NEW RELEASE *** 9-Sep-18: Added virtual host capabilities to HTTPD. 4-Sep-18: Added FLAG and UNFLAG commands to MAIL. 2-Sep-18: Added /HEADER to MAIL command parser. 23-Aug-18: Improve TCP to not set PUSH on packets when we send FIN. 22-Aug-18: Bugfix in TCP. In a special case, a write on a socket could hang forever on a closed socket. Improve handling of subprocesses from BASIC+2. 16-Aug-18: Improved MAILD reliability. 10-Aug-18: Added zeroing out partial last block when ftp in block or RSX mode. 6-Aug-18: Improved TCP RTT calculation. 5-Aug-18: Added TCP MINIMUM TRANSMIT TIMEOUT and TCP TIMEOUT WAIT 12-Jul-18: Added exit ast handler to RMD. 11-Jul-18: Improved MAILD interaction with virtual terminals. 10-Jul-18: Small bugfixes in BQTLIB. 6-Jul-18: Cosmetic adjustments in IFCONFIG. 5-Jul-18: Improve spoof notification handling. 2-Jul-18: Improved handling of MAILD run from VT terminal (helps PHONE). Improved detection of actual user running MAILD, making it work even when there is no accounting for a terminal. 1-Jul-18: Added CC handling in MAILD. Added PREVIOUS command to mail. Added documentation of more switches and commands in MAIL help. 25-Jun-18: Changed spoof notification methods. Changed mail to store received timestamp as quad times. 11-Jun-18: Bugfix in maild. Mail notifications should not be done for units we fail to assign to. 10-Jun-18: Added line information to some error outputs in Multinet. 29-May-18: Added OS version information in MAILD. 25-May-18: Added detection of DECMAIL11/RSX and DECUSMAIL/RSX to MAILD. 23-May-18: *** NEW RELEASE *** 22-May-18: Changed memory layout for MAILD to avoid crash. 21-May-18: Added RSX patches for MCD/MCR to distribution. 13-May-18: Improved error messages in dhcpd, maild and ntpd. 12-May-18: Cleanup of BQTMAC. Fixup makefile dependencies. 11-May-18: Cleanup of TCP driver. 4-May-18: Improve MAILD remote system identification code for DECnet. 1-May-18: Improve Multinet. Some transmit errors should force a DECnet restart of the link. 29-Apr-18: Added output paging to mail reader. 28-Apr-18: *** NEW RELEASE *** 25-Apr-18: Correct TCP reception. It should not stop the retransmit timer if there is still data outstanding. Improve TCP keepalive timer handling. 24-Apr-18: Bugfix. In TCP TimeWait state, received FIN packets did not result in an RST packet. Improved tcp retransmit timers to better handle probing and keepalive. Changed TCP FinwWait2 to use keepalive timer to probe connections. Bugfix in data resend in TCP. Under some circumstances the retransmit timer stopped even though there was data to send. 23-Apr-18: Small bugfix in TCP reception. 22-Apr-18: Improvement to TCP reception to dedup received packets also for packets that are not in order. Bugfix in TCP packet sending. If we ran out of IP POOL, data got corrupted. 20-Apr-18: Bugfix. TELNET server did not send correct information to SPOOF. 19-Apr-18: Improve TCP timeout handling for closing sockets. Improve TCP retransmit timer restart logic in received TCP ACK process. General rework of TCP retransmit logic. 18-Apr-18: Bugfix. The TCP keepalive timer had stopped working. Improved handling of TCP receive window if TCP receive size is shrunk. Add probing of socket during closing stages, since we have no other way to tell if the remote end is still around. Change how TCP decides if it should probe a connection. 17-Apr-18: Bugfix in TCP. If a socket has no window, but outstanding data and is closed, and other end never opens up a window (for example if the remote end is gone), then the socket would get stuck in Fin-Wait-1. Also make sure retransmit timer is triggered when closing a socket. Cleaned up TCP transmit processing. 10-Apr-18: Changed TELNETD do do spoof notifications in a simpler way. 8-Apr-18: Rewritten TELNETD to handle fast input without loosing characters. Changed TC driver so that user ASTs are generated immediately if there is data to be read. Bugfix telnetd. It could corrupt registers in some cases. 8-Apr-18: Fix possible mapping error under special circumstances in telnetd. 5-Apr-18: Improved maild unread message function. 4-Apr-18: Added manual holding of mails. 2-Apr-18: Added more IAC options processing in telnet and telnetd. 1-Apr-18: Improve TCP options processing. Bugfix in UDP. If several error packets were received for a socket, several ASTs are queued, but only one error is saved, meaning the additional ASTs could make code try to read several times, when all except the first would not have anything to actually read. Improve resolver domain I/O error handling. 29-Mar-18: Some cleanup of TCP driver. 23-Mar-18: Improve spoof notifications from HTTPD. 19-Mar-18: Turned off read buffering in TCP. 13-Mar-18: Improved privilege handling in MAILD. Moved back to common names for TCP daemons. 11-Mar-18: Improved TCP handling of ICMP error packets. Improved abort handling in telnet client. Improved ability to stop protocols. Improved name resolution handling of no UDP available. Added handling of no UDP available in RWHOD. 8-Mar-18: Change TCP to run daemons with explicitly unique names all the time. 6-Mar-18: Improve MAILD handling of DECnet connections. 4-Mar-18: *** NEW RELEASE *** 25-Feb-18: Add more error handling to HTTP CGI processor. 19-Feb-18: Improve handling of received TCP push. 8-Feb-18: Improve TCP ACK generation under lost packet recovery. 7-Feb-18: Improve TCP ACK generation under certain conditions. Improve Multinet TCP utilization. Improve tcp window update handling. 31-Jan-18: Improve MAILD handling of Linux MAIL11 daemon. Clean up of MAILD code. 30-Jan-18: Improve MAILD MAIL11 protocol error handling. 29-Jan-18: Changed MAILD so that in interactive mode, temporary file for mail compose is created under SYS$LOGIN. 29-Jan-18: Added timeouts to MAILD's MAIL11 communication. 28-Jan-18: Optimized TCP IO processing a bit. 25-Jan-18: Improved subprocess handling from BASIC+2. 24-Jan-18: Added more error handling to BASIC library and applications. Improved DHCP config handling in IP startup script. Updated HTTPD for changes in subprocess functionality. 21-Jan-18: Improve PUSH processing in TCP. 20-Jan-18: Bugfix in TCP. If a socket was closed, and there was an outstanding send, and the remaining window was 0, and the transmission was not ACKed, the socket got into a pending state. 17-Jan-18: Updated F77 library and documentation. Improve new mail processing in MAILD. 15-Jan-18: Removed some unneccesary push calls from HTTPD. 14-Jan-18: Improve TCP window update decision. 13-Jan-18: Bugfix TCP. The second word of the IOSB was never set to anything in writes. Added PU.POR to optionally force a push of written data at read. Updated MAILD to use push on read and high throughput option. Improve TCP PUSH handling. 11-Jan-18: Bugfix TCP. I.LN2 should not be modified by the driver. 10-Jan-18: *** NEW RELEASE *** 9-Jan-18: Add handling of two TCP SYN packets comes in from same address/port to same address/port but with different sequence numbers. Second req. will be reset immediately. 9-Jan-18: Improve handling of failed daemon activations from TCP. 8-Jan-18: Improved mail headers for MAIL11 received mails. 7-Jan-18: Bugfix. If several creates were done for the same TCP connection, the stack got corrupted. Bugfix in IO.CON. It could a new connection for an already existing one. 6-Jan-18: Improve Multinet handling of failing lines. 3-Jan-18: Improve TCP I/O processing. 26-Dec-17: Bugfix. If a read from TCP give error result, we should not unblock user ASTs. Improve TELNETD connection tracking and disconnection handling. 22-Dec-17: New attempt at fix problem that sometimes happens when daemons are started. 18-Dec-17: Bugfix in HTTPD. WWW.B2S failed to include BQTLIB.B2S, and therefore missed function prototypes causing function to be called the wrong way in the main function. 17-Dec-17: Corrected AST block setup in TCP. 13-Dec-17: Add PU.NBL option for non-blocking writes to TCP. Change Multinet to use non-blocking writes and smaller TCP write and receive buffer to reduce effects if connection is lost. Multinet will now drop such links faster. Bugfix in TCP. IO.SXS, IO.SRS and IO.SSS was not working. 12-Dec-17: Bugfix in TELNETD. If socket create failed, TELNETD could go catatonic. 11-Dec-17: Improve error handling for HTTPD when running CGI scripts. 9-Dec-17: Improve MAILD handling of text/plan with format=flow Add user-agent header to composed mails. Add MIME headers to mail sent over smtp. 8-Dec-17: More TCP I/O buffer handling improvement. 6-Dec-17: Improve TCP buffered I/O read processing. 5-Dec-17: Added more information on the RMD network page. Improved logging in MAILD. 4-Dec-17: Bugfix in TCP processing. Stop slow timer at TCP close, so that it can be re-primed with an appropriate timeout. 3-Dec-17: Added proper handling of SYN packets at the closing stages of a socket. They should always cause RST packets. Also improved handling of the slow timer at the closing stages of sockets. Sending packets at those stages should not stop the timer. Improved handling of CGI interface in WWW. 2-Dec-17: Changed TCP Fin-Wait-2 state to not reset timer if unexpected packets are received. 22-Nov-17: Improved telnetd accept handling. 16-Nov-17: Added handling of mail address loops in MAILD. 15-Nov-17: Added mail forwarding for MAILD. 13-Nov-17: Disallow changing interface parameters on a running interface. 12-Nov-17: Improved error handling in MAILD mail delivery. 1-Nov-17: Improve Multinet link robustness. 31-Oct-17: Improve Multinet link speed. 24-Oct-17: Bugfix for FTP, which caused RSX and block mode transfers to sometimes fail. 22-Oct-17: Improved RSX mode FTP transfer mode under some circumstances. 22-Oct-17: Added yet some more spoof detection to WWW. 22-Oct-17: Bugfix in TCP slow start window computation in combination with TCP RTT calculation. If the RTT was above mininum, the slow start window never grew. 19-Oct-17: Enable ftp to put block files. 17-Oct-17: Improve MAILD client RMS handling. 16-Oct-17: Bugfix in MAILD. For MAIL11, VMS systems can send empty lines that MAILD interpreted as end of mail. Fixed now. 13-Oct-17: Change spoof notification from WWW to carry less penalty for some kind of errors. 13-Oct-17: Reinstate the keep-alive header in WWW. Crawlers be damned, if they work wrong. 13-Oct-17: Change WWW to not send keep-alive headers, since web crawlers process them wrong. Also change WWW to also accept connection keep-alive in HTTP/1.0, but default to it off. 12-Oct-17: Fix mail processing. SMTP did not reject invalid local addresses. SMTP now rejects destinations on other hosts, as we do not allow relaying. 11-Oct-17: Corrected mail printouts which skipped empty lines. 10-Oct-17: Added FILE command to mail client. 9-Oct-17: Corrected bug in DHCP, where lease time was computed as a signed number. 8-Oct-17: *** NEW RELEASE *** 8-Oct-17: Some small improvements to MAILD. Preparing for future "folder" handling. Added new configuration script for IPNET provided by Oleg Safiullin. Add call to spoof notifier on port timeouts for ports that are not in established state. Add message from spoof daemon when spoofer is DNS server. Added SPOOF processing for WWW and SMTP. Improved IPGEN script. 6-Oct-17: In TCP, if we have syn packets which never progress to established connection, notify SPOOF about potential abuser. 3-Oct-17: Improve IF: driver to trim unused parts of buffer before passing packets on to IP layer. 1-Oct-17: Fixed TC driver, which could corrupt memory under some circumstances. 25-Sep-17: Implemented MTU backoff when detecting an unpatched XU: driver in ETHACP. 22-Sep-17: Reworked BQTLIB to dnamically handle buffer lengths for BP2 multistream I/O. Reworked IRC to use new BQTLIB functionality. Corrected various build dependencies that were missing. 11-Sep-17: Improve ethernet reset handling. Clean up som TCP structures so no overlap of data exist anymore. 3-Sep-17: Improve handling of errors in FTPD when not logged in. Allow empty password in FTP PASS command, let the server side give error. 3-Sep-17: *** NEW RELEASE *** 3-Sep-17: Change distribution to include PDP-11 C and BASIC+2 resident librariy 3-Sep-17: Small improvement in task activation for TCP daemons. 25-Aug-17: Rewritten mail-address rewriting logic for DECnet MAIL11. 25-Aug-17: Improvements to maild. Better address processing, and some improvements to the mail reader. 24-Aug-17: Fix in ethernet. Transmits could block out receives. 22-Aug-17: Bugfix in MAIL. DECnet mail delivery would fail if empty subject line or any line in the body. 19-Aug-17: Went through code and did some cleanup. 17-Aug-17: Changed error recovery for tcp daemon task activations. 4-Aug-17: Lots of small cleanups, and changed libraries and code to use a common account lookup function for uniform behavior. 13-Jul-17: Bugfix in TCP receiver sequence number verifier. It could erronously drop valid packet under some circumstances. 13-Jul-17: More work on mail client. It should be usable for basic needs now. 5-Jul-17: Improve reliability of ETHACP. At the end of all transmits, we should check if we should add any new receive requests. 4-Jul-17: Progress on MAILD. New mailbox format implemented, and a rudimentary client exists. 21-Jun-17: Added counter for TCP connections rejected because of overload. 15-Jun-17: Improved HTTPD logging to also log referer URLs. 14-Jun-17: Remove code that handled TC: IO.KIL processing for opened sockets. 13-Jun-17: Bugfix. TCP could erronously accept packets with strange sequence numbers under some circumstances. 31-May-17: FTPD incorrectly allowed QUIT while a transfer was in progress. 31-May-17: Fix TCP reception. If both sides came into a state where they retransmitted the FIN packet, neither would understand the other side. 15-May-17: Fix HELO/EHLO processing in MAILD/SMTP. The command should do RSET. 14-May-17: Bugfix in mail processing. It crashed in some situations. 8-May-17: Improved new mail notification handling. 30-Apr-17: *** NEW RELEASE *** 28-Apr-17: Improve tcp early retransmission handling. 27-Apr-17: Implemented TCP slow start, ICMP source quench, and improved TCP repeated ACK for old packet detection. 27-Apr-17: Bugfix in telnetd. Under some circumstances, the telnet port could stop transmitting data. 21-Apr-17: Improved MAILD MAIL11 reliability. 21-Apr-17: Fixed MAILD local mail sending to properly add own address if no address was defined. 20-Apr-17: Fixed MAILD to handle MAIL11 V3 protocol, which includes CC field information. 19-Apr-17: Handle errors in FTP client MPUT, so that it don't abort transfers at the first error. 18-Apr-17: Improved MAILD delivery which could sometimes do an unmotivated delay. 17-Apr-17: Improved MAILD address rewriting logic for mails passing between dnet and inet and vice versa. 15-Apr-17: Added timeout parameter to TCP receive function, to set specific timeout on one receive. 12-Apr-17: Improved error handling for DECnet for MAILD. 10-Apr-17: Added from-address rewrite when forwarding mail from inet to dnet. 9-Apr-17: Improved MAILD to handle distribution lists and command line message. Improve smtp MX handling and DECnet remote node detection. 8-Apr-17: Added ability to change mail max age. 7-Apr-17: Added detection of MX loops in MAILD. 6-Apr-17: Added MAILD to distribution. 4-Apr-17: Updated quadtime functions with new functionality. 1-Apr-17: Added check to not do multiple requests to resolver on IO.KIL. 24-Mar-17: Change cleanup from failed task activation in TCP. 19-Mar-17: Bugfix in resolver. Memory handling in domain resolving could get corrupted. 18-Mar-17: Bugfix in resolver. Timeout became wrong under some circumstances. 18-Mar-17; Bugfix in IPC library. Some mode definitions were wrong. 12-Mar-17: Bugfix in TCP. Sequence number could become wrong when sending probe packets. 10-Mar-17: Bugix in resolver. When translating from IP to name, using file, the name had an extra NUL added at the end. 10-Mar-17: Cap timeout values in resolver. 10-Mar-17: Bugfix in resolver. Timout could become negative values, which are invalid. 9-Mar-17: Cleaned up resolver, and changed some timer values. 7-Mar-17: Improved resolver. Results from hosts file should be sorted according to the file, while results from DNS should be sorted alphabetically. 7-Mar-17: Improved timers in resolver. Domain name timers are now 32 bits. Also, timers now work based on absolute time, and not wall clock. Bugfix unified timers, so that recursive time runs don't happen. 7-Mar-17: Reworked timers in resolver. 6-Mar-17: Bugfix in resolver. There was some memory leaks. 2-Mar-17: Improve resolver handling of errors. 1-Mar-17: New resolver released. 19-Feb-17: Improved port count handling to avoid creating too many daemon ports. This could otherwise cause DOS overload. 17-Feb-17: Improved HTTPD error handling. Correct FTP Unix-style directory listing. 16-Feb-17: Changed port queue limit handling in TCP to only count ports with associated tasks. 15-Feb-17: Added fast rescheduling in case of some NTP errors. Removed HTTPD$ROOT:HTTPD.DAT binary logging. 9-Feb-17: Improved IRC client to handle text format information. 7-Feb-17: Started preparations for abortable resolver queries. 3-Feb-17: Corrected TCP to not time out connections where probing is going on. Changed TCP to not use user timer on writes. Improved probe decision code. 2-Feb-17: Added multiline options handling to HTTPD. 1-Feb-17: Added handling of accept field in HTTP requests. 30-Jan-17: Improved error handling in logging in HTTPD. 18-Jan-17: Improved error handling in HTTPD. 12-Jan-17: Fixed Multinet problem with very fast links, which caused DECnet to choke. 8-Jan-17: Changed handling of failed daemon accepts when because too many servers running. Previously called FREPOR, which would then rescan all daemons to see if we should run something. If we had a long SYN queue, that meant we'd call for activation of another server for the same port, with the same result again, and each would go deeper in the stack. Reworked daemon activation code so that it does not attempt to run a daemon if we have too many ports *or* tasks. 1-Jan-17: Added extra check in FTP GET command for existing file when not in supersede mode. 1-Jan-17: Improved handling of received TCP FIN packets. 31-Dec-16: *** NEW RELEASE *** 31-Dec-16: Fix WWW bug. Content length calculation could be incorrect under some circumstances. Improved FTP with supersede command, and better handling of file version numbers. 29-Dec-16: Fixed error handling for creation of tasks for daemon ports. Added counter for failed task creations. 28-Dec-16: Added limitation to creating tasks for daemon ports. 28-Dec-16: Added handling of failed task activations in TCP. 16-Dec-16: Improved connection tracking in telnetd. Corrected build files for IPRMD. 8-Dec-16: Added more counting of TCP packet with data outside window. 8-Dec-16: Change priority of NTPDATE task to 100. 8-Dec-16: Bugfix in TCP receive. Packets with some sequence numbers that should have been discarded was instead accepted into the stream, causing system crashing. 8-Dec-16: Additional fixing for TCP packet data range. 7-Dec-16: Improvde code that verifies incoming TCP packet data range. 5-Dec-16: Corrected installation scripts to properly check for installed memory partitions. 2-Dec-16: Added RECV function to BP2 library. Normal input have problems with some special characters. Changed IRCBOT to use new RECV function. Changed WWW to use new RECV function. 13-Nov-16: Improved SPOOF task to update registers with current counts. 10-Nov-16: Added queuing of SYN packets for services where the max number of ports are already open and the port is a daemon server. 9-Nov-16: Clear up telnetd code. 8-Nov-16: Changed register usage in SPOOF and TELNET for better consistency. Updated documentation. 7-Nov-16: Some code cleanup. 30-Oct-16: Added SPOOF detection to ftpd. 28-Oct-16: *** NEW RELEASE *** 27-Oct-16: Improve the pending data transmit code in TCP. 25-Oct-16: Improvement. Be more selective about what packets to ACK immediately, to improve performance. Also added new feature to TCP, where writes can be buffered internally before being sent, causing better packet utilization. This is used by the telnet server, to better aggregate writes from the terminal driver. 25-Oct-16: Improvement. Always send ACK for short packets immediately in TCP. 20-Oct-16: Bugfixing in IP. There were places were code lost track of stack and logic flow. 14-Oct-16: Bugfix in timers. If a slow timer were to cause the fast timer to reset/restart, this was not picked up. 14-Oct-16: Setup correct slow timeout on accept. 9-Oct-16: Improve daemon mode code in TC: 2-Oct-16: Bugfix in SPOOF. SPOOF could add multiple blocks for address. 1-Oct-16: Improve SPOOF handler. 1-Oct-16: Added ability to set default TCP KAF time in IO.SET. Added short KAF time for initial telnet server connections. 28-Sep-16: Correct HTTP CGI code to not define QUERY_STRING if the actual query string is empty. 26-Sep-16: Added handling of error when trying to run subprocess in HTTP and IRCBOT. 9-Sep-16: *** NEW RELEASE *** 9-Sep-16: Bugfix in tcp recepton. If packets come out of order, and in larger counts, with duplicates, the system might not properly manage the list of packets. Fixed. 9-Sep-16: Improvement. When a TCP socket was in close-wait state, it started sending probe packets. Fixed now. 8-Sep-16: Improvement in TELNETD. Use explicit push at end of I/O request, instead of NAGLE. This will many times reduce the number of TCP packets used for terminal writes. 7-Sep-16: Bugfix in TCP. When cancelling I/O on a socket, the memory mapping would get corrupted if there was any outstanding data to receive. 5-Sep-16: Bugfix in TCP. If a socket is created by a daemon, and additional syn packets come in, the accept I/O might be processed as a read. Also, if a server socket gets a timeout, it might delete the socket. 4-Sep-16: Fixes in ETHACP to deal with low pool condition. General cleanup of code. 3-Sep-16: Bugfix. FTIME in the BASIC+2 library could return bad values under some circumances. This in turn could cause the HTTP server to return illegal dates for last-modified field in responses. Fixed. 30-Aug-16: Improvement: DHCP no longer prints any information if a lease is renewed for the same IP address, and DHCP runs under the name of IF. 29-Aug-16: Bugfix. Freeing of port in case daemon request fails, freed the wrong memory. 29-Aug-16: Bugfix. A daemon socket is created with an associated TCB, even though the TCB has not really connected to the socket yet. This can cause strange effects in many ways. Stop doing that, and instead only associate the TCB when the task actually makes the connection. 28-Aug-16: Added checking for low pool condition before creating tasks in TCP. 26-Aug-16: *** NEW RELEASE *** 26-Aug-16: Clean up of code for pool handling. 25-Aug-16: Bugfix. If a daemon task cannot be created, there were structures that was not cleaned up. This could be an issue in a low pool situation. 23-Aug-16: Bugfix in ARP packet handling. If system runs out of pool, memory could be corrupted. 21-Aug-16: Improved DHCP code to provide hostname argument, and deal with hostname and broadcast options. Also cleaned up code. 31-Jul-16: Bugfix in IP fragmentation handling. 30-Jul-16: Changed code for Multinet tunnels to be a bit more stable, at the cost of slower recovery. 17-Jul-16: Added some more logging in MULTINET TCP connections. Changed timeout handling in HTTPD to not generate HTTP response. 28-Jun-16: Bugfix. In FTP/FTPD, if transfer mode is RSX, file protection is applied before setting file attributes, which can cause setting of file attributes to fail. Turn off terminal wrap in telnet client. Added logical name TELNET$PORT to define which port(s) the telnet daemon should listen to. Added ability for FTP client to also use different port to server. 4-Jun-16: *** NEW RELEASE *** 13-May-16: Improved handling of network connection errors for CGI pages in HTTPD. 12-May-16: Improved chunked encoding handling for CGI pages in HTTPD. 6-May-16: Added ability to set keepalive time per socket. Changed MULTINET TCP connactions to have a keepalive of 5m. 6-May-16: Correction for fix from 5-May-16. The first solution did not entirely solve the problem. 5-May-16: Improvement. If there is received data with a gap, we should repeat ACKs to make sure the other end do not disappear while we are expecting retransmit of lost packets. 3-Mar-16: Added exclusion of ports from NETSTAT portlit if remote address is wildcard or broadcast. Improve RMD network page with connection count, which should not have last or average value. 30-Apr-16: Improve logical name QUERY_STRING definition for CGI scripts. 29-Apr-16: Improved recieve packet processing to avoid possible bugs related to 16 bit arithmentics. 25-Apr-16: Made TCP transmit and receive bytes statistics 64 bit values. 19-Apr-16: Trimmed down the STAT macro a little, for improved performance and reduced memory print. 2-Apr-16: Improved SPOOF filter code to not add hosts aleady filtered. 1-Apr-16: Tuned spoofing to be more sensitive to telnet activity. 1-Apr-16: Added SPOOF detection for telnet. 26-Mar-16: *** NEW RELEASE *** 26-Mar-16: Improvement. If a TCP socket was reused without closing on the user side, the sequence number was not reinitialized. 26-Mar-16: Bugfix in DECnet-over-IP: If a tcp operation gives an error, the tcp socket should be closed immediately. 25-Mar-16: Bugfix in DECnet-over-IP: If a packet was received over TCP which had a too large size indicated, the link got out of sync and could not recover. 22-Mar-16: Changed CGI interface for WWW. It is now possible to write multipart posts. Also improved IND library with funtions for dealing with cookies and forms. 20-Mar-16: Improved IPGEN to also copy the TELCOM common. Added code to decode URL-encoded strings in the IND CGI library. Bugfix in WWW: POST should not be allowed on normal documents. Added better er handling if HTTPD$ROOT is not defined. Added CGIDEMO to distribution. 18-Mar-16: Bugfix in HTTPD CGI code. If a POST is done, TCP entered the special character termination mode, but it did not exit it, causing a session kept alive to be in that mode after this. 18-Mar-16: Bugfixes and improvements to HTTPD for when a response body is sent, and in which encoding. 17-Mar-16: Added If-Modified-Since and If-Unmodified-Since fields processing in HTTP daemon. Added a DEFAULT.TXT file for users who do not have a PUBLIC.TXT file. Fixed 301 output processing. Added lots of documentation. Changed installation to not overwrite existing HTTPD configs. Changed HTTPD to use a logical name for the root directory. 16-Mar-16: Bugfix in HTTP daemon. Logging was not done with privileges, and could fail. 16-Mar-16: Restructured IPBP2.OLB to only hold stuff related to TCP/IP. Moved all other stuff to BQTLIB. 16-Mar-16: Bugfix. FTPD did not display the logged in message file under some circumstances. 16-Mar-16: Improved logging in FTPD. 13-Mar-16: Improved IPBP2 library with some more quadtime functions. 12-Mar-16: Improved logging in FTPD. 12-Mar-16: *** NEW RELEASE *** 12-Mar-16: Improvement. Getting files in the FTP client now preallocates the estimated size of the file to receive based on the SIZE command. 11-Mar-16: Bugfix. a 301 response from HTTP would always used chunked transfer, and should not include a Content-type header. 11-Mar-16: Bugfix in HTTPD. Content length headers in HTTPD must be exact. Connection do not have to be closed afterwards. 11-Mar-16: Bugfix in HTTPD. HTTPD headers should never include both Content-length and Transfer-Encoding. Changed to not use transfer-encoding, and instead send raw file content, and always close connection after transfer done. 11-Mar-16: Added daemon mode to NTPDATE. 8-Mar-16: Correct file protection handling in FTP/FTPD. In RSX mode, it could cause file transfers to fail. 1-Mar-16: Bugfix. FTP and FTPD did not transfer files correctly in binary mode. 23-Feb-16: Bugfix in IP driver. If a packet was received which indicated that the amount of data was more than the actual packet contained, we did not free packet memory, causing a memory leak. 23-Feb-16: Improved IPGEN procedure. 12-Feb-16: Added error checking for unknown hosts in MNC utility. 11-Feb-16: Added FSIZE function to IPBP2. Added Content-Length: header to HTTPD responses. 9-Feb-16: Corrected network RMD page to not truncate large numbers. 8-Feb-16: Changed task priority of MLTNET. 8-Feb-16: Changed a few cirucit counter trackings in DECnet-over-IP. 4-Feb-16: Added network counters for DECnet-over-IP lines and circuits. 1-Feb-16: Improved error checking and handling in DECnet-over-IP. 29-Jan-16: Readded 30s timeout for F11 operations on TC: 29-Jan-16: Improve resolver by returning an F11 filename if an ANSI filename was provided. 28-Jan-16: *** NEW RELEASE *** 28-Jan-16: Rewritten the DECnet over IP code to be better compatible with VMS. 27-Jan-16: Fixed IPRMD ODL file. Added IP.TSK and IP.STB to distribution to simplify IP over DECnet builds. 25-Jan-16: Improved DECnet-over-IP installation to deal with DECnet not on LB: 24-Jan-16: Improved Multinet code. 23-Jan-16: Cleanup of TCP code. Reduced size. 23-Jan-16: Cleanup of DECnet-over-IP code. 23-Jan-16: Bugfixes. There was a race condition on the DECnet-over-IP code when using TCP, which caused it to not work right. 22-Jun-16: Redesigned DECnet-over-IP since code needs to handle multiple outstanding writes. 22-Jan-16: Bugfix. DECnet-over-IP links using UDP was not setting the line correctly in received packets. 21-Jan-16: Added the ability to share TCP ports between DECnet-over-IP TCP links. 20-Jan-16: Bugfix in DECnet-over-IP using TCP. It could crash the system. 19-Jan-16: Added option to TCP receive to not reenable user ASTs at I/O completion. Changed behaviour at RST response to SYN sent, so that remote address is retained. Added TCP connection ability for DECnet over IP. 18-Jan-16: Bugfix in IPNET patch script. 17-Jan-16: *** NEW RELEASE *** 17-Jan-16: Added DECnet over IP transport. 14-Jan-16: Bugfix in ftp. Sometimes RSX mode got corrupted attributes sent. 8-Jan-16: Improved AST generation code in UDP. 7-Jan-16: Added new functions to UDP and TCP to accomodate DECnet over IP bridge. Bugfix in UDP code, where 2nd word of IOSB was always returned as zero when writing. 29-Dec-15: Changed telnet server to figure out how many terminals to create through a logical name. 25-Dec-15: Added some error messages to ftp, and fixed a disable echo state. 20-Dec-15: Additional improvements to TCP timers. Reducing code size. 19-Dec-15: *** NEW RELEASE *** 19-Dec-15: Improvement. TCP timers have been mde much lighter in resources. 14-Dec-15: Bugfix. SPOOF truncated hostnames in the summary line. 3-Dec-15: Bugfix. If a probe timer was running on a socket, and the socket was closed, the probe timer was not stopped. This caused to close timer to use the probe time already setup, making close sometimes take a very long time to finish. 2-Dec-15: Change ftp binary mode to create files without a max record size. 2-Dec-15: Improved httpd to serve more types of binary files. 27-Nov-15: Added guard against data after FIN. 26-Nov-15: Rewritten tcp receive packet handling for improved code. 25-Nov-15: Added connection counters to TELNET. Modified TCP to use a default transmission buffer size that match the remote MSS announced. 23-Nov-15: Improved negative ACK recover code in TCP. 22-Nov-15: Added exit AST handler for TELNETD. 22-Nov-15: Split receive MSS from transmit MSS. 20-Nov-15: Add ability to IO.RSV TCP function to accomodate extension to resolved to get specific results. 15-Nov-15: Bugfix i BQTLIB. VUSER routine could crash program with illegal memory reference (affected FTPD). 14-Nov-15: Added note to APPL.NEW on how to install TELNETD in a multiprocessor system. 10-Nov-15: Bugfix in RMD. If delta time between updates ends up as 0, we'll use 1. 9-Nov-15: Improve duplicate ACK metrics. 8-Nov-15: Changed retransmit timeout counter to not count when a forced retransmit is done. 8-Nov-15: *** NEW RELEASE *** 8-Nov-15: Bugfix. The TCP timeout could delete a socket, and then try to do operations on it. 7-Nov-15: *** NEW RELEASE *** 5-Nov-15: Bugfix. A TCP port created as a daemon port could timeout, leaving a ghost port behind. 5-Nov-15: Bugfix. FTP file size function still sometimes calculated size wrong for some files in RSX mode. Added another TCP metric to show retransmits triggered by multiple ACKs. 4-Nov-15: Bugfix. FTP file size function calculated wrong file size for some files if in RSX mode. 4-Nov-15: Improvement. If several packets have been lost, the performance degraded severly. Code now is more sensitive to this situation. 4-Nov-15: Bugfix. Dumplicate SYN packets were detected, but could force the connection to be lost. 3-Nov-15: Bugfix. If a tcp socket is waiting for an ACK for a FIN, and receives an RST, it should stop sending FIN. 3-Nov-15: Bugfix. TCP did not resend ACKs if the same segment was received multiple times. 1-Nov-15: Some tweaking on TCP window update logic to improve performance. 1-Nov-15: Tweaking TCP segment ackowledge to reduce number of ACKs sent. Also fix detection of repeated ACKs to indicate lost TCP segment. 1-Nov-15: Some slight change on when to generate ACKs for TCP sessions, which improves throughput in some circumstances. 30-Oct-15: Bugfix. Reset TCP retry counter even if no data was acked, if there actually was no data to ack. 30-Oct-15: Bugfix. A socket in time wait do not need to send reset for received packets if they are just ACKs of the current state. 29-Oct-15: Bugfix. The TCP retry counter was reset whenever an ACK was received. It should actually only be reset if the ACK actually acknowledged any new outstanding data. 21-Oct-15: Added PCL.TSK and PCLRES.TSK to distribution. 21-Oct-15: Added check for connection estabished in telnet server, so that we don't print a disconnect message if connection wasn't setup. 20-Oct-15: *** NEW RELEASE *** 17-Oct-15: Improvement. A socket that is closing down and is getting no responses, we should have fewer retries. 7-Oct-15: Bugfix. If a connection comes in, for which there is a daemon port, but IPPOOL is full, TCP would crash. 5-Oct-15: Added seconds to directory listings file information in FTP/FTPD. 4-Oct-15: Bugfix in time remainder calculation for FTP progress. Bugfix in file size calculation for FTP and FTPD. 3-Oct-15: Additional improvements on FTP progress line. Bugfix in TCP. Under some circumstances, TCP could loose the knowledge that it had recevied an ACK for a FIN. 1-Oct-15: Cleaned up some organization in IPLIB. Updated documentation. 30-Sep-15: Added some more information in the FTP progress line. Bugfix in both FTP and FTPD. File size was not returned for strange format files, even if in RSX mode. Fixed. 29-Sep-15: Added maximum values for TCP parameters. Added IO functions to change TCP buffer parameters in programs. 28-Sep-15: Bugfix. SYN packets could be lost in system pool if socket was deleted. 27-Sep-15: Improved Unix time formatting in ftp server. 26-Sep-15: Added closing of data channel at ftp transfer abort. 24-Sep-15: Added new commands to IFCONFIG to change TCP default values. 23-Sep-15: Added ability to dynamic change tcp send buffer segment size. 18-Sep-15: Bugfix for previs fix. There was a situation where a socket could go into FinWait-1 while having both sides marked as finished, but it was if a connection was reset from the other side. Such sockets should instead move to CloseWait state. 18-Sep-15: Improvement. A TCP socket that is closed, which have already recevied a FIN, should move to state CLOSING instead of FinWait-1. 15-Sep-15: Bugfix. Telnet server and daemon did not properly respond to WILL negotiations. 14-Sep-15: Improvement. TCP received window probe counter correction. 13-Sep-15: Bugfix. Both telnet client and telnet server handled tcp options negotiation wrong. 10-Sep-15: Bugfix. TCP reception didn't correctly detect data outside of window. TCP high throughput sockets should send shorter packets in case this is all the window allows. 9-Sep-15: Improve TCP code for handling RST packets. 9-Sep-15: Bigfix. FTPD could crash out if a file trasnfer was followed immediately by the client closing the connection. FTPD exited before the file was closed in this case. 8-Sep-15: Make sure FTP server do not timeout when a transfer is in progress. 8-Sep-15: When user timeout is changed, reset the running timer for TCP. 8-Sep-15: Corrected so that keepalive probes are not counted as window probes. 7-Sep-15: Added /NUMERIC switch to TRACERT. 7-Sep-15: Bugfix. Do not count RST packets as tcp probes. 6-Sep-15: Improved filename parsing in FTP. 5-Sep-15: Added SUMMARY, PROMPT, MGET and MPUT to FTP. 31-Aug-15: Allow writing to a socket in close-wait state. 29-Aug-15: Cleanup of TCP code. Small fixes for possible issues if IPPOOL gets full. 28-Aug-15: Bugfix. TCP corrupted interrupt vectors. Fixed. 28-Aug-15: Bugfix. A socket that moves to state CLOSING should drop all buffered data. 27-Aug-15: Bugfix. TCP sockets were not being probed when they should. 27-Aug-15: Improved handling of tcp sockets shutting down. Previously data was not resent in some states, and LAST-ACK was inefficient. 27-Aug-15: Added task header LUN display for UD: device. 27-Aug-15: RMD fixed for new socket structure. 26-Aug-15: *** NEW RELEASE *** 26-Aug-15: Rewrote TCP to not use any system pool. Also more efficient use of IPPOOL. 13-Aug-15: Bugfix. If a daemon port is created which do not pick up the SYN packet, a socket was left in a broken state. 11-Aug-15: Bugfix. Make sure user ASTs can happen when a connection closes down, or when I/O completes. Improved reaction times when TCP connection setup fails with no response from remote node. 7-Aug-15: Added check in SPOOF task to never block addresss used for DNS server. 28-Jul-15: Added IP.HLP. 22-Jul-15: Improvement. A TCP connection that reaches max retries and is closed should also generate a user ast. The telnet daemon should call into the terminal driver at the interrupt priority level of the terminal driver. 19-Jul-15: Bugfix. The WWW server CGI mode passed on zero length data from the subprocess to the client, causing it to appear as end of data. 18-Jul-15: Added the ability to execute commands from the TELNET$WELCOME logical name for the telnet daemon. 9-Jul-15: Improved build files to build more tasks both with and without resident libraries that might not exist on target system. 5-Jul-15: Corrected TCP dropped connection counter statistics. 5-Jul-15: Bugfix. The TCP transmitter erroneously started the retransmit timer even if the transmit contained no data. This could cause the connection to reset, as no ACK will come back for transmit with no data. 4-Jul-15: Revert change that moved close to close-wait state. The original code was correct. 3-Jul-15: Corrected rate calculation functions used by FTP to be more accurate. 3-Jul-15: A lot of cleanup of TCP code, which to freely changed state to closed, while a task still had the socket open. Correct state should be close-wait. 30-Jun-15: *** NEW RELEASE *** 29-Jun-15: Bugfix in telnet client to correctly handle options negotiations. Included configuration and installation of telnet server. 29-Jun-15: Bugfix. Keepalive timers should only be used on established connections. All others get normal short timers. 28-Jun-15: Bugfix. User ASTs were not generated when connections were lost. Also changed to not generate user ASTs if a read is in progress. 28-Jun-15: First beta of telnet server running. 25-Jun-15: Reworked how user ASTs are done for TCP. Removed IO.AST function. 25-Jun-15: Bugfix. The telnet client stopped working when the recieve PUSH changes were done on 6-Jun-15. Corrected to use IO.RCV. 24-Jun-15: Bugfix. TCP could generate an AST for a socket that the task had already closed, and the task might have exited, causing the AST to go to odd places. Simplify user AST generation as well, and make sure it generates ASTs when there is data to read. 18-Jun-15: Changed IP to accept packets with any destination address if interface address is 0.0.0.0. Changed DHCP to not require server to broadcast offers. 15-Jun-15: Make DHCP more robust. 14-Jun-15: Cleaned up DHCP code and made it more properly follow the RFC. 13-Jun-15: Renamed some logical names: DNS$NAME -> HOSTNAME DNS$HOST -> DNS$SERVER 12-Jun-15: *** NEW RELEASE *** 11-Jun-15: Implemented DHCP. 11-Jun-15: Bugfix. UDP receive calls in C did not process timeout parameter correctly. 11-Jun-15: Bugfix. A TCP connection that was closed locally, and then received an RST during the close phase got stuck in close-wait. 9-Jun-15: Change IF: driver to allow changing interface information on a running interface. This is needed for future DHCP. 9-Jun-15: Bugfix. An established connection receiving an RST got counted as both lost and closed. 8-Jun-15: *** NEW RELEASE *** 6-Jun-15: Improvement. Let TC: IO.RCV return immediately on PUSH, but let other functions ignore PUSH. 4-Jun-15: Fix. Reads from raw TCP sockets could return less than the requested amount of data, if data had PUSH flag set. FTP actually depends on full reads being completed. For now, we drop the recevied PUSH information. 29-May-15: Improvement in ftpd: Added more statistics in logging. 21-May-15: Improvement in ftpd: If path argument starts with a dash, assume it's a Unix ls options, and skip it. Bugfix in ftp: If in RSX native mode, LIST/NLST did not set tcp options correctly. 19-May-15: Bugfix in ftp: TCP mode was not set correctly for native RSX mode transfers. Bugfix in ftpd: TCP mode was not correctly set for receiving text files. 18-May-15: Bugfix in ftpd: If in binary mode, directory listings was sent without newlines. If in binary mode, files with implied CR+LF lost the CR+LF. Improvement in ftpd: Partial handling of Unix paths implemented. Also means that directory listings will be in Unix style. 22-Apr-15: Bugfix in name resolver. When resolving domain names, the code could get inavlid memory pointers. 21-Apr-15: Bugfix. Sockets in TEXT mode should not return partial lines, even if receiving a push. 13-Apr-15: Added logging to ftpd. Changed logging directory for httpd. 11-Apr-15: Corrected no delay sockets to send ACKs immediately. 10-Apr-15: Added IO.RPB function to TC: for reading without formatting. Bugfix: Received PUSH was dropped without action. Partly rewritten telnet client to work better and more correct with current TCP driver. 5-Apr-15: Bugfix. ICMP error packets for ICMP did not preserve the source of the error. 27-Mar-15: Improved FTP to create binary files with a max record size of 510 bytes instead of 512. This improves performance. 24-Mar-15: Bugfix. When an RST comes in for an existing socket, we did not properly set all state so the socket looked closed. Also changed FinWait-1/FinWait-2 state to probe link more often if other side do not close. 20-Mar-15: Bugfix. A socket that gets closed from the remote side will move to state closed locally. At that point we do not need any more retransmit timers active. If a socket is in Fin-Wait-2, we should not close it, but instead periodically check that the remote side is still with us. If we get an RST for an existing connection, we should drop all state for that connection. If we get a FIN for a socket we ourself have already closed, we can ACK immediately. No need to wait. Some input states did not recognize RST packets correctly. 20-Mar-15: Improvement: The user I/O timer is now restarted when a read I/O is done, so that we don't get to timeout if we are constantly doing I/O and it is working good. 19-Mar-15: Bugfix. The user timer on a TCP socket could be stopped, even though there were outstanding I/O. 17-Mar-15: *** NEW RELEASE *** 13-Mar-15: Added handling of ICMP error packets received in TCP. 13-Mar-15: Bugfix. If both sides actually initiated FIN simultaneously, TCP got lost. 12-Mar-15: Bugfix. TCP PUSH sometimes miscalculated when/which data should actually be sent with PUSH flag. 11-Mar-15: Rewrite TCP window handling to be a bit more efficient and easy to understand. 10-Mar-15: Bugfix in FTP client DIR command, which did not use the correct tcp mode. Improvement in FTP server, to not use push for each line of large messages. Bugfix. In RSX mode, after a file create, all file operations failed on file read. 2-Mar-15: Added transmission of urgent data. 27-Feb-15: Added LOGOUT, STATUS, RSTATUS and REMOTE commands to FTP. 26-Feb-15: Implemented FTPD STAT and REIN commands. 25-Feb-15: Improved FTP HELP command and help file. 23-Feb-15: Improved FTPD size command. 20-Feb-15: Changed ftp client and server back to basically synch mode. Still traps ABORT command asynch, so that transfers can be aborted. Turns out RMS ASYNC mode is much slower than RMS SYNCH mode. 20-Feb-15: Server ports can read the information from the first SYN packet. Bugfixed that a child process that inherits that SYN packet could not also read out the information. Also fixed that closed sockets cannot hang on reads. 20-Feb-15: Improved TCP a lot by removing all the parent/child relationship handling. It was not really needed, as SYN packets were moved over to child at creation of socket anyway. 20-Feb-15: Bugfix. Code in INETD never checked the result of ACCEPT calls, resulting in continuing in code when ACCEPT failed. 19-Feb-15: Bugfix. A socket that is a child to another socket never lost the child status. This was problematic, since if the socket was closed, the fact that it was a child made it work in ways that was unexpected at that point. Cleaned up now. 18-Feb-15: Bugfix. If a daemon socket times out, we should cancel all I/O. 17-Feb-15: Improvement. Added SIZE command to FTPD. Changed mode of FTPD command socket to high throughput, so that it makes better use of buffering. 17-Feb-15: Bugfix. The FTP daemon could get stuck when receiving a file and an ABOR was given, since it might be stuck waiting for the next data packet, that will not come. 17-Feb-15: Bugfix in FTP/FTPD. Modes on connections were not set properly based on text mode or not, and implied CRLF or not, for data xfer. 17-Feb-15: Implemented FTP$UPLOAD function in ftp server. 17-Feb-15: Bugfix. If TCP received packets after a FIN, the expected sequence number was calculated wrong, and the socket got out of sync. 16-Feb-15: Improvement. For closing connection, still allow delayed ACK if other end is still open. Implement ABORT for FTP client. Implement delete of partial files for FTP client. 15-Feb-15: Bugfix. FTPD used the same EFN for both command input and response, which caused errors after moving to async operation. 15-Feb-15: Bugfix. TCP retransmit failed to detect if only a FIN was left to retransmit. Bugfix. If a socket was created and put into ACCEPT, the max queue size was uninitialized. 14-Feb-15: Improved FTP client and server to work asynch. This allows us to abort transfers in progress. 9-Feb-15: Improved NETSTAT to handle switches and nice stuff. Bugfix. Removed a debug printout in FTP. 2-Feb-15: Bugfix. FTP file handler for RSX mode double buffer write was broken. 2-Feb-15: Bugfix. FTP client RSX mode PUT was broken. 28-Jan-15: Bugfix: ftp/ftpd could crash under odd RMS circumstances in directory listings. The remote address was not setup correctly for data transfers. 26-Jan-15: Improvement: Change ftp client and daemon to correctly deal with implied CRLF in files. 20-Jan-15: *** NEW RELEASE *** 20-Jan-15: Bugfix: FTP daemon didn't talk correctly with some clients. 20-Jan-15: Imrovement: Increased maximum TCP receive buffer size, which led to serious performance improvements for FTP. 19-Jan-15: Bugfix: FTP client did not set mode correctly. 19-Jan-15: Changed FTP directory listing code to be generic, and implemented local commands as complement to remote ones. 18-Jan-15: Changed RSX specific FTP protocol extension to use raw attributes and also be double buffered. Great performance improvement. 16-Jan-15: Improve nagle handling, ack transmission to utilize link better. 16-Jan-15: *** NEW RELEASE *** 16-Jan-15: Bugfix. A timer could be activated on a port in server state, which should not happen. 15-Jan-15: Bugfix. Do not allow IO.CON on a socket that have packets in the syn queue. 14-Jan-15: Change in semantics of IO.CEP/IO.SCR for TC: If a program wants to open separate sockets for handling incoming requests on a listening server socket, they should always use IO.SCR instead of IO.CEP. IO.CEP have been extended to restrict the ability to open an existing port several times. 14-Jan-15: FTP client improvement. Detect device full error when creating. Try non-contigous create as alternative. 14-Jan-15: *** FIRST RELEASE *** 14-Jan-15: FTP client rewritten. 10-Jan-15: FTP daemon finally here. Still some work in progress. 5-Jan-15: Improvement. TCP sockets can be created with the same local port number, assuming they have different remote addresses. 26-Dec-14: Bugfix. Resolver didn't check for excessive length strings to resolve. Changeed code to truncate long strings. 16-Dec-14: Bugfix. Push in write function only worked in text mode. Now it always works. 13-Dec-14: Bugfix. PU.CR mode never inserted a NUL after a CR. 4-Dec-14: Improvement. Added detection of missing packets and more immediate retransmission upon multiple ACK of old data. (Fast retransmit.) 3-Dec-14: Bugfix. Sometimes an additional ACK packet was sent after the connection was closed. 2-Dec-14: Bugfix. Improved TCP ACK handling and delays. 28-Nov-14: Bugfix. HTTPD would return the last entry in PUBLIC.TXT if a non-matching URL was given. 28-Nov-14: Improvement. Multi I/O under BASIC+2 buffer size increased to 512 bytes. 28-Nov-14: Improvement. Added restart counter statistic for interfaces. 27-Nov-14: Improvment. Enable RMD TCP pages to show both host names and IP addresses, user selectable. 24-Nov-14: Bugfix. Command parsing in FTP corrupted the input line under some circumstances. 11-Nov-14: Bugfix. Formatting routines for bytes did not round properly when scaling amounts. 11-Nov-14: Bugfix. ETHACP didn't detect line errors, and did not restart the line when needed. Now fixed. 18-Sep-14: Bugfix. TCP server ports could cause the system to crash because the same memory was used for two different purposes. (More of the same) 11-Sep-14: Improvement. Make resolver routines able to handle port numbers, separated by colon for both input and output. Also allow trailing spaces on hostnames. 11-Sep-14: Added FORTRAN-77 library for IP functions. 6-Jul-14: Bugfix. A server port that received a SYN, but that the invoked handler program opened the port with IO.SCR but failed to pick up the syn packet caused data corruption in the kernel. Bugfix. If user timeout is activated for a non-complete port, the timerout became a random value. Changed to a default value instead. 4-Jul-14: Bugfix. Drivers can be called without an I/O packet. Catch this. 15-Jun-14: Bugfix. TCP server sockets could cause system corruption and odd address traps in the kernel because of conflicting use of port database fields. 13-Jun-14: Bugfix. TCP server ports could cause the system to crash because the same memory was used for two different purposes. 28-May-14: Changed IPBP2 file information functions to work on files opened over DECnet using DAP. 18-May-14: Improve statistics for duplicate packets, duplicate bytes and duplicate SYNs received. 29-Apr-14: Added RST and ACK transmit statistics in TCP. 27-Apr-14: Modified what counters are bumped when bad sequence # in rcv. 11-Apr-14: Added code for ADD/REMOVE FILTER 28-Mar-14: Bugfix for TRACERT wrt name lookups. 21-Mar-14: Changed default timeout for TCP connections to 0. 17-Mar-14: Rewrite IO.CEP, IO.SCR, IO.ACC, IO.CON to handle arguments in a better way. Added default timeouts for UD: Rewritten HLL libraries to be consistent and more easily usable. 3-Mar-14: Bugfix in FTP. Buffer was used for both data transfer and progress information, casuing corrupt files with FTP. 23-Feb-14: Bugfix in resolver. IP2H didn't always append a NUL. Improved PING. Added a /NUMERIC switch. 18-Feb-14: Fixed PCL. Improved C library with TCP functionality. Improved DOC a bit 17-Feb-14: Wrote NTPDATE. Reworked C library 7-Feb-14: Wrote spoof daemon Including changes to TC: and UD: for spoofers. Rewrote IFCONFIG to be in many modules. Added new commands for IP filters 5-Feb-14: Added IP filters to IP: 16-Jan-14: Changed IS.TMM return to include character after IAC on read for TCP. 12-Jan-14: Improved window update code in TCP 11-Jan-14: Bugfix. TCP receive acted on receive packet flags before it should 9-Jan-14: Bugfix. User timeout on not established endpoints could cause crash 8-Jan-14: Added FTP client 27-Dec-13: Bugfix. UD: changed mapping before some address checks. 26-Dec-13: Bugfix. IOFIN destroys R4, which some TCP/UDP code was depending on 19-Dec-13: Improve UD: to allow no param for IO.CEP 7-Dec-13: Added RESACP 21-Oct-13: Added keepalive for TCP 23-Sep-13: Added IO.ADD and IO.REM for task-less servers in TCP 28-Aug-13: Added IO.RUN for running slaves with existing sockets in TCP