These are the brief release notes for GremNOS v0.2 - unfortunately rather hurried due to other urgent commitments. Comments, queries, feedback and bug reports to - apologies if it takes me a few weeks to get back to you. You are reminded that this software should be treated as any other beta software and any use is at your own risk. It is also entirely unsupported by Demon Internet Ltd. Installation with an existing DIS setup is simple - download the required zip file, backup or rename your existing net.exe and replace it with the new one from the zip. large.zip - this is the replacement for the standard 'large' version of Demon KA9Q v2.16d, including packet driver support, telnet mailbox, FTP server, RIP, Z-modem, etc. lite.zip - this is a cut down version aimed at dialup use which should boast around 100k more free memory available than the DIS large model. It excludes packet driver support, telnet mailbox, FTP server, RIP, Z-modem, finger server, DOS shell, remote client & server, ttylink server, DNS server, packet tracing and IP filter but includes additional dialler logging commands and John Washington's http URL grabber. tw-lite.zip - this is the TextWin version of the Lite model - feature list is otherwise exactly the same as lite.zip These notes only detail the changes from v0.1 to v0.2 - for the differences between Demon's v2.16d and GremNOS v0.1, please see v0.1/readme.txt (Makefile) Removed the bcc -Oc option as it caused the v0.1 TextWin build to crash - this was identified as a compiler bug generating a stray 'mov es,ax' in vt102pc :( The large build is built with -Os (optimize for size) whilst the Lite builds are built with -Ot (optimize for speed) as this gives a visible performance improvement with the TextWin version. (pop3fngr.c) Removed the 'sdps' POP3 long finger command. (dialer.c) Compiled in additional dialler logging commands into the Lite builds only. logcwait is a version of cwait that logs the entire success or fail line 'logline nnn ' logs the next line containing 'logtofile nnn ' logs every non-blank line up to, but not including, a line matching As an example, my dialler file ends: [...] [1] logcwait 60000 "CONNECT" "BUSY" "NO" "VOICE" "OK" "ERROR" [2] logline 10000 "-" wait 30000 "ogin:" send "grempc\r" wait 30000 "word:" send "password\r" wait 30000 "col:" send "PPP,mru=576\r" [3] logline 30000 "grempc" "NO CARRIER" [4] logtofile 60000 "/demon/spool/motd" "HELLO" [1] captures the full CONNECT string from the modem [2] captures the Ascend's ID banner ("demon" might be a better choice) [3] captures the line with the port number on [4] saves the MOTD to file Note that this script relies on features which Demon don't guarantee will occur during a scripted login. These logging commands can also be used to capture e.g. ATI6 statistics from a Courier automatically after a call. (main.c, pc.c) Added UMB support - UMBs are only requested after main memory heap exhausted and will appear on an extra line in the 'mem status' output. Note that UMBs aren't usually available when running under Windows (see Microsoft's KnowledgeBase[tm] for further information: ftp://sunsite.doc.ic.ac.uk/packages/microsoft/peropsys/msdos/kb/ and .../peropsys/windows/kb/). (nntpcli.c) NNTP client supports username and password for use with servers requiring authentication - 'nntp addserver news.foo.dom 600 user sample mypasswd' specifies an account of 'sample', password 'mypasswd'. Note 'nntp list' now shows account name and password in brackets. Kill file now supports continuation lines beginning with whitespace. Note that all other lines must begin with a header not a wildcard. (httpcli.c) Lite builds only now include HTTP client ('http') with permission from John Washington. Now sends HTTP/1.1 Host: header to work with virtual servers sharing a single IP address. Also sends User-Agent: header - 'GremNOS-JW-httpcli/1.1' (domain.c/domhdr.c) Decodes TXT and HINFO records correctly (whitespace still causes problems when read back from domain.txt) More checks to prevent truncated responses causing memory leaks, domain.txt and cache corruption. 'domain qtype' now accepts record type e.g. 'domain qtype mx' More checks for -ve time correction causing problems and fix to prevent expired records being written to domain.txt. domain.txt should also not now be truncated on write error. Better MX handling - negative cacheing adjusted slightly to support this. (alloc.c) Bad free pointer warning now contains the seg:off address of the calling function relative to the load point of the exe file so it's easier to locate from net.map. (hop.c) Couple of bug fixes to prevent occasional memory corruption during 'hop check' (session.c) Possible overlap timing bug when one session closes and another is created fixed. (smtpserv.c) Mailkill logging tidied up. Unknown address now takes precedence over a matching mailkill entry. Mailkill supports a 'not' syntax using '!' like newskill so: *@some.domain !myfriend@some.domain kills all mail from some.domain except those from myfriend@ Alias expansion rewritten again - now opens alias file only once per mail. Any expanded alias which contains an invalid mailbox in addition to other valid ones will no longer cause mail to bounce - mail is sent to the valid recipients and an entry is made in nos.log highlighting the problem alias. Percent hacks appearing in the alias file are automatically adjusted if the domain on the RHS of the @ matches the 'smtp gateway' hostname - this works around the problems of post.demon.co.uk not reliably maintaining support for the %-hack. (e.g. with 'smtp gateway post.demon.co.uk', foo%some.domain@post.demon.co.uk in the alias file is sent to post.demon.co.uk as foo@some.domain) Fixed problems with trailing whitespace on 'default mailbox' line. Cleaned up delay channel code - a slight pause is done if the mailbox is busy which seems to all but eliminate the use of the delay channel. Quoting of lines beginning 'From' in returned failed outgoing mail is fixed. 'close SMTP' log message includes a count of messages accepted out of those offered. sequence.seq is locked while updating to prevent problems in multitasking environments. (ftpcli.c) Fixed problems talking to Microsoft NT servers e.g. ftp.microsoft.com where the multiline response complies with the example in RFC959. More checks for socket failures. (ftpsubr.c) New option 'ftpopt verbose 4' displays a byte count and bytes/sec display rather than hash marks. (tzset.c) Relaxed checks on TZ abbreviations to allow 1-5 chars rather than 3 so CT and CEST can be used, for example. Fixed problem with TZ base offset not being accounted for in one parameter of the DST window calculation which affected DST changeovers - more noticeable further away from GMT0. The GMT0BST1... syntax that Demon continue to recommend is wrong and will cause the changeovers to occur 2 hours off - the 1 should not appear after BST. GMT0BST,M3.5.0/1,M10.5.0/2 is correct for the UK. For the NL, I reckon CET-1CEST,M3.5.0/2,M10.5.0/3 should be correct... (smtpcli.c) Client now talks (basic) ESMTP ID returned from remote server on successful mail acceptance is logged in nos.log Mail with the first line of the .WRK file matching the 'smtp gateway' setting is treated as for a 'smarthost' and sent straight to the address rather than via an MX record (Personally I don't think this step is necessary by the procedure in RFC974 but it will speed things up marginally and should continue to work regardless of any line Demon eventually take on this issue). Client code reworked to try and address some fundamental flaws - unfortunately it's not quite finished as a 400 response from a RCPT TO: will quit the session and the whole mail will be retried (actually v0.1 does this as well) - the alternative for the moment is to risk not resending the mail to that address. 'smtp batch on' currently has no effect. Graham E. Kinns 28th November 1997