home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / PPPBCKP / PPP20A02.ZIP / CHANGES.DOC next >
Text File  |  1999-06-27  |  94KB  |  2,095 lines

  1. 2.0 Alpha-2
  2.  
  3.     - Fixed the SMTP transaction which caused sending a "HELO Y" instead of
  4. "HELO [domain name]" in the transaction (caused by confusion with the
  5. DOMAIN_USERNUM parameter).  The NET.INI setting is now just "USERNUM".
  6.  
  7.     - Compiled with TC3 instead of BC45 for less overhead (and some stack
  8. issues).
  9.  
  10. 2.0 Alpha-1
  11.  
  12.     - Changed the POP TOP parameter to look at only the first 40 lines of a
  13. message to determine the content (net packet, user mail, etc.)  The 100 line
  14. parameter increased retrieval time considerably, but very rarely found its
  15. trigger words beyond the first 20-40.
  16.  
  17.     - Executables now compiled with header files from WWIV v4.30.  This causes
  18. no backward compatibility issues and is more just to keep everything current.
  19.  
  20.     - Distribution archive now includes a PING and NSLOOKUP utility compiled
  21. with the packet driver to facilitate testing.
  22.  
  23.     - More SSM reporting for events, such as invalid attempts to post to a
  24. mailing list, messages stuck in the SPOOL directory, etc.
  25.  
  26.     - Added support for SMTP relay failure (SMTP 550) when transfer fails due
  27. to third-party (anti-spam) blocking by SMTPHOST server.  The rejection is
  28. detected and the message is skipped.
  29.  
  30.     - Tweaked subscriber code in EXP to enable better detection of Internet
  31. addresses during duplicate subscribe/unsubscribe requests.  Closed an open
  32. file pointer could have caused unpredictable behavior.
  33.  
  34.     - Changed the from address for users posting to subscribed mailing lists
  35. to match the default for the BBS.  If the user has an address defined in
  36. ACCT.INI, it is added as the user's reply-to address, but the actual from
  37. address remains the BBS default.  This prevents a listserver from rejecting
  38. messages because the name in the from address is not listed as a subscriber.
  39.  
  40.     - Fixed a problem which caused a duplicated "To: Multiple Recipients..."
  41. line on hosted mailing list messages.
  42.  
  43.     - Made a change that should fix the problem of the PPP Project not working
  44. properly on networks that use only ADDRESS.NET and not ADDRESS.[group] files.
  45.  
  46.     - Fixed the logging of the sent and received byte count.
  47.  
  48.     - Added a check for zero-length files in the incoming directory.  Received
  49. zero-length messages (due to session abort/timeout) are now removed when found.
  50.  
  51.     - Added a POPDOMAIN parameter, which can be used if your ISP provides
  52. domain-based email address or you have a service that provides this (such as
  53. freeservers.com or the filenet.wwiv.net server).  Mail addressed as
  54. "user_name@yourbbs.domain.com" is sent to a single POP account in this mode.
  55. This makes it easier to address mail to BBS users, since it doesn't require
  56. the extended "User Name <yourbbs@domain.com>" format.
  57.  
  58.     - Added a RETRIES parameter to NET.INI.  If defined, the dialer will make
  59. up to ten attempts before giving up dialing your ISP.  This is useful if your
  60. ISP is busy or your modem has trouble connecting to the ISP.
  61.  
  62. - The following are added to NET.INI, all in the [GENERAL] section:
  63.  
  64. ;
  65. ; Retries when dialing. If set, will try to connect up to 10 times if
  66. ; connection is not successful (busy, etc).
  67. RETRIES = 5
  68. ;
  69. ; POP account domain name, if used.  This should only be enabled if all mail
  70. ; sent to the domain goes to a single mailbox defined by the POPNAME/POPHOST
  71. ; variables. The user addresses then become user_name@popdom.com.
  72. ;POPDOMAIN = n123.filenet.wwiv.net
  73. ;
  74. ; Whether outbound Internet mail should use the user number or name when
  75. ; domain-based addressing is used, e.g. "u123@n456.filenet.wwiv.net" or
  76. ; "your_name@n456.filenet.wwiv.net".
  77. ;USERNUM = Y
  78.  
  79. - The following are source code mods for WWIV v4.3 (Beta) to support the new
  80. POPDOMAIN parameter.  These will be added to the next beta.
  81.  
  82.   - In VARS.H, define the pop_domain and domain_usernum variables:
  83.  
  84.                ppp_name[81], ppp_domain[81], ppp_real, user_ppp_addr[81],
  85.                pop_domain[81], attach_dir[81];             // change
  86.  
  87.            preloaded, nsp, list_option, thread_subs, newline, returning,
  88.            bquote, equote, quoting, wfcdrv, use_x00, domain_usernum; // change
  89.  
  90.   - In XINIT.C, read_networks(), add the following code to set the pop_domain
  91.     variable:
  92.  
  93.   ppp_name[0] = 0;
  94.   ppp_domain[0] = 0;
  95.   pop_domain[0] = 0;                                       // add
  96.   ppp_real = 0;
  97.   domain_usernum = 0;                                      // add
  98.  
  99.   if ((fp = fsh_open("NET.INI", "rt")) != NULL) {
  100.     while (!feof(fp)) {
  101.       fgets(s, 80, fp);
  102.       s[strlen(s) - 1] = 0;
  103.       stripspace(s);
  104.       if ((!strnicmp(s, "DOMAIN=", 7)) && (!ppp_domain[0]))
  105.         strcpy(ppp_domain, &(s[7]));
  106.       else if ((!strnicmp(s, "POPNAME=", 8)) && (!ppp_name[0]))
  107.         strcpy(ppp_name, &(s[8]));
  108.       else if (!strnicmp(s, "FWDDOM=", 7))
  109.         strcpy(ppp_domain, &(s[7]));
  110.       else if (!strnicmp(s, "FWDNAME=", 8))
  111.         strcpy(ppp_name, &(s[8]));
  112.       else if (!strnicmp(s, "POPDOMAIN=", 10))             // add
  113.         strcpy(pop_domain, &(s[10]));                      // add
  114.       else if ((!strnicmp(s, "USERNUM=", 8)) &&            // add
  115.             ((s[8] == 'Y') || (s[8] == 'y')))              // add
  116.         domain_usernum = 1;                                // add
  117.       else if ((!strnicmp(s, "REALNAME=", 9)) &&
  118.             ((s[9] == 'Y') || (s[9] == 'y')))
  119.         ppp_real = 1;
  120.     }
  121.  
  122.   - Then in BBSOVL1.C, get_user_ppp_addr(), add the following to the bottom
  123.     of the function if the user does not have an ACCT.INI address defined:
  124.  
  125.     fclose(fp);
  126.   }
  127.   if ((!found) && (*pop_domain)) {                           // add
  128.     if (domain_usernum)                                      // add
  129.       sprintf(user_ppp_addr, "u%d@%s", usernum, pop_domain); // add
  130.     else {                                                   // add
  131.       strcpy(s, thisuser.name);                              // add
  132.       for (i = 0; i < strlen(s); i++)                        // add
  133.         if (s[i] == ' ')                                     // add
  134.           s[i] = '_';                                        // add
  135.       strlwr(s);                                             // add
  136.       sprintf(user_ppp_addr, "%s@%s", s, pop_domain);        // add
  137.     }                                                        // add
  138.   }                                                          // add
  139. }
  140.  
  141. Beta-99
  142.  
  143.     - Extended the length of POP TOP to 100 lines identify bounced net packets
  144. with long headers added during the bounced mail session.
  145.  
  146.     - Added MDaemon to the list of "bounced" message originators to account
  147. for MDaemon's originating address convention.
  148.  
  149.     - Suppressed error message during SENT\ message creation when outbound
  150. posts were destined for newsgroups (not email).
  151.  
  152.     - Changed originating domain/hostname to reflect "filenet.wwiv.net" from
  153. (previously "filenet.ml.org").
  154.  
  155.     - Changed multitasker detection routines to detect OS/2 Warp, Windows 98
  156. and others more accurately.
  157.  
  158.     - Fixed a character string length problem when parsing NODEPASS in NET.INI.
  159. Didn't seem to affect anything, but thanks to Ninja for pointing it out.
  160.  
  161. Beta-98
  162.  
  163.     - Now cleans up the M<subtype>.TMP files created when adding/removing
  164. mailing list subscribers.
  165.  
  166.     - Recompiled with BC31 to clear up CONTACT.NET update problems.
  167.  
  168.     - Removed file-sharing code from PPPUTIL.  Added during troubleshooing in
  169. Beta-95, but problem turned out otherwise.  Never needed them, so removing the
  170. overhead.
  171.  
  172. Beta-97
  173.  
  174.     - Relaxed the comparison for matching the subscriber file on mailing lists.
  175. A match against the originator's reduced address ("user@somewhere.com") will
  176. also match the subscriber.
  177.  
  178.     - Fixed bug where requests for mailing lists (Subscribe LISTS) weren't
  179. removed after processing... been there forever, but just surfaced because of
  180. revised list validation processing.
  181.  
  182.     - Fixed bug where posts for a subscribed (not hosted) mailing list were
  183. being rejected as invalid.
  184.  
  185. Beta-96
  186.  
  187.     - Added a feature to save outbound copies of sent user mail in the SENT
  188. directory (up to 9,999 messages).  No copies of outbound posts are saved.
  189.  
  190.     - Fixed something I broke in B-95 so it now picks up all inbound messages
  191. from SPOOL on a single run, rather than waiting for the next processing.
  192.  
  193.     - Fixed the NOLISTNAMES=Y switch I also broke in B-95 (by bypassing screen
  194. output and, in doing so, not determining whether that switch was set!)
  195.  
  196.     - Fixed the check sender against mailing list subscribers so it now will
  197. reject posts from non-subscribers (stored as INBOUND\CHK*.MSG).
  198.  
  199. Beta-95
  200.  
  201.     - Added a check for duplicate newsgroup looping during the creation of the
  202. NEWSRC file.  Apparently, something out there doesn't send the normal, RFC
  203. type of end of transaction signals, so this catches that.
  204.  
  205.     - Fixed the mailing list tagline phenomenom, thanks to Weatherman.  The
  206. loop was retaining the alphasubtype variable after first processing a mailing
  207. list message and applying that to all subsequent messages in the run.
  208.  
  209.     - First stab at a "gas gauge" type of progress meter for outbound SMTP
  210. using Zu's code.  It's not perfectly linear, but it should provide a good idea
  211. of total transfer times and progress.
  212.  
  213.     - For Eileen Stone:  I think I have the chunk-ing code working properly, so
  214. posts to a mailing list should be imported properly now!  We may need to tweak
  215. the MIME detection settings as we progress, though.
  216.  
  217. Beta-94
  218.  
  219.     - Compiled under BC45 to eliminate the stack issues identified by "Unable
  220. to update CONTACT.NET!" and other warnings.
  221.  
  222.     - Added a secondary loop exit to the saveactive() routine to see if that
  223. fixes reported problem with infinite looping after newsgroup list received.
  224.  
  225.     - Ensured the default tagline file is used in each iteration of the export
  226. loop to address problems going from special tagline files during runtime.
  227.  
  228. Beta-93
  229.  
  230.     - Fixed a typo on a filename that may have caused things to fail in some
  231. multi-net configurations.
  232.  
  233.     - Bug fixes to WATTCP PCTCP.C should address some SMTP sending problems.
  234.  
  235.     - Now deletes duplicate packets on the server rather than downloading to
  236. INBOUND\DUP*.*.  This was the original intent of the duplicate check, after
  237. the routines had a chance to prove themselves!
  238.  
  239.     - NTIME now exits entirely if a time server connection fails.  This
  240. precludes the potential for bogus date values being set to the system clock.
  241.  
  242.     - Fixed bugs with failed/aborted SMTP transfers causing sharing violations
  243. and such.  The file pointer check was backwards, the target directory was wrong
  244. ("BAD" versus "FAILED") AND the unlink() directive was incorrectly nested!
  245.  
  246.     - Added a string conditioning call to received newsgroup names during
  247. NEWSRC creation to see if that addresses Crimson's problem.
  248.  
  249.     - Added some returns to the NEWS logging output to clarify output.
  250.  
  251. Beta-92
  252.  
  253.     - New: Added PRIMENET flag to [NETWORK] block in NET.INI.  When defined,
  254. POP sessions are initiated only on the defined network.  For example:
  255.  
  256.         PRIMENET = FILEnet
  257.  
  258. will allow POP retrieval only when calling FILEnet nodes.  This is to prevent
  259. DEAD.NET packets with systems using older versions.
  260.  
  261.     - Fix: "Subject:" keyword on digest mailing lists was missing.
  262.  
  263.     - Fix: "Multiple recipients of list xxxx" recipient was duplicated on
  264. outbound mailing lists.
  265.  
  266.     - Fix:  Signature files should now work properly and support alphanumeric
  267. subtypes (not just numeric).
  268.  
  269.     - Fix: 'QUIET' mode in [NEWS] now suppresses most screen output.
  270.  
  271.     - New:  Checks for Internet Rex Fidonet flag in "X-Mailer" header and
  272. leaves these messages in SPOOL\ directory (processed by external programs).
  273.  
  274. Beta-91
  275.  
  276.     - Recompiled with Borland C++ v3.1 versus v4.52, yielding approximately
  277. 25K more runtime memory.  This may help on low memory situations, such as
  278. under Win95.
  279.  
  280.     - Added QUIET=Y/N switch to the [NEWS] block.  This is the beginning of a
  281. streamlined interface for news retrieval.  My particular use at this time is
  282. for a "stealth" mode during retrieval, where subjects are not displayed.
  283.  
  284.     - Added "digest" mode to hosted mailing lists.  By adding DIGEST=Y under
  285. the [MAILLIST] tag in NET.INI, all posts from a day will be collected and sent
  286. as a single message the following day.
  287.  
  288.     - Added support for FIW (or, possibly, other Fido-type Internet engines).
  289. FIWPKT.TXT in the FILENET\ directory must contain the subject strings you wish
  290. to find and skip.  FIW messages will be left as FIW*.* in FILENET\INBOUND.
  291.  
  292. Beta-90
  293.  
  294.     - Changed support address to edare@home.com... will be dropping the Netcom
  295. account here sooner or later in favor of the @Home cablemodem!
  296.  
  297.     - Now works properly for networks using only a single ADDRESS.NET (versus
  298. ADDRESS.<group> as used in FILEnet, which will still work normally).
  299.  
  300.     - Untested code to support multiple networks.  The net name is prepended
  301. to the packet and checked during decode.  If matched to a different network,
  302. the P*.NET packets are created in the appropriate network directory.
  303.  
  304.     - Now moves failed SMTP transfers to MQUEUE\FAILED\<filename> to eliminate
  305. repeated transfer attempts.  SMTP errors 550, 551, 552, 553 and 554 are moved,
  306. which should satisfy most addressing errors (and not lost carrier, etc.)
  307.  
  308.     - Added support for a non-transparent proxy (such as under Wingate).  POP
  309. account builds as "user#realhost@proxyhost".  Only needed when the address is
  310. different with the proxy.  Transparent proxies are defined normally.
  311.  
  312.     - Moved some NET.INI parsing directly into POP, as the commandline grew to
  313. an excessive length with all the additional options.  This removed any backward
  314. compatibility for mismatched POP and NETWORK executables.
  315.  
  316.     - Reworked time-slicing and multi-tasker detection code using more compact
  317. routines (and it seems to work better).
  318.  
  319.     - Added a check for the from address against the subscriber list before
  320. allowing a post to a hosted mailing list.  Posts that originate from a user
  321. that is not in the subscriber list will end up in files called CHK-xxx.MSG.
  322.  
  323.     - Added the "from" address as a compare for determining is posts are
  324. from a subscribed mailing list.
  325.  
  326.     - Increased the length of the POP name and password variables from 20
  327. characters to 40.
  328.  
  329.     - Fixed a problem where messages would end up on the wrong sub if the
  330. system hosted more than one mailing list from a separate POP account
  331.  
  332.     - Fixed a message that would appear for an ill-formatted return address
  333. that could cause the program to crash.
  334.  
  335.     - Added MIME identification for all outgoing messages as either UUE for
  336. network packets, or plain text for all others.  Some ISPs or mail readers would
  337. not process messages without this MIME header.
  338.  
  339.     - POP now deletes messages that are partially downloaded then aborted
  340. (for example, in the case of a timeout).  This keeps bad packets (with a
  341. missing 'end') from showing up in checknet, or ending up in the postmaster
  342. account.
  343.  
  344.     - Time of last connect is now updated only after a successful connect,
  345. rather than when pending packets are encoded for a system.
  346.  
  347.     - Changed the compile to use the '-r-' directive only for the programs
  348. which use the WATTCP libraries (POP, NEWS and NTIME).
  349.  
  350. Beta-89
  351.  
  352.     - Repositioned a sock_tick() call after the last line of an SMTP transfer,
  353. hopefully addressing recent ISP changes which prohibit fragmented packets.
  354.  
  355.     - Made allowance for MIME-type messages which are really plain text using
  356. RFC-1521 standards, e.g. Content-Type of "text/plain", "text/enriched", etc.
  357. This will allow 32K+ messages from MSIE/Mozilla to be imported as sub posts.
  358.  
  359.     - Recompiled under BC31 using the '-r-' compiler parameter (supress
  360. register variables) as recommended by the WATTCP author.
  361.  
  362.     - Now recycles invalid subscriber requests to mailing lists as normal mail
  363. into the BBS, rather than leaving them as INBOUND\SUB*.BAD.
  364.  
  365.     - Fixed a bug which would cause the 'newsrc' listing to be retrieved as a
  366. regular newsgroup instead of incrementing the group number.
  367.  
  368.     - Added "NOWATTCP" to NET.INI.  If NOWATTCP=Y, the existing WATTCP.CFG
  369. configuration file is left intact.  The default is 'N', which means it will be
  370. rewritten on each run.
  371.  
  372.     - Fixed a bug for autorequesting mailing lists with "Subscribe LISTS" and
  373. added some additional error checking to subscribe/unsubscribe requests to
  374. valid filenames, etc.
  375.  
  376. Beta-88
  377.  
  378.     - No functional/cosmetic changes.  Recompiled with different makefile
  379. compiler options to see if they address the "Unable to access NET.LOG" errors.
  380.  
  381. Beta-87
  382.  
  383.     - Added a new check for bounced messages to include the "postmaster" at
  384. AT&T Worldnet.  This should address the recent change to their mail program
  385. which bounces messages but makes them appear as new.
  386.  
  387.     - Made a change to the way POP.EXE does its argument parsing to try to
  388. get rid of the crashing or "skipping mailbox check" problems that cropped up
  389. when the ACCT.INI processing was added.
  390.  
  391.     - More changes were done to the From: logic to make sure that outbound
  392. messages are addressed properly.
  393.  
  394.     - Added more checking for subscribed mailing lists.  Will now properly
  395. detect the owner of mailing lists that have a text description after the
  396. From: field and the actual owner address on the following line.
  397.  
  398.     - EXP now uses the message-id to identify messages that have been
  399. returned from mailing lists, so that they don't appear on the sub when they
  400. are sent back out from the listserv host.
  401.  
  402.     - Added support for unique pop accounts for hosted mailing lists.  The
  403. entries in ACCT.INI are similar to those for a user.  For example, for a
  404. HUMOR user list with an account name of wwiv-humor@usa.net, the entries would
  405. be:
  406.  
  407. ACCT-HUMOR = wwiv-humor@pop.netaddress.com password
  408. LIST-HUMOR = wwiv-humor@usa.net
  409.  
  410.     - Cosmetic changes to TERMIN.COM to integrate better with the MOREINFO=N
  411. display.
  412.  
  413.     - Removed redundant call to compact message ID database after each POP host
  414. when checking multiple mailboxes.
  415.  
  416.     - Expanded commandline parsing for do_spawn() routine.  This was to
  417. accommodate lengthened commandlines on POP which may have been lost during the
  418. spawn process.
  419.  
  420. Beta-86
  421.  
  422.     - Added PPPD.ZIP as an alternative to KlosPPP.  This driver seems to be
  423. more stable and also supports PAP/CHAP authentication.  Extract PPPD.ZIP to
  424. the BBS main directory and run PPPDCFG to configure your scripts.  Then add
  425. the following to NET.INI in the [GENERAL] section:
  426.  
  427.         DRIVER = PPPD
  428.  
  429.     - Fixed broken PURGE routine which hadn't worked since I moved the function
  430. into PPPUTIL with Beta-82 or so!
  431.  
  432.     - Fixed a bug where the "From:" header field was skipped when a post was
  433. originated by a user with an address defined in ACCT.INI.
  434.  
  435. Beta-85
  436.  
  437.     - Added support to suppress mailing list recipients from the distribution
  438. list.  Add the following to NET.INI, under the existing MOREINFO parameter:
  439.  
  440.         NOLISTNAMES = Y
  441.  
  442. When set, the recipient address received by all mailing list participants is
  443.  
  444.         To: "Multiple Recipients of Mailing List XXXXX" <yourname@domain.com>
  445.  
  446. where 'XXXXX' is the name of the mailing list and your account is within the
  447. focus for name and domain.
  448.  
  449.     - Fixed bug where it creates outbound messages to a mailing list when no
  450. entries exist in M<subtype>.NET.  The message is now suppressed if no one is
  451. subscribing to the list.
  452.  
  453.     - Added support for //BOARDEDIT "Anony" setting.  If the sub is set to use
  454. "Real Name" or "Alias", the corresponding value from the USER.LST is used.  If
  455. set to "Forced" (forced anonymous), the message is created:
  456.  
  457.         From: "Anonymous" <user@wwivbbs.org>
  458.  
  459. and all obvious markings to identify the user or system are removed.  (Note:
  460. This is *not* a foolproof way to avoid identification -- there are many other
  461. values with which one can identify your newsgroup posts!)
  462.  
  463.     - Removed the routine which creates/modifies WATTCP.CFG from the NETWORKP
  464. executable.  NETWORKP now assumes your WATTCP.CFG is accurate (i.e. contains
  465. correct DNS, IP address, etc.).
  466.  
  467.     - Fixed realname/alias toggle when sending outbound messages (broken in
  468. B-83+ when the ACCT.INI processing routine was added).
  469.  
  470.     - Moved all passes for POP checks (standard NET.INI configuration, accounts
  471. contained in ACCT.INI and the filenet.ml.org server) into POP, so just a single
  472. call occurs inside NETWORK.
  473.  
  474. Beta-84
  475.  
  476.     - Compiled under BC3.  I'll use BC45 as an internal yardstick.  If it runs
  477. under BC45, it should run under a BC3-compile (which yields more memory).
  478.  
  479.     - Fixed logic on mail list subscriber response which removed the user from
  480. the list but sent a response saying they had been subscribed (versus removed).
  481.  
  482.     - Fixed the display of the detected operating system under OS/2 Warp.  Had
  483. played with something there at one point and forgot to fix it before release!
  484.  
  485.     - Fixed a wierd quirk where commandline arguments weren't getting nulled
  486. before another external program was spawned.
  487.  
  488. Beta-83
  489.  
  490.     - Fixed so that outgoing newsgroup posts from users with a defined USERx
  491. account (in ACCT.INI) have a reply-to address from the defined account, rather
  492. than the BBS account.  Users may now post in newsgroups with their own address.
  493.  
  494.     - Tweaked the POP checking code to nail down bugs reported when checking
  495. mailboxes under Win95.
  496.  
  497. Beta-82
  498.  
  499.     - Rewrote SMTP transfers in a much smarter way.  Now maintains a positive
  500. control of the process from a main calling routine, so it can detect and
  501. respond to lost carrier or other SMTP failure conditions properly (even if the
  502. Klos drivers try to keep things open with retries).  It may sometimes take a
  503. couple minutes, but it won't lock up and eventually cycles back to where it
  504. belongs.
  505.  
  506.     - Invalid subscriber requests (those addressed to an invalid list name) are
  507. now saved as SUB*.BAD in the INBOUND directory.  This will allow you to fix the
  508. problem, rename it to SUB*.UUE and process it normally.
  509.  
  510.     - Added a new flag to NET.INI to trigger updating the NEWSRC file each
  511. news connection.  By default, this is turned off.  If you wish to receive new
  512. newsgroups each call, add:
  513.  
  514.         NEWSRC_UPD = Y
  515.  
  516. to the [NEWS] portion of NET.INI.
  517.  
  518. Beta-81
  519.  
  520.     - Fixed a problem which caused POP to crash immediately after loading, if
  521. there was no mail to send.  This was because the WATT.LIB (for Waterloo socket
  522. library) was compiled with BC3 versus BC45, and it only manifested itself under
  523. Windows 95... probably to do with obsolete functions like _creat() and _open().
  524. Strangeness!
  525.  
  526. Beta-80
  527.  
  528.     - Happy New Year!
  529.  
  530.     - Fairly radical changes, including a return to BC 4.52 for compile.  Now
  531. includes PPPUTIL.EXE which must be placed in the BBS main directory.  This file
  532. contains "utility" functions used by the program which didn't need to be in the
  533. NETWORK.EXE, including log trimming, purging, etc.
  534.  
  535.     - Moved all the new ACCT/USER features into POP (where they belonged in the
  536. first place!)  This freed up heap in NETWORK, which was getting overloaded.
  537.  
  538.     - Rewrote the WATTCP.CFG creation routines so it honors non-standard
  539. gateways and variable-length subnetting, which PPPWAT pulls directly from the
  540. PPP session layer.  This should allow it to run under very odd circumstances.
  541.  
  542.     - Fixed a bug in NEWS which caused it to think '1' was less than '12' when
  543. determining the month in updating NEWSRC.  Would've only noticed on New Year's
  544. Day, naturally! :)
  545.  
  546. Beta-79
  547.  
  548.     - Fixed a typo in UU which caused the program not to find the extended
  549. description file (*.EXT) associated with a directory.
  550.  
  551.     - Reworked the SMTP transfer routines to control looping and aborted
  552. transfers a bit better.  It should now abort and exit cleanly upon loss of
  553. carrier or forced aborted transfers.
  554.  
  555.     - Eliminated duplicate message check, FDL and other non-sysop routines for
  556. BBS user-specific (ACCT) mail.  This ensures the user gets everything destined
  557. for him, even if the sysop also receives it.  User-based hosted mailing lists
  558. are still supported, however.
  559.  
  560.     - Rewrote user account check routine.  To check additional mailboxes now,
  561. create a file named ACCT.INI in the FILEnet directory.  The format of this file
  562. is the same as before, i.e.
  563.  
  564.         ACCTx = userid@pophost password
  565.         USERx = userid@domain
  566.         USERy = another@somewhere
  567.         USERz = jdoe@another
  568.  
  569.     - Fixed a problem with autosubscription to hosted mailing lists where the
  570. CR/LF was removed from each entry whenever someone subscribed or was removed
  571. from the list.
  572.  
  573.     - Changed the MAKEFILE to duplicate earlier (working) versions.  Added back
  574. some stack to NETWORK.EXE to get around problems updating CONTACT.NET/NET.LOG
  575. after program completion.
  576.  
  577. Beta-78
  578.  
  579.     - Now sends an SSM to sysop when a system subscribes to or removes themself
  580. from a hosted mailing list.
  581.  
  582.      - Added support for issuing a list of hosted mailing lists in response to
  583. a message with:
  584.  
  585.         Subject: Subscribe LISTS
  586.  
  587. A text file describing your available lists named MAILLIST.TXT must be in the
  588. GFILES directory or else an error is returned to the requestor.
  589.  
  590.     - Relocated a check for subscribe requests so it didn't rely upon finding
  591. a good name first.  This will ensure better success rate for automated requests
  592. to subscribe to hosted lists, notably when the Subject line appears after the
  593. From line (unusual, but it happens!)
  594.  
  595.     - Added support for checking multiple mailboxes.  There are actually two
  596. distinct elements to this, the POP account information (the ACCT field) and the
  597. user's reply address (the USER field).  This method will allow a BBS user to
  598. maintain an independent Internet mailbox.  Below POPPASS in NET.INI, create
  599. entries using the following example:
  600.  
  601.         ACCT7 = freid@pop.erols.com secret
  602.         USER7 = freid@erols.com
  603.         USER123 = jdoe@somewhere.com
  604.         USER456 = msmith@elsewhere.com
  605.  
  606. In this example, the program checks the mailbox "freid" on "pop.erols.com" with
  607. a password "secret" (the ACCT7 line).  Mail received from this account is sent
  608. to user #7 (ACCT7) on the BBS.  In addition, outgoing mail from users #7, #123
  609. and #456 (USER7, USER123 and USER456) will use the indicated return address as
  610. opposed to the standard, BBS return address.
  611.  
  612.     - Moved routine for chunking >32K messages so they're picked up immediately
  613. after receipt, rather than being moved to SPOOL and not found until the next
  614. callout.
  615.  
  616.     - Rewrote routine which removes high ASCII and control characters from
  617. newsgroup messages and subjects.  Previous routine was causing occasional
  618. problem overflowing character buffer (causing some wierdness).
  619.  
  620.     - Now searches the top 1,000 lines of an UNK*.MSG (standard mail) to see
  621. if it's a MIME-encoded message.  This will prevent chunking large messages
  622. into small emails if it's an encoded file.
  623.  
  624.     - Message-IDs are now added to the duplicates database only after
  625. successful receipt of the message.  This will prevent a DUP*.* packet which is
  626. really the first completed receipt.
  627.  
  628.     - Added initial hooks for global FILEnet mail server.  Account address is
  629. built upon node number, e.g. n1160@filenet.ml.org, n221@filenet.ml.org, etc.
  630. To activate, add the following to NET.INI below the existing POPPASS keyword:
  631.  
  632.         NODEPASS=<assigned account password>
  633.  
  634. We will be issuing passwords for these accounts, which are independent of other
  635. defined accounts, as the service becomes available.
  636.  
  637. Beta-77
  638.  
  639.     - Relocated a close to a file pointer and a findnext() call in smtp_sendf()
  640. to prevent looping on the same message, if rejected for any reason.  (Came to
  641. light trying to send large messages through a host which would accept them!)
  642. True failures (socket problems) will continue on a second attempt.
  643.  
  644.     - Finally (thanks for your patience, Eileen!) splits received mail larger
  645. than 32K into chunks for import.  This includes both user-to-user mail or mail
  646. destined for hosted mailing lists.  It skips messages which can be clearly
  647. identified as encoded files, i.e. UUE and Base64, on the assumption these are
  648. harder to handle when imported in chunks.  Perhaps a future enhancement will
  649. include handling (decoding) these externally.
  650.  
  651.     - Suppressed the search for username match for ListServe-type mailing lists
  652. (identified by the "To: Multiple recipients of mailing list ....") or when no
  653. username is found in the message.
  654.  
  655.     - Added routine to check for duplicate mail and packets by maintaining a
  656. database of received Message-IDs.  If the ID exists in the database, it's
  657. marked as a duplicate to preclude reprocessing.  This is useful if you have
  658. connection problems during transfers (before the mailbox is updated).  The
  659. maximum entries in the database is 1,000, and the database is compacted to 500
  660. entries when you exceed that.  Therefore, at least the most recent 500 messages
  661. will always be compared.  To make this more effective, a unique Message-ID is
  662. now included on outbound net packets, composed using the packet name.  This
  663. prevents all duplicate net packets, caused by either send or receive problems.
  664.  
  665.     - Added additional logging to all modules.  The contents of the log are
  666. still maintained in NEWS.LOG for backward compatibility.  We may change the
  667. name in a future revision, but NEWS.LOG seems to be acceptable.
  668.  
  669.     - Finally nailed down the WATTCP.CFG creation problems by using a system()
  670. call and renaming WATTCP.CFG on-the-fly.  (These iterations were necessitated
  671. by Klos' PPPWAT utility, which would let go of the file handle!)
  672.  
  673.     - Expanded NOSPAM.TXT parsing into blocks.  NOSPAM.TXT is now organized in
  674. three sections: [GLOBAL], [NEWS] and [MAIL].  This enables variable processing,
  675. depending on the source of the message, for example:
  676.  
  677.                 [GLOBAL]
  678.                 "free "
  679.                 "live "
  680.                 $$$$$
  681.                 [NEWS]
  682.                 .UUE
  683.                 .JPG
  684.                 [MAIL]
  685.                 @money
  686.                 money@
  687.  
  688. Any mail or news with keywords in [GLOBAL] is considered spam.  The [NEWS]
  689. block is used only with news articles, and the [MAIL] block is only applied to
  690. Internet mail.
  691.  
  692.     - Added some unfinished code to NEWS for display minimalists.  When
  693. complete, the display will (optionally in NET.INI) show newsgroup articles
  694. during reciept on a single line and such to minimize screen real estate.
  695.  
  696. Beta-76
  697.  
  698.     - Added error checking to ensure any outbound messages contain a somewhat
  699. valid recipient by ensuring there's a '@' and a '.' in the addressee.  If not,
  700. the program aborts the SMTP session and you must remove the offending message.
  701.  
  702.     - Added support for a .RLZ file for hosted mailing lists.  If a file exists
  703. in the FILEnet directory named R<subtype>.RLZ, the contents of this file will
  704. be sent in response a subscribe request.  If R<subtype>.RLZ does not exist, and
  705. GLOBAL.RLZ exists, that will be sent, instead.
  706.  
  707. NOTE: There is no validation checking on the contents of this file, so do *not*
  708. put ANSI or control characters in the text, as these will crash your mail host!
  709.  
  710.     - Finally set up a Win95 machine for testing!  Adjusted stack and other
  711. values to ensure good compile and operation under both Win95 and DOS.
  712.  
  713.     - Added options to binary news retrieval allowing you to "jump" forward
  714. when you're way behind.  These are:
  715.  
  716.         ']' - Jumps forward 10 articles
  717.         '}' - Jumps forward 100 articles
  718.         '+' - Takes user input for number of articles to jump
  719.  
  720. Again, these keys are only active during binary (NEWS*.UUE) retrieval.  The
  721. program already limits total articles for newsgroups brought into the BBS, so
  722. they can't exceed the sub capacity.
  723.  
  724.     - Changed logic for NOSPAM.TXT check on received mail so it only checks
  725. Internet mail (i.e. UNK-*.UUE) during processing.  This allows you to add items
  726. to NOSPAM.TXT like '.ZIP', '.UUE', etc., without affecting normal movement of
  727. net packets and FDL files.
  728.  
  729.     - Fixed retrieved NEWS subjects so they don't exceed the storage capacity
  730. on the BBS.  The program will use the first 78 bytes of the newsgroup article
  731. title.
  732.  
  733.     - Fixed condition which caused duplicate "Reply-To:" fields in newsgroup
  734. posts when SPAMCONTROL=N and @32767 was set up as the sub host.
  735.  
  736. Beta-75
  737.  
  738.     - Screwed up the ^D0R stuff again in NEWS.EXE!  Fixed this time.
  739.  
  740.     - Went back to Beta-72 stklen, which worked for the majority.  Goose's
  741. fixes in Beta-74 for the WATTCP.CFG should fix things there.
  742.  
  743.     - Tweaked the name-matching routine a bit to get better results on matches
  744. with both user names and hosted mailing lists.
  745.  
  746. Beta-74
  747.  
  748.     - Fixed bug in mailing list subscriber code which created a malformed
  749. response message to any request for an invalid mailing list.  (It also didn't
  750. delete the original SUB-*.UUE, so the problem repeatedly occurred!)
  751.  
  752.     - Changed the create_wattcp_cfg routines to try to get rid of the unable
  753. to open WATTCP.CFG errors.
  754.  
  755.     - Messages posted to newsgroups and mail lists now use the sub real name
  756. setting, rather than the NET.INI REALNAME setting.  The REALNAME setting is now
  757. used only for email.
  758.  
  759.     - Fixed bug which displayed the additional information lines in newsgroup
  760. articles.  (Should have been prefaced with ^D0R for network routing!)
  761.  
  762.     - Several bug fixes by Goose to outbound article/mailing list header
  763. creation inside EXP.
  764.  
  765. Beta-73
  766.  
  767.     - Added autosubscribe to hosted mailing lists.  If the subject of a message
  768. is either "Subscribe LIST" or "Unsubscribe LIST" (case insensitive), the user
  769. will is added/removed from M<LIST>.NET, and a response is generated advising
  770. them of the action taken.
  771.  
  772. NOTE 1: The M<LIST>.NET must exist, even if it's empty.  If that file isn't
  773. there, the requesting system is told that it's an invalid mailing list.  This
  774. saves the trouble of parsing SUBS.XTR to see if the mailing list is valid.
  775.  
  776. NOTE 2: The program does not support mailing lists with a single character for
  777. a subtype.  This is to prevent a malicious attempt to write undesirable data to
  778. the M1.NET through M9.NET macro files supported by CALLOUT.NET.
  779.  
  780.     - Cast disk space variables as float to show large hard drive (greater than
  781. 2GB) accurately.
  782.  
  783.     - Now displays the originator of standard Internet mail messages, instead
  784. of "non-network packet" during receipt.
  785.  
  786.     - Added "Group: <groupname>" field in message headers received in binaries,
  787. for use by PBNews in sorting into proper directories.
  788.  
  789.     - Added "References", "Message-ID" and "Reply-To" fields to received
  790. newsgroup articles, suppressed with ^D0 network routing lines.  These can be
  791. used to facilitate threading and other features, with the appropriate BBS
  792. source code mod.
  793.  
  794. Beta-72
  795.  
  796.     - The fread() technique didn't work.  SMTP mandates that lines beginning
  797. with a period be doubled to prevent confusion with an end-of-message marker.
  798. It proved too difficult to parse the entire buffer to make these adjustments.
  799. Fundamentally, this version returns to B-68 techniques!
  800.  
  801. Beta-71
  802.  
  803.     - Ooooops... new fread() technique for block reading outbound SMTP wasn't
  804. supposed to double periods *unless* a single period was the first character of
  805. a new line.  Fixed.
  806.  
  807. Beta-70
  808.  
  809.     - Oops!  B-69 didn't treat the leading period in some messages properly.
  810. Although it wouldn't crash, it probably corrupted the UUE on the receiving end.
  811.  
  812. Beta-69
  813.  
  814.     - Fix in SMTP transfer routine which could have crashed system when the
  815. first line of the output message was a period.
  816.  
  817.     - Fairly radical changes in SMTP transfer routines to use a faster and more
  818. reliable method.  Reads outbound messages in 1K blocks vice line-oriented.
  819. Stops/restarts the socket allocation for every message.
  820.  
  821.     - Removed support for bcc (blind carbon copy) in outbound messages.  Never
  822. used anything which directly supported this, anyway.
  823.  
  824. Beta-68
  825.  
  826.     - Cosmetic change when receiving FDL files.  The display will now show the
  827. filename being received instead of ARC-xxx.UUE.
  828.  
  829.     - Rewrote routine to create WATTCP.CFG to use buffered file I/O (and to
  830. prevent "Unable to create WATTCP.CFG" errors in the future).
  831.  
  832.     - Reworked logic on SMTP send loop so socket is opened and closed between
  833. each message relay.  Added a couple of routines to detect and respond to socket
  834. errors during the SMTP transfer process.
  835.  
  836.     - Changed From/Reply-To fields in outbound headers to enclose extended user
  837. information in a comment, e.g. "Frank Reid" <edare@ix.netcom.com>. Previously,
  838. no quotes delimited the comment, and this may have confused some mail readers
  839. when composing a response.
  840.  
  841. Beta-67
  842.  
  843.     - Fixed discrepancy on hosted mailing lists which caused outbound messages
  844. from remote WWIV-type systems to be created without a valid focus, e.g.
  845. "From: John Doe" vice "From: John Doe <user@site.com>".  (This crashed most
  846. mail relay programs!)
  847.  
  848.     - Returned to BC++ v4.52 compiler to stabilize problems experienced by many
  849. since downgrading to BC++ v3.1 back with Beta-51 or so.  This uses a bit more
  850. memory (about 20K) but seems to generate a more stable executable.
  851.  
  852. Beta-66
  853.  
  854.     - Added stack checking code to see how much of it is really being used.
  855. The current values closely reflect the program's real stack requirements.  Any
  856. discrepancies reflect other, less apparent program requirements.
  857.  
  858.     - Repositioned the write_groups() call in the sock_err label so it didn't
  859. close all files before attempting it.
  860.  
  861.     - Changed the mailing list code to pull the optional text (used to identify
  862. ListServe type messages) independently of the routine for subtype.
  863.  
  864. Beta-65
  865.  
  866.     - No changes except in the compile options.
  867.  
  868. Beta-64
  869.  
  870.     - Changed SAMPLE.INI to point to the National Institute of Standards time
  871. server at "time.nist.gov".  (Thanks, Papa Bear!)  This should provide reliable
  872. time for those using NTIME to set the clock.
  873.  
  874.     - Added some error checking to the clock() routine which tracks length of
  875. NEWS connection.  This should eliminate negative values from appearing within
  876. NET.LOG (and from corrupting CONTACT.NET/PPP).
  877.  
  878.     - Changed CONTACT.NET update to cap maximum bytes for @32767 connections to
  879. 9,999K (10MB).  This is a limitation of the network software, including NET.LOG
  880. entry.  This makes it friendlier with external programs, including LastNet.
  881.  
  882.     - Added a "Lines: xxx" field to articles retrieved from binary newsgroups
  883. (NEWS*.UUE in SPOOL).  This will facilitate additional features in PBNews, a
  884. utility which reads the NEWS*.UUE files and decodes the original binaries.
  885.  
  886.     - Rewrote POP STAT and LIST commands to eliminate the getnumbers() routine,
  887. as passing the pointer among routines may have been causing problems retrieving
  888. messages from the mailbox.
  889.  
  890.     - Added capability to comment newsgroups within NEWS.RC.  Add a ';' to the
  891. beginning of any line containing the group to skip.  This will allow you to
  892. preserve group information but bypass downloading on every NEWS run.
  893.  
  894.     - Went back to known working stack values in all modules.  Still trying to
  895. determine what values provide universal satisfaction, but these now seem more
  896. OS-dependent.  We shall see...
  897.  
  898. Beta-63
  899.  
  900.     - Changed routine which sends "RCPT TO" field to SMTP host not to fail
  901. entirely upon a bad address (such as missing path to root DNS!)  This should
  902. make it more tolerant of normal Internet outages.
  903.  
  904.     - Fixed a problem where the SMTP port wasn't being closed properly after
  905. all outgoing packets were sent.
  906.  
  907.     - Standardized the reply-to addresses to all be of the format:
  908.  
  909.       User Name <address@site>
  910.  
  911.     - Fixed a problem that would cause NEWS.EXE to crash when receiving NEWSRC
  912. updates in which the group name was too long.
  913.  
  914.     - Changed the file open routine in UU.EXE to get rid of the occassional
  915. net packet that would be sent with a header and no body.
  916.  
  917.     - Fixed a problem with subscribed mailing lists where the incorrect
  918. from address would be shown in the header.
  919.  
  920.     - Fixed a problem in hosted mailing lists where the From: address on the
  921. outgoing message would be a combination of the BBS's Internet address and the
  922. original user's Internet address.
  923.  
  924.     - Fixed a problem in hosted mailling lists where some of the routing line
  925. information would end not be properly stripped from messages sent to the list.
  926.  
  927. Beta-62
  928.  
  929.     - SMTP transfers are now accomplished in a single call to POP.  Previously,
  930. POP was called repeatedly for each message.  This change appreciably improves
  931. SMTP transfer speed (and the ability to control errors, including ICMP errors
  932. returned by Waterloo sockets).
  933.  
  934.     - Recipient addresses are now parsed within a valid focus for transfer to
  935. the MTA (Sendmail/QMail/etc.) on the RCPT TO line.  Additional information on
  936. the recipient line is retained in the header, but no attempt is made to send
  937. that within the focus.  This will ensure compatibility with all MTA versions.
  938.  
  939.     - Added support for quoted strings in NOSPAM.TXT, so "free " is treated as
  940. distinct, with embedded whitespace, so it would match "free video" but not
  941. "freeport".  Without quotes, any leading or trailing whitespace is removed.
  942.  
  943.     - Added support for List-Processor mailing lists which address mail as
  944.  
  945.            "To: Multiple recipients of list <LISTNAME or address>".
  946.  
  947. To use this method, add a distinct text element from the "To:" line after the
  948. normal list definition in NET.INI, for example:
  949.  
  950.         [MAILLIST]
  951.         wx-talk@listproc.org *SUBTYPE "WX-TALK"
  952.  
  953.     - Revised the NNTP post article routine to match that used in POP for SMTP
  954. transfers.  This should eliminate the stalled transfers when posting to a
  955. newsgroup.
  956.  
  957.     - Fixed a quirk in NET.LOG update which caused misaligned columns if a call
  958. exceeded 100 minutes (which isn't unusual on NEWS sessions).
  959.  
  960.     - Now includes NETWORKP.EXE in the distribution archive.  This version does
  961. not load or unload the Klos drivers, but assumes you have an existing Ethernet-
  962. class packet driver (for cablemodem, dedication connections, etc.)  Need some
  963. feedback on this to tailor it (until I get my own cablemodem here!)  Rename to
  964. NETWORK.EXE instead.
  965.  
  966.     - Fixed a bug in NEWS which caused problems if the first listed group was
  967. a binary (subtype '0' in NEWS.RC), resulting in the subsequent, non-binary
  968. group not to have a valid packet name.
  969.  
  970.     - Now updates the last messages read pointers when NEWS aborts due to a
  971. session error, such as a timeout.
  972.  
  973.     - Now creates a new packet (P0-*) upon selecting a new group to ensure it
  974. doesn't lose messages if a connection is lost during that process.
  975.  
  976.     - Fixed broken CONTACT.NET update routine.  Will now update //PENDING, even
  977. if no packets were sent to "real" FILEnet systems.
  978.  
  979. Beta-61
  980.  
  981.     - Moved a brace in UU.EXE which should allow it to find the correct FDL
  982. type (from either FDLFTS.CFG or the directoryrec.dirtype) when uploading FDL-
  983. hatched files received via Internet mail.
  984.  
  985.     - Added a loop which aborts SMTP session after five consecutive failures.
  986. This will ensure that SMTP transfers aren't tried repeatedly when some other
  987. problem is affecting the link.
  988.  
  989.     - Tweaked the postnews() routine with additional error checking and such
  990. in the hope to eliminate stalling problems experienced on some systems.
  991.  
  992.     - Recompiled the Waterloo TCP/IP library with compiler options identical to
  993. those for main modules.
  994.  
  995.     - Kludged in a quick fix for outbound mail exported from a hosted mailing
  996. list which I hope will fix the "Gate #y@zzzz not yet supported" problem when
  997. mail is received from other network systems.
  998.  
  999. Beta-60
  1000.  
  1001.     - Added a <Tab> option during NEWS retrieval which catches up on the
  1002. current newsgroup (by setting the last read message pointer to equal the
  1003. current last message in the group).
  1004.  
  1005.     - Eileen Stone bagged a mail specimen for me which contained more than 650
  1006. character lines (well beyond how I had cast this string).  It was, basically,
  1007. an entire paragraph without returns.  You'd think the spammers would have, at
  1008. least, the decency to comply with the RFC!  This should address such messages.
  1009.  
  1010.     - Fixed a quirk which caused NOSPAM.TXT to be skipped if BINXPOST was also
  1011. enabled in NET.INI.  The spam check is now performed even on binary newsgroups.
  1012.  
  1013.     - Will now parse NOSPAM.TXT against incoming messages (Internet mail) in
  1014. addition to newsgroup posts.  Messages which match NOSPAM.TXT will be left in
  1015. INBOUND as SPM-*.UUE.  A more robust engine, e.g. separately definable spam
  1016. lists for mail and news, will be forthcoming.
  1017.  
  1018.     - Refined the SMTP transfer loop to ensure it flowed properly (and gave the
  1019. correct output when no mail was sent).  I've been able to power up and down the
  1020. modem here and have the program respond appropriately.  Your results may vary!
  1021.  
  1022.     - Changed to unbuffered file I/O routines in NEWS savebody() process.  This
  1023. will circumvent any problems associated with multiple open files, particularly
  1024. when log entries, spam checks and message pointers are all occurring during the
  1025. NEWS retrieval session.
  1026.  
  1027.     - Moved several repetitive strings into a global array in NETWORK in order
  1028. to reduce the DGROUP.
  1029.  
  1030.     - Now appends the originating user name after any defined REPLYTO= field
  1031. in NET.INI.  This will allow news readers to reply more easily to an originator
  1032. of a message posted on the system, even with SPAM control in place.
  1033.  
  1034. Beta-59
  1035.  
  1036.     - Bad POP.EXE in B-58!  Wasn't responding to lost carrier.
  1037.  
  1038.     - Reworked multiple SMTP transfer routine.
  1039.  
  1040.     - Removed duplicate strings in NETWORK.EXE.
  1041.  
  1042.     - Added a moderate stack back into NETWORK.EXE to address failed update
  1043. for CONTACT.NET errors.
  1044.  
  1045. Beta-58
  1046.  
  1047.     - Fixed binary crosspost check, thanks to Papa Bear.  It wasn't counting
  1048. the number of letters in BINXPOST right -- basic math skills lacking here!
  1049.  
  1050.     - Streamlined code for successive SMTP transfers by removing a redundant
  1051. loop (again, with Papa Bear's help).
  1052.  
  1053.     - Killed tcp_tick() calls throughout POP and NEWS.  I never trusted these.
  1054. Although they're touted as capable of tracking socket failures, I've found it
  1055. actually keeps the socket alive after it's clearly failed (e.g. NO CARRIER!)
  1056.  
  1057.     - Returned to the stack sizes which worked consistently in B-53.  This will
  1058. eliminate any CONTACT.NET errors which popped up for some systems since then.
  1059. Seems to be solid here, but Weatherman will break it!  :)
  1060.  
  1061.     - Rewrote the stripcolors() routine in EXP so it now properly removes all
  1062. colors, and the numerals associated with them, and all high ASCII.
  1063.  
  1064. Beta-57
  1065.  
  1066.     - Removed the NETWORK1/2/3 clean-up routines.  There isn't consistently
  1067. enough memory to run these within a DOS spawn, and the "Out of memory" errors
  1068. in NETDATx.LOG correspond directly to lost packets.  The feature's not worth
  1069. the potential dangers (lost packets!)
  1070.  
  1071.     - Added a check to ensure that the NOSPAM.TXT keywords are longer than
  1072. three characters.  This will prevent spurious things, such as a returns or
  1073. spaces from triggering a TRUE result on the routine.
  1074.  
  1075.     - Removed the tcp_tick() calls from NEWS.  These could cause a crash if the
  1076. socket is not in place.
  1077.  
  1078. Beta-56
  1079.  
  1080.     - Dropped the NETWORK stklen back to 6K as this most certainly was causing
  1081. the failure to update CONTACT.NET problem on some systems.  Redesigned spawn
  1082. routine not to allocate as much memory for the commandline arguments passed,
  1083. which should lessen the stack requirements.  (We know the maximum number of
  1084. commandline arguments passed to the spawn routine in advance, so there was no
  1085. need to allocate a character array for 50 possible arguments!)
  1086.  
  1087.     - Hooked in calls to NETWORK1/2/3 to clean up pending packets completely
  1088. before and after runtime.  The reduced overhead on the spawn routine should
  1089. allow this to process without any problems.
  1090.  
  1091.     - Major revelation!  After looking closely at RFC 821, I realized I was
  1092. misinterpreting the SMTP "MAIL" directive as inherently intertwined with the
  1093. header "From:" field.  This is not the case -- the header is sent separately
  1094. and does not need to reflect the "MAIL" directive used in the SMTP session.
  1095. POP will now use a simple focus "Mail From:<mybbs@mydomain.com>" during SMTP
  1096. send, while preserving any extended user information on the message From:
  1097. header line.  Outbound mail now appears as:
  1098.  
  1099.                 From: User Name <mybbs@mydomain.com>
  1100.  
  1101. This should significantly improve the ability of most mail readers to respond
  1102. to a message originated on the BBS (and increase the possibility that the
  1103. response will go to the right mailbox!)  It also eliminates SMTP problems
  1104. caused by forcing the extended user information into the "MAIL" directive.
  1105.  
  1106.     - Added a properize() routine to the outbound mail name, so it appears as
  1107. it should, e.g. "Old MacDonald", "Mary Jones-Smith", etc.
  1108.  
  1109.     - Added a SPAM filter for news retrieval.  Create NOSPAM.TXT in the FILEnet
  1110. directory with keywords to be compared (case-insensitive) against the subject
  1111. and originator of each newsgroup article during retrieval.  NOSPAM.TXT should
  1112. have one entry per line, e.g.
  1113.  
  1114. fast cash
  1115. phone sex
  1116. toni@spaclab.net
  1117. 6t9.com
  1118. $$$$
  1119.  
  1120. If there's a match, the message is skipped during retrieval.  The delay in
  1121. parsing even a 100 line NOSPAM.TXT is insignificant compared to the time saved
  1122. by not retrieving the spam!  (In other words, the comparison is pretty quick!)
  1123. The check is bypassed if BINXPOST=Y in NET.INI or if NOSPAM.TXT does not exist
  1124. in the FILEnet directory.
  1125.  
  1126. Beta-55
  1127.  
  1128.     - Eliminated stack overflow checking from makefile compile options which
  1129. should speed up code execution (and reduce the size of executables somewhat).
  1130.  
  1131.     - Allocated a sockets structure in NTIME to prevent corruption across the
  1132. heap (which may have caused lockups when the socket couldn't be created).
  1133.  
  1134.     - Changed POP to recognize FDL-type email, even if ALLMAIL=N.  Basically,
  1135. if "FDL Type:" is found in the top portion of a message, it's assumed to be an
  1136. file hatched via FDL, and it will be retrieved normally.
  1137.  
  1138.     - Changed disk space check to a Win95-friendly routine provided by Papa
  1139. Bear (which allowed me to recast variables as long, vice double as was used in
  1140. Wayne's disk-check routine!)
  1141.  
  1142.     - Increased stklen in POP (6K vice the 4K default) to address the problem
  1143. with some systems hanging on file transfers.
  1144.  
  1145.     - Changed to tcp_tick(NULL) vice tcp_tick(Mail_Socket *).  This was changed
  1146. between B-53 and B-54 and may have been the cause of lockups during SMTP send.
  1147.  
  1148.     - Fixed failed checks for a modified directory structures.  Dawg pointed
  1149. out that I was closing the DIRS.DAT file handle before I got the length!
  1150.  
  1151.     - Changed to far calls for memory allocation for copyfile() and NET.LOG
  1152. update routines.  This is what I would've preferred all along, but stack and
  1153. other errors kept chasing me back to the standard allocation calls.
  1154.  
  1155. Beta-54
  1156.  
  1157.     - Killed redundant code in the CONTACT.NET update routine.  This should fix
  1158. the unpredictable results for total time/bytes in //PENDING output.
  1159.  
  1160.     - Removed a one-second delay after each message was received via POP.  This
  1161. was added just before B-53 and may have generated problems where POP hung when
  1162. retrieving messages.
  1163.  
  1164.     - Cleaned up zero byte packets created during news retrieval before these
  1165. are renamed to valid pending network packets.  This will preclude the network
  1166. software from finding/processing them.
  1167.  
  1168.     - Fixed EXP routine which was stripping spaces from the REPLYTO address in
  1169. NET.INI.
  1170.  
  1171.     - Spam-proofed the Message-ID field in newsgroup posts.  Previously, this
  1172. required field had been composed using the real account name and domain.  It
  1173. now uses the account name and WWIV-BBS.
  1174.  
  1175.     - Added BINXPOST=Y/N to NET.INI.  When <Yes>, it bypasses the check for max
  1176. crossposts on binary newsgroups (must have 'binaries' in name).  This allows
  1177. you to spool all messages from binary groups, regardless of crossposting.
  1178.  
  1179.     - Fixed overwriting display of "Expired Article." and other skipped posts
  1180. during news retrieval.
  1181.  
  1182.     - Added a tcp_tick() call in postnews() where it could potentially die
  1183. waiting for a response from the news host after posting.  (This won't speed up
  1184. the server's response, but it will allow the program to exit gracefully!)
  1185.  
  1186. Beta-53
  1187.  
  1188.     - Fixed a quirk which caused NEWSRC to be retrieved entirely on subsequent
  1189. runs on a new month or a forced update.
  1190.  
  1191.     - Changed display of expired and skipped articles to remain on a single
  1192. line during retrieval.
  1193.  
  1194.     - Recast newsgroup count variable from a short to long integer.  For ISPs
  1195. with more than 32,767 newsgroups (!), this caused the display to corrupt while
  1196. retrieving a NEWSRC listing.
  1197.  
  1198.     - Figured out the CONTACT.NET update problem (finally!).  Somehow, in B-42,
  1199. the structure for net_networks_rec had a far pointer declaration removed for
  1200. two variables which control that relationship.  Yeesh...
  1201.  
  1202.     - Recompiled under Borland C++ v3.1... have now got TC3/BC3/BC4 installed
  1203. for a broad selection!
  1204.  
  1205. Beta-52
  1206.  
  1207.     - Recompiled with Turbo C++ v3.0 instead of Borland C++ v4.52 which
  1208. returned a significant amount of memory (25K) to the program.  Some of that
  1209. was immediately used to increase NETWORK's stklen to 15K (in the hope that
  1210. it preserves enough space to update CONTACT.NET for everyone!)
  1211.  
  1212.     - #defined a macro for min() in UU.C in order to use .cpp mode with
  1213. compilers earlier than BC4.
  1214.  
  1215.     - Added self-maintaining routine to update NEWSRC with each news callout.
  1216. A full NEWSRC listing is retrieved the first of each month, and updates are
  1217. retrieved daily.
  1218.  
  1219. Beta-51
  1220.  
  1221.     - Returned to previous method of enclosing recipient information entirely
  1222. within the focus during SMTP relay, e.g.
  1223.  
  1224.                 To:<user@whatever.domain (User Information)>
  1225.  
  1226. The changes in B-50 didn't resolve the QMail imcompatibility problem.  Adding
  1227. USERMAIL=N to NET.INI bypasses extended user information and should allow it
  1228. to cooperate with QMail.  (Alternately, use 138.145.3.3 for SMTP relay!)
  1229.  
  1230.     - Now deletes "441 Duplicate messages" during postings.  You should never
  1231. see these, except when the NEWS times out during posting, in which case the
  1232. duplicate message is genuine, i.e. the first message did get posted.
  1233.  
  1234.     - Nailed the culprit causign NEWS lockups!  I wasn't allocating enough
  1235. room for a buffer when extracting information from the header, particularly
  1236. the "Newsgroups:" and "Path:" fields.  This was most evident on binary groups
  1237. with lots of crossposts.  When the buffer overflowed, it crashed!
  1238.  
  1239.     - Changed source modules to .cpp extension to force stricter bounds check
  1240. and typecasting.  Got rid of POP.H and #defined what we need explicitly within
  1241. the POP and NEWS modules, including Mail_Socket structures.
  1242.  
  1243.     - Changed most conditional routines within NEWS to switch() statements in
  1244. order to track/detect socket errors more accurately and quickly.  It seems to
  1245. respond flawlessly here now! :)
  1246.  
  1247.     - Chased my tail for a few days figuring out why the certain NEWS routines
  1248. appeared to be called improperly (and overwrote memory areas allocated for
  1249. other things, including the sockets!)  Turned out a global string variable was
  1250. oversized at 4096 bytes (on the static heap!)  RFC 977 provides a maximum of
  1251. 512 bytes for returned strings in NNTP, so that's how we're now cast.
  1252.  
  1253.     - Added checks to ensure the socket was alive in NEWS and POP using the
  1254. Waterloo tcp_tick() routine.  Hopefully, this obviates extended periods where
  1255. the server falls asleep!  Ensure "INACTIVE" and "SOCK_DELAY" in NET.INI aren't
  1256. excessive.  (INACTIVE=60 and SOCK_DELAY=30 are appropriate.)
  1257.  
  1258.     - Returned makefile options used in B-39 to see if that solves problems on
  1259. some systems with memory allocation routines, e.g. allocating for sockets.  One
  1260. of the flags was for a standard stack frame.  I think this should fix the case
  1261. where the POP mailbox wasn't checked unless there was outbound SMTP.
  1262.  
  1263.     - Revamped the BAD*.UUE check for mail originating locally, so it accepts
  1264. mail in which the original message had been quoted and the original "From:"
  1265. line appeared in text.  (Some mail systems, like cc:Mail, quote with just a
  1266. separator line, leaving the original "From: you@where" in tact.)  It now looks
  1267. only in the header for a match to determine if it's BAD*.
  1268.  
  1269.     - Added a definable Reply-To: field in NET.INI.  If defined, this address
  1270. (up to 80 characters) will be used in the text of newsgroup posts.  It can be
  1271. something like:
  1272.  
  1273. REPLYTO = edare{at}ix{dot}netcom{dot}com (change before responding!)
  1274.  
  1275.     - Fix from Zu Digital revamps NEWSNAME/NEWSPASS logic.  His local POP for
  1276. Mindspring required authentication when the socket was initially opened, so the
  1277. NEWSNAME and NEWSPASS are now presented at time of connection.  If your host
  1278. does *not* require authentication, you *must* comment out the NEWSNAME and
  1279. NEWSPASS lines in NET.INI, otherwise you'll get authentication errors!
  1280.  
  1281.     - Tweaked the socket error label completely in NEWS, so it does a clean
  1282. exit when timeouts and session errors occur.
  1283.  
  1284.     - Changed the use of the "abort" variable while saving the text body in
  1285. NEWS articles so it didn't chop off the message (stop writing it) after a
  1286. [Space] or [Esc] command was issued.  The message now gets completed and
  1287. processed normally as the last message read in that group.
  1288.  
  1289.     - Added a time synchronization routine (NTIME.EXE) which sets your DOS
  1290. clock using a time server.  If you are unsure of your time server, use the one
  1291. in the example below.  If the TIMEHOST is not defined in NET.INI or NTIME.EXE
  1292. isn't in the BBS main directory, this routine will be skipped.  Add the
  1293. following to NET.INI, below the SMTPHOST definition:
  1294.  
  1295.         TIMEHOST = ns.nctsw.navy.mil
  1296.  
  1297.     - Enhanced directory checking when receiving file so it places non-FDL
  1298. files in the defined NOREQUEST_DIR in FDLFTS.CFG.  (If FDLFTS.CFG isn't there
  1299. or the flag isn't defined, it will go to Sysop directory.)  Also, fixed a
  1300. place where it wouldn't have found FDLFTS.CFG under normal circumstances.
  1301.  
  1302.     - Saw a first today -- a 0 octet (no size!) message was queued in my POP
  1303. mailbox.  This returned a '0' to the calling routine (which uses the size), so
  1304. I added code to delete it, close and update the mailbox when this happens.
  1305.  
  1306.     - Revised NEWS packet naming method to pass a complete filename to the
  1307. routine which saves the message body.  In this manner, nothing in memory should
  1308. corrupt the contents.  Added a "wait_closed()" upon error just in case.
  1309.  
  1310.     - Shortened up some oversized global variables in NETWORK to keep stack
  1311. requirements below the default 4K.
  1312.  
  1313.     - Changed the display on total mailbox size to conform to the same display
  1314. as sent SMTP messages, i.e. "(nnK)" vice "(nnnnn bytes)".
  1315.  
  1316.     - Removed a spurious "Maximum posts -" output string when retrieving binary
  1317. groups.  (The max articles check in //BOARDEDIT is bypassed on binaries!)
  1318.  
  1319.     - Standardized/prettied up some displays when sending/receiving POP/SMTP
  1320. messages.
  1321.  
  1322. Beta-50
  1323.  
  1324.     - Added a USERMAIL=Y/N option to NET.INI (see SAMPLE.INI).  This option
  1325. bypasses the creation of an extended address form, i.e. the (USERNAME) which
  1326. follows the user@domain in the originator field.
  1327.  
  1328.     - Changed the way RCPT TO passes recipient addresses during SMTP to conform
  1329. to RFC, as I now understand it.  The MTA portion now relays outbound messages
  1330. with any extended information outside of the wrapper, e.g.
  1331. "RCPT TO:<user@whatever.domain> (extended_user_info)".
  1332.  
  1333.     - Incorporated Goose's fixes to stop NEWS crashing by waiting until the
  1334. socket is closed before exiting.  Without this wait, there was still junk
  1335. coming in the socket, even after the program exited!
  1336.  
  1337.     - Another Goose fix to address PPPSTATE error #255, by waiting two seconds
  1338. to allow the PPP TSR to load and exit before running PPPSTATE, eliminating the
  1339. possibility that PPPSTATE erroneously found no memory available.
  1340.  
  1341.     - In UU, added a routine to ensure the directory path for uploads to
  1342. Sysop directory were explicit, e.g. "C:\WWIV\DLOADS\SYSOP" vice "DLOADS\SYSOP"
  1343. (which is allowable on the BBS, but dangerous in external file operations!)
  1344.  
  1345.     - Eliminated an attempt to "QUIT" the POP session when encountering an
  1346. error at initial connection.  (This meant the path was bad or the host was
  1347. unavailable, therefore the "QUIT" command is unanswered, anyway!)
  1348.  
  1349.     - Added a QUIT directive during POP sessions where there is a clear fail
  1350. returned to the client, e.g. bad mailbox or password, etc.  This is a nicety
  1351. for our ISPs, so we always "clean up" after our POP session.
  1352.  
  1353.     - Now creates a backup of NEWS.RC at runtime as NEWS.BAK (in the FILEnet
  1354. directory).  This was requested as a means of ensuring last read message
  1355. pointers don't get trashed/lost as easily.
  1356.  
  1357.     - Modified the logic in an aborted NEWS sessions so the host would clear
  1358. remaining buffers before returning to the calling routine, i.e. to empty the
  1359. contents of any inbound stream so no junk got carried back!
  1360.  
  1361.     - Removed spurious "as UNK*.UUE" display when Internet mail is received
  1362. and moved from the INBOUND to SPOOL directories.
  1363.  
  1364.     - Another Goose fix to prevent terminating an already null string in the
  1365. treat() routine inside NEWS (causing the "attempt to access memory area already
  1366. in use" error under some operating systems).
  1367.  
  1368. Beta-49
  1369.  
  1370.     - Oops... had a 50/50 shot and picked wrong!  Have now standardized memory
  1371. allocation using malloc() calls vice farmalloc() calls, as was the case in B-39
  1372. (which appears to have worked properly in retrieving mail!)
  1373.  
  1374.     - Again, changed the way the net_data variable is handled throughout NEWS.
  1375. Last attempt caused more problems than it solved!  :(
  1376.  
  1377. Beta-48
  1378.  
  1379.     - Standardized memory allocation for the sockets in all modules.  This
  1380. should address the problem of not picking up mail unless there's outbound
  1381. mail to send.
  1382.  
  1383.     - Nailed down the variable overrun in NEWS causing abnormal exit after a
  1384. line of garbage, i.e. "Can't create temporary packet <garbage>\INPUT1.MSG".
  1385. The contents of a global variable ("net_data" which points to the network
  1386. data directory) were getting trashed!
  1387.  
  1388.     - Redid NET.LOG update routine.  No longer reads entire existing file,
  1389. line-by-line, but rather allocates the file as a memory block and writes the
  1390. block after the additional entry is added to the top.  Measurably faster.
  1391.  
  1392.     - Added additional error checking to copy/move operations to prevent lost
  1393. files.  Now ensures the directoryrec is unmodified before reading/uploading
  1394. received files.  If modified directoryrec, e.g. filepoints, the files are kept
  1395. in CHECKNET, as before.
  1396.  
  1397.     - Removed the unnecessary "Path:" field in email.  (This is used solely
  1398. for Usenet posts in determining whether an article originated on the local
  1399. system and should, thus, be skipped during retrieval.)
  1400.  
  1401.     - Added an "X-Reply-To:" field for hosted mailing lists to assist in
  1402. allowing responses to the list from mailers which don't support the extended
  1403. parentheses addressing.  The field is formatted using the originator, domain
  1404. and mail list subtype, e.g. "MAILTYPE <user@whatever.domain>".
  1405.  
  1406. Beta-47
  1407.  
  1408.     - Fixed lost cursor after exiting news.
  1409.  
  1410.     - Recast strings in NEWS to 1024 bytes vice 512 and cast the temporary
  1411. packet name as static, hopefully to prevent the overrun on some subjects
  1412. (which bled into the temporary packet name!)
  1413.  
  1414.     - Added support for a secondary DNS.  Add "SDNS=<IP address>" under the
  1415. current DNS (primary) tag in NET.INI.
  1416.  
  1417.     - Went back to standard malloc() calls for allocating memory for the
  1418. sockets.  I had mismatched these in POP in B-46.
  1419.  
  1420.     - Added an explicit call to close the input file before proceeding in UU.
  1421. This should eliminate any sharing violations, such as across a LAN.
  1422.  
  1423. Beta-46
  1424.  
  1425.    - Tweaked much more and built in lots of error checking into POP and NEWS,
  1426. particularly.  Think we've got all potential lockups fixed.
  1427.  
  1428.    - Changed returned values in NEWS to standard, i.e. 0 or less for error
  1429. and a positive integer for success.  This allowed me to standardize the
  1430. sock_err routine for more accurate responses to socket problems.
  1431.  
  1432.    - Added internal FDL processing to UU.EXE.  For FDL feeds received via
  1433. Internet mail, UU now puts them directly into the BBS (rather than using
  1434. DE555.EXE) to keep the description and FDL type together with the file.
  1435.  
  1436.     - Added a "SLAVE" directive to NEWS before any transactions.  On some
  1437. NNTP servers, the SLAVE command is used to give priority treatment to a
  1438. connection, on the premise it's a "slave server" rather than a user.
  1439.  
  1440. Beta-45
  1441.  
  1442.     - B-44 was a lemon!  I distributed the wrong executables with the archive,
  1443. and immediately after I found problems in error handling!  These caused nearly
  1444. certain death crashes!
  1445.  
  1446.     - Fine-tuned error handling again.  (Found a condition which returned a
  1447. (null) SMTP reply, which gave me something to work with!  This version really
  1448. does respond to errors!
  1449.  
  1450. Beta-44
  1451.  
  1452.     - Returned to standard stack size (4K) in all modules.  These tweaks
  1453. appear to have addressed only tertiary problems.  Reduced runtime memory
  1454. requirements by about 20K.
  1455.  
  1456.     - Went back to basics on POP, starting with the core code of B-32 and
  1457. progressing through the more recent changes.  Tweaked fallthroughs on socket
  1458. errors.  Found an area where an attempt to close an open file would causing
  1459. sharing violations.
  1460.  
  1461.     - Fixed a problem which incorrectly identified a quoted response to mail
  1462. as BAD*.UUE (because it found the original "From:" line from the originating
  1463. system).  It will now only perform a "bad" match that if the "From:" line is
  1464. part of the new header.
  1465.  
  1466.     - Fixed a situation which has existed since the project began!  ALLMAIL
  1467. wasn't honoring "ALLMAIL=N" if it detected the message as any type of UUE.
  1468. This caused graphics files, archives and other UUEs to be retrieved, despite
  1469. the ALLMAIL setting.  Thanks to Robert Kish for pointing this out (and anyone
  1470. who may have in the past, although I didn't catch it!)
  1471.  
  1472.     - Corrected a problem which generated hard locks on NEWS retrieval (again
  1473. in the sock_err handling! :(
  1474.  
  1475.     - Returned to linear display of sent/received messages, so now all
  1476. transfers appear on a single line (for viewing at runtime).
  1477.  
  1478.     - Removed *lots* of unnecessary static data from NEWS (which is what
  1479. allowed the return to default stack size!)  Now carrying the same mail socket
  1480. allocation globally through routines, as opposed to one static allocation.
  1481.  
  1482.     - Killed the cstat() routine.  This returned the article-ID for any given
  1483. article, but we weren't using that anywhere.  (I also suspect this is what
  1484. caused the NEWS retrieval to randomly skip to the last message in the group!)
  1485.  
  1486. Beta-43
  1487.  
  1488.     - Squashed a nasty bug in POP which would cause SMTP to hang.  While I
  1489. was in there, I tweaked the "sock_err:" label (the fallthrough for Waterloo
  1490. problems), and it now appears to be more responsive now to errors.
  1491.  
  1492.     - Squashed a bug in the export() routine which caused a hard lock when
  1493. certain types of messages were exported.  While I was in there, I tweaked
  1494. handling of pipe codes and soft returns.
  1495.  
  1496. Beta-42
  1497.  
  1498.     - Changed the Path: field for newsgroups to use the FWDNAME and FWDDOM
  1499. parameters if specified in NET.INI.
  1500.  
  1501.     - Removed closes to non-open files in the UU routines.
  1502.  
  1503.     - Added support for the "X-Sender:" parameter when EXP parses mailing
  1504. list headers.
  1505.  
  1506.     - Re-fixed the problem where outgoing messages would be considered
  1507. duplicates because the Message-ID field was the same as another message.
  1508.  
  1509.     - Made a change to the header detection logic to fix a problem where
  1510. message text would sometimes be marked as hidden lines.
  1511.  
  1512.     - Removed the EXP limit of 14 mails processed at a time.  The problem of
  1513. "too much mail" or "duplicate posts" was fixed in the previous beta.
  1514.  
  1515.     - Removed the code that tried to unload PPP.EXE if it returned an error
  1516. code of "not loaded".
  1517.  
  1518.     - Fixed a longstanding problem with NEWS routine chead() which caused a
  1519. premature "End of new messages" while scanning newsgroups.
  1520.  
  1521. Beta-41
  1522.  
  1523.     - Fixed problem in UU which caused received archive files (ARC-*.UUE) to
  1524. remain in INBOUND.  (EXP decoded them repeatedly as SOME.MSG, SOME.001, etc.)
  1525.  
  1526.     - Rewrote max posts on sub lookup routine to solve problem with incorrect
  1527. article number returned during news retrieval (which often caused only last
  1528. message to be retrieved).
  1529.  
  1530.     - Allocated memory for POP and SMTP sockets on far heap (to match the
  1531. method used in NEWS, which has been working successfully!)  Hopefully, this
  1532. fixed the problem which caused POP to find no mail on host (when, in fact,
  1533. there was mail waiting).
  1534.  
  1535.     - Added a second call to resolve SMTP host via DNS (mainly to compensate
  1536. for slow nameservers).  This should reduce the occurrence of the "SMTP Socket
  1537. failure" errors during outbound mail delivery.
  1538.  
  1539.     - Updated contact information in header to my new ix.netcom.com address.
  1540. (This actually happened in B-39 or B-40, but wasn't noted in CHANGES.DOC!)
  1541.  
  1542. Beta-40
  1543.  
  1544.     - Returned to some known good values for stack (B-32 and B-34).
  1545.  
  1546.     - Cleaned up excess variables in various modules.
  1547.  
  1548.     - Fixed [Spacebar] group skip during news retrieval so it responds when
  1549. someplace else than message retrieval.
  1550.  
  1551.     - Fixed a couple bad read-write opens for CONFIG.DAT -- shouldn't have
  1552. been doing that.
  1553.  
  1554. Beta-39
  1555.  
  1556.     - Added a "Path" field to outbound articles.  This will now be used to
  1557. track whether articles originated locally (and are skipped during retrieval),
  1558. instead of the "Organization" field in previous versions.  This was required
  1559. because some news servers assign their own Organization field.
  1560.  
  1561.     - Strips pipecodes and heart colors from newsgroup articles during
  1562. export process (including titles, which got lost a few betas ago!)
  1563.  
  1564.     - Compiled with stack checking, hopefully to narrow down the problems
  1565. associated with low stack.  If you receive any warnings, please advise me.
  1566.  
  1567.     - Fixed a problem which caused "441 Duplicate Article" responses for
  1568. newsgroup posts (resulting from exported articles during the same second).
  1569.  
  1570. Beta-38
  1571.  
  1572.     - Played with the _stklen a bit more to tweak varying requirements among
  1573. several systems reporting problems with B-36/37.
  1574.  
  1575. Beta-37
  1576.  
  1577.     - Distributed wrong NETWORK.EXE with Beta-36!
  1578.  
  1579. Beta-36
  1580.  
  1581.     - Changed stack length declarations in the main and support modules to see
  1582. if that fixes symptoms of no stack, i.e. lockups after NEWS runs, etc.
  1583.  
  1584.     - Repositioned the file pointer close routines in UU so all files were
  1585. closed prior to copying/moving/deleting (to fix reported sharing violations).
  1586.  
  1587. Beta-35
  1588.  
  1589.     - Supports outbound mailing lists (i.e. hosted lists).  Create a file
  1590. M<subtype>.NET for the list of recipients (subscribers) to your list.
  1591.  
  1592.     - Handles CONTACT.NET update without allocating memory on the heap, which
  1593. caused insufficient memory errors in Beta-33/34 on several systems.
  1594.  
  1595.     - Now is case-insensitve while matching the mailing list owner fields
  1596. (in NET.INI) for mailing lists you belong to.
  1597.  
  1598.     - Uses the actual date from articles and mail, if one is found.
  1599.  
  1600.     - Replaces soft returns (from QWK packets) with normal returns.
  1601.  
  1602. Beta-34
  1603.  
  1604.     - Hopefully, a fix for memory allocation routines on CONTACT.NET update
  1605. by allocating/deallocating memory each time CONTACT.PPP (the pointer files to
  1606. your Internet connections) is created.
  1607.  
  1608.     - Changed the method for outbound packet naming, eliminating the one
  1609. second delay between encoding each packet.  That should run appreciably
  1610. faster now.
  1611.  
  1612.     - Stuck in support for the "Sender:" parameter when EXP parses mailing
  1613. list headers (requested by Eileen Stone).  This is Goose's realm, but it
  1614. seemed like an easy change! :)
  1615.  
  1616. Beta-33
  1617.  
  1618.     - Removed the @###.FILEnet from the default tagline, as some sysops are
  1619. using the PPP Project Software without actually being a member of FILEnet.
  1620.  
  1621.     - Fixed a problem where messages that had a line starting with the word
  1622. "begin" would be incorrectly identified as network packets.
  1623.  
  1624.     - Changed the connect time code so that all Internet based systems will
  1625. have their last time of connect reset after a successful SMTP/POP session.
  1626. The time of connect of any direct dial systems is not affected.
  1627.  
  1628.     - Fixed the code so that it will properly use the ADDRESS.# files
  1629. rather than ADDRESS.NET.  Also fixed the problem with the - sign in ADDRESS.0
  1630. to indicate a direct dial connection not working.
  1631.  
  1632.     - Put the return path back into the logic for the name matching routines
  1633. for the maillist to sub logic.  Some listservers use one and some use the
  1634. other.
  1635.  
  1636.     - Changed the success and failure levels for the PPP modules so that
  1637. Ctrl-C will return a fail result, rather than a pass.  This keeps outgoing
  1638. packets from being improperly deleted.
  1639.  
  1640.     - <Space> now aborts transfer of the current message during an SMTP
  1641. session.  This allows you to bypass a message on the current run, while
  1642. saving it for transfer later.
  1643.  
  1644.     - Changed some of the text display, during transfers and (lesser seen)
  1645. error result messages.
  1646.  
  1647. Beta-32
  1648.  
  1649.     - Email messages containing the encoded WINMAIL.DAT or WINMAIL.MSG files
  1650. will not be erroneously identified as UUE files.  The WINMAIL encoded lines
  1651. are also marked with the ^D0R header to prevent display on the BBS.
  1652.  
  1653.     - Changed the name matching routines for mailling lists (again) to fix a
  1654. problem introduced in beta 30 which made the name match routines always fail.
  1655.  
  1656.     - Made some changes to the logic for creating the WATTCP.CFG file to
  1657. try to prevent the "Can't create WATTCP.CFG" problem.
  1658.  
  1659.     - Removed POP.DBG.  Now uses "MOREINFO" flag in NET.INI to provide debug
  1660. (extended dialog) information with POP/SMTP hosts.
  1661.  
  1662. Beta-31
  1663.  
  1664.     - Recompiled under BC4 to address the "Can't create WATTCP.CFG" problem.
  1665.  
  1666. Beta-30
  1667.  
  1668.     - Fixed a problem where the memory for mailling lists was improperly
  1669. allocated or freed.
  1670.  
  1671.     - The code now ignores the Return-Path line in messages.  This would
  1672. sometimes cause the return address to get assigned incorrectly.
  1673.  
  1674.     - Fixed a problem where the message Name is *after* host would be
  1675. displayed when the < > surrounded the id but no user name was included.
  1676.  
  1677.     - Fixed a problem where Beta-29 which left the INSTANCE.DAT file open.
  1678.  
  1679.     - The "N*.NET is missing" warning message was removed, since it won't
  1680. exist if @32767 is set up as the host rather than a subscriber.
  1681.  
  1682.     - Fixed a problem in the display of the sub type when message were
  1683. received to a maillist sub.
  1684.  
  1685. Beta-29
  1686.  
  1687.     - Changed the multitasker detection logic so that Windows 95 and OS/2
  1688. will be reported correctly, even if NETBIOS support is also enabled.
  1689.  
  1690.     - Fixed a problem where the newsgroup pointer could be incorrectly set if
  1691. <Esc> or <Space> was pressed to abort newsgroup retrieval.
  1692.  
  1693.     - Newsgroups are no longer deleted from NEWS.RC when an unrecoverable
  1694. error occurs.  Instead, an SSM is sent to the sysop account, so that the
  1695. appropriate action can be done.
  1696.  
  1697.     - Fixed a problem in NEWS where the crossposted or returned messages
  1698. were not being deleted for the first group listed in NEWS.RC.
  1699.  
  1700.     - Fixed a problem that would be created by messages with long subject
  1701. lines or recipient name.
  1702.  
  1703.     - EXP now reports if the *subtype (asterisk before subtype) is missing in
  1704. the mailling list section of NET.INI.
  1705.  
  1706.     - Fixed a problem which resulted in mailling list messages not ending
  1707. up on the subboard if the "reply-to" address format included any additional
  1708. information han the Internet mailing address.
  1709.  
  1710.     - Fixed a problem where Internet mail would not get sent out on the
  1711. current connect if no network packets were pending.
  1712.  
  1713. Beta-28
  1714.  
  1715.     - Added the first cut at support for putting Internet Mailing Lists to a
  1716. subboard.  To do this, you need to add a section to the NET.INI file as
  1717. shown.  The email name should be the name that the emails are posted from,
  1718. the subtype can be alpha or numeric (don't forget to make the N*.NET file).
  1719.  
  1720. ;
  1721. ; Mailing List Section - used to define internet mailing lists that are to
  1722. ; be retrieved into a message base rather than EMAIL.
  1723. ;
  1724. [MAILLIST]
  1725. ; email_name   subtype    (NOTE: Asterisk (*) is required!)
  1726. my_listserv@domain.com *1000
  1727.  
  1728.     - Changed the open mode for the WATTCP.CFG configuration file, to fix the
  1729. problem some systems see with the software trying to read this file before it
  1730. has been rewritten by the TCPWAT program.
  1731.  
  1732.     - Makes sure any received packets are renamed before the NETWORK routines
  1733. are called, so all received packets are processed after the current call.
  1734.  
  1735.     - Changed the return address for messages which are received with the
  1736. format "User Name <id@site>" to the more standard "id@site (User Name)"
  1737. format.  This keeps replies from hosing the SMTP server and getting the
  1738. SMTP socket connect failed error message (at least for this case).
  1739.  
  1740.     - Fixed a problem where posts that were sent out on a newsgroup would be
  1741. reposted when the message was received back from the newsserver.
  1742.  
  1743.     - Allows Internet-based subs to be set up with @32767 as the host rather
  1744. than a subscriber.  This allows Network Validation for outgoing posts, but
  1745. prevents the subs from being networked to other BBS's.
  1746.  
  1747.     - Added support for XPOSTS=0, which turns off cross-post detection
  1748. for newsgroups.
  1749.  
  1750.     - Changed the originator on network packets to be the real account name
  1751. rather than the forwarding service name, to allow for the correct
  1752. identification of bounced packets.
  1753.  
  1754.     - Changed the NEWS log file logic that seemed to sometimes cause crashes
  1755. while retrieving newsgroups.
  1756.  
  1757. Beta-27
  1758.  
  1759.     - Increased _stklen variable in the hope it addresses problems from some
  1760. systems running out of stack space during runtime.
  1761.  
  1762.     - Supports Waterloo TCP/IP "INACTIVE" vice "SOCK_INACTIVE" in WATTCP.CFG,
  1763. which should properly respond to lost carrier, poor IP connections, etc.
  1764.  
  1765.     - The CLEANUP option in NET.INI now will execute FLINK and LINKER only,
  1766. instead of spawning NETWORK1/2 for normal BBS cleanup.  Some systems were
  1767. running out of memory during this process, and it was redundant of the BBS.
  1768.  
  1769.     - Makes two passes in MQUEUE on each run to assist those whose provider
  1770. didn't settle handshaking immediately after connect.
  1771.  
  1772.     - Reads in alpha subtypes from NEWS.RC in upper case now to prevent
  1773. problems in finding subtypes on the BBS.
  1774.  
  1775.     - Honors the <TAB> character in received newsgroup articles.  This was
  1776. causing some text to be skewed (originating from mail readers which didn't
  1777. substitute space).  Also properly terminates the received strings, so the
  1778. spurious characters at the end-of-line on newsgroups should be fixed.
  1779.  
  1780. Beta-26
  1781.  
  1782.     - Fixed bug which caused binary groups to get sent into the bit bucket
  1783. during retrieval.  Self-inflicted wound in Beta-25 with addition of alpha
  1784. subtypes.
  1785.  
  1786.     - Changed CONTACT.NET update to a new method.  CONTACT.NET is now
  1787. updated for each system for whom the program prepares a packet.  In this
  1788. manner, it now reflects what gets sent to each system uniquely.
  1789.  
  1790.     - Tweaked the routines which read/write WATTCP.CFG.  This should get rid
  1791. of any problems associated with that, including creating 0 byte files and
  1792. inability to create WATTCP.CFG at runtime.
  1793.  
  1794.     - Forced a newline at the beginning of each newsgroup article.  This
  1795. ensures that the text of a message doesn't begin on the same line as the
  1796. RE:.
  1797.  
  1798. Beta-25
  1799.  
  1800.     - I didn't get all the changes/enhancements into this beta which I'd
  1801. hoped.  There are a great deal of functional changes below, and the todo
  1802. list is a bit smaller, but there's still work before the release of
  1803. version 2.  Please report any problems you find.
  1804.  
  1805.     - First stab at "AUTHINFO" directive used by NNTP to validate username
  1806. and password.  I could find no governing RFC, so a lot of this is in the
  1807. blind until I can set up an NNTP host which supports it.  If your news host
  1808. requires a Userid and Password for login (such as GTE), add the following to
  1809. the [NEWS] section of NET.INI:
  1810.  
  1811.         NEWSNAME = <username>
  1812.         NEWSPASS = <password>
  1813.  
  1814. The initial feedback is that this function is working properly, but it may need
  1815. fine-tuning.
  1816.  
  1817.     - The trailing '.' on each Internet email message is now bypassed in email
  1818. retrieval, so it won't be displayed to users viewing it on the BBS.
  1819.  
  1820.     - Nailed down the stacked "RE: RE: RE:" found in newsgroup responses.
  1821.  
  1822.     - Added "Continued in next message..." as the final line in newsgroup posts
  1823. which exceed 32K (and become split into multiple parts) and "Continued from
  1824. previous message..." on trailing parts.
  1825.  
  1826.     - Fixed the news and mail time/byte entries in NET.LOG, so each is
  1827. maintained uniquely now.  If you use ONECALL in NET.INI, you will get two
  1828. entries (one for @32767 and the other for the system you called), each with
  1829. its own bytes and time.
  1830.  
  1831.     - Added definable maximum cross-posts before newsgroup article is skipped.
  1832. New entry to NET.INI in [NEWS] section reads:
  1833.  
  1834.         XPOSTS = nn
  1835.  
  1836. where 'nn' is a number between 1 and 99.  (Setting this to '1' will reject any
  1837. message crossposted to another newsgroup.)
  1838.  
  1839.     - Added support for the PPPURGE utility which cleans up the SENT directory
  1840. externally.  By adding "PURGE=N" to the [GENERAL] section in NET.INI, you can
  1841. bypass packet cleanup during normal network routines.  You must then add
  1842. "PPPURGE <days>" to your external event batch file to kill SENT files.
  1843.  
  1844.     - Tweaked internal stack size which seems to stabilize problems resulting
  1845. from line noise (modem), lost connections during transfers, etc.  Need more
  1846. feedback on reliability of these changes, so we don't introduce new bugs!
  1847.  
  1848.     - Overrides net validation for newsgroup posts received from the Internet,
  1849. but leaves normal validation intact for other methods.  This is useful for
  1850. anyone who gates newsgroups with netval, as it lets the Internet stuff flow
  1851. through unimpeded but still validates BBS-originating posts.
  1852.  
  1853.     - Added internal support for the FWDNAME and FWDDOM parameters from
  1854. NET.INI.  If defined in the [GENERAL] section, these will be used for the
  1855. headers of email and newsgroup posts.  This is helpful for anyone using a
  1856. forwarding service, such as bigfoot.com, as their BBS mail host.
  1857.  
  1858.     - Fixed a problem in the UUDECODE routines where the output file was
  1859. not being deleted if an error was detected during processing.  This would
  1860. cause the partial file to be processed by the remaining NETWORK routines,
  1861. which could result in crashes.
  1862.  
  1863.     - Added support for individual ADDRESS.* files.  ADDRESS.1 and up are
  1864. maintained by the GC's.  ADDRESS.0 is a local file, which can be used to
  1865. limit callouts to particular systems.  To force a normal (modem) callout to a
  1866. system, create ADDRESS.0 in the following format:
  1867.  
  1868.         @node -      (the minus sign indicates use direct call)
  1869.  
  1870.     - Added another check for returned packets.  If the packet "from:"
  1871. name matches the name and domain defined in the INI file, the packet is
  1872. assumed to be a returned packet as well.  Apparently not all ISP's use the
  1873. standard "mailer-daemon" approach for identifying returned packets.
  1874.  
  1875.     - Changed the sleep() call in NETWORK.EXE to a delay() call used when
  1876. the socket is being established.  Some systems appear to hang using the
  1877. sleep() call.
  1878.  
  1879.     - Added the KLOSV146.ZIP file to the archive.  These are the latest PPP
  1880. drivers from KLOS, patched to remove the Windows detection code.
  1881.  
  1882.     - Added support for alpha subtypes in NEWS.C (defined in NEWS.RC).
  1883.  
  1884.     - Fixed routines to clean up after a file is received via Internet mail.
  1885. Copies are no longer saved in CHECKNET and SPOOL.
  1886.  
  1887.     - Added PURGE option to [GENERAL] area, intended to be used with new
  1888. PURGE.EXE utility.  PURGE.EXE will clean out your SENT directory as part of
  1889. the external event (and not when the program runs).  Set PURGE=N in NET.INI,
  1890. then add PURGE.EXE to your external batch file.
  1891.  
  1892.     - Added support for '_' in CALLOUT.NET to indicate non-Internet system.
  1893.  
  1894.     - Added support for user-definable anti-spam originating address.  If
  1895. 'SPAMCONTROL=Y' is defined in NET.INI, you can also add:
  1896.  
  1897.         SPAMADDRESS=whoever@whatever.address
  1898.  
  1899. If SPAMADDRESS is not explicitly defined, the anti-spam address now reads:
  1900.  
  1901.         realname@dont.spam.me.real.address (Username)
  1902.  
  1903.     - Cosmetic modification to NET.LOG entry when nothing is sent.  Adds a
  1904. comma (,) to conform to the normal network software method.
  1905.  
  1906.     - Now auto-trims NEWS.LOG, keeping a maximum of 800 lines (about three
  1907. days worth) of NEWS entries.  Trim is accomplished at the last full session
  1908. entry (a complete news session) at or above the 800 line mark.
  1909.  
  1910.     - Supports random signature files for newsgroups and email.  Naming format
  1911. for the signature files is:
  1912.  
  1913.         I<subtype>.Txx
  1914.  
  1915. where 'xx' is a number between 0 and 99.  For example, to create random
  1916. tags for subtype "12345", create files "I12345.T01", "I12345.T02", etc.  If
  1917. no random tags are found, "I12345.TAG" will be used, as before.
  1918.  
  1919.     - Now properly removes BBS tagline indicators (the ^Dx prefix for each
  1920. line in a BBS or personal tagline).  Note that these will be preserved, in
  1921. addition to the I*.T* signature files.
  1922.  
  1923. Beta-24
  1924.  
  1925.     - Added hook to EXP to call after network packets/mail are received, so
  1926. any Internet mail is processed immediately after receipt.
  1927.  
  1928.     - Count transfers (sending/receiving packets) in 512 byte increments vice
  1929. 1K now... cosmetic.
  1930.  
  1931.     - Encoding and transfer of packets is now kept on a single line vice
  1932. scrolling down the screen... again, cosmetic.
  1933.  
  1934.     - Tweaked import() routine in EXP to narrow down scrambled headers
  1935. reported by some systems.
  1936.  
  1937.     - Added total files/bytes detail to display after successful packet
  1938. transfers.
  1939.  
  1940.     - Added SSMs to be sent to the #1 account upon receipt of archive
  1941. files or bad packets moved into CHECKNET.
  1942.  
  1943.     - Added file-sharing, timeslicing routines to EXP.
  1944.  
  1945.     - Added board-specific tagline file support.  File should be in the
  1946. BBS DATA\ directory and be named I<subtype>.TAG, for example on subtype
  1947. 10001 file would be I10001.TAG.
  1948.  
  1949.     - Fixed logic when an invalid newsgroup is requested and server returns
  1950. 501 response.  It now skips the group and removes the invalid group name from
  1951. NEWS.RC automatically.
  1952.  
  1953.     - INSTALL.C/EXE is in here now.  It needs some work before broader
  1954. release, though.
  1955.  
  1956. Beta-23
  1957.  
  1958.     - Messed up parsing logic in EXP when comparing against name fields with
  1959. an underscore replacing the space.  Fixed, I hope.
  1960.  
  1961.     - Various tweaks to socket code.  I hope these address the problems some
  1962. folks have been having with the modem falling asleep.
  1963.  
  1964.     - Included POP.DBG in this archive to show dialog between you and your
  1965. servers and help in the debugging process.  Copy POP.DBG to POP.EXE before
  1966. installing.
  1967.  
  1968. Beta-22
  1969.  
  1970.     - Implements controls for Waterloo TCP socket inactivity across modules,
  1971. SOCK_DELAY and SOCK_INACTIVE.  By default, these are set to 30 and 60 seconds,
  1972. respectively.  They may be defined in NET.INI, as follows:
  1973.  
  1974. ; Time from sending an IP packet to response from DNS.
  1975. SOCK_DELAY = 30
  1976. ; Max time without socket activity.
  1977. SOCK_INACTIVE = 60
  1978.  
  1979.     - The sockets are now malloc() on the far heap again (as Goose properly
  1980. had them before).  I thought this may have been the culprit in the lost
  1981. activity timer.  When I fixed the item above, it actually crashes the client
  1982. when trying to free them from the near heap!
  1983.  
  1984.     - Removes WWIV heart color codes from titles and originator names.
  1985.  
  1986.     - Implemented ONECALL=Y/N in NET.INI to retrieve messages and newsgroups
  1987. on a single call.
  1988.  
  1989.     - Added timeslicing routines in POP and NEWS.  Would appreciate feedback
  1990. from anyone using "activity meters" to see if this helped anything, although
  1991. I suspect I have to use a different buffered I/O routine aside from fprintf()
  1992. to accomplish anything.
  1993.  
  1994. Beta-21
  1995.  
  1996.     - Urgent fix for dial-out problems to modem users.  Beta-20 was showing
  1997. "must specify phone number" because of the way I was constructing the
  1998. commandline.
  1999.  
  2000.     - Various other tweaks/enhancements which will be detailed better in the
  2001. next beta.  (It's late!)
  2002.  
  2003. Beta-20
  2004.  
  2005.     - Urgent fix for a problem in news retrieval where it wasn't finding the
  2006. NEWS.RC, I hope!
  2007.  
  2008.     - NET.INI addition:
  2009.  
  2010. ; Will retrieve mail and newsgroups on single call
  2011. ONECALL = Y
  2012.  
  2013. Beta-19
  2014.  
  2015. Additions to NET.INI (for now, grab Quixotic Quest's FAQ for a full NET.INI
  2016. and meanings).  Under [NEWS] tag, add:
  2017.  
  2018. ; If defined, puts a bogus originating address on newsgroup posts.
  2019. SPAMCONTROL = Y
  2020. ; If defined, uses file as a signature file to all newsgroup posts.
  2021. SIGNATURE = D:\WWIV\GFILES\INTERNET.TAG
  2022.  
  2023. Various code changes:
  2024.  
  2025.     - POP now receives messages to an INBOUND directory under the network data
  2026. directory instead of syscfgovr.tempdir.  This will help in case of lost
  2027. connections... received packets will remain in the INBOUND area until cleaned
  2028. out by other routines (UU, etc.)
  2029.  
  2030.     - Waterloo wasn't returning from the macro for sock_err:.  Tweaked quite a
  2031. bit, including allocating the tcp sockets on the near heap (again!).  I wish
  2032. we could return(x) from sock_err: but return values vary among different
  2033. functions... consistency is something for a future release.  If this doesn't
  2034. clear things up, we can exit(x) from the macro and allow the OS to do its own
  2035. cleanup for file handles, memory and such.
  2036.  
  2037.     - parse_ini() in network.c wasn't toupper() on s[0] properly, so lower
  2038. case 'y' and 'n' parameters weren't being honored.
  2039.  
  2040.     - Places ^D0R before header lines on received email.  These lines are
  2041. suppressed on display to user on the BBS, but may be extracted to provide
  2042. routing info.  Required changes both to POP and EXP, in order to detect/skip
  2043. ^D0R when comparing strings.
  2044.  
  2045.     - Uses underscore between multiple parts of user name on exported mail
  2046. (e.g. The_Great_White_Whale).  For backward compatibility, it matches both
  2047. space and underscore when comparing against user list.
  2048.  
  2049.     - Detects bounced mail by comparing originating address (from: line)
  2050. against known mail-bouncers, including "Mailer-Daemon", "Administrator", etc.
  2051. Bounced packets are named as BAD*.UUE and will remain in INBOUND for review,
  2052. as they're skipped during UU decode routines.  To recycle a packet, rename it
  2053. from BAD*.UUE to PKT*.UUE.
  2054.  
  2055.     - Displays 20 characters of packet originator while receiving (purely
  2056. cosmetic).  Tracked that for the above item, so figured we'd display it.
  2057.  
  2058.     - "SPAMCONTROL=Y" in NET.INI [NEWS] tag uses a bogus originating address
  2059. ("nowhere@no.net") to prevent email scoopers from finding a good address.
  2060. Also when defined, the "Reply-To:" field is omitted but a correct return
  2061. address is prepended as text to the body of message.
  2062.  
  2063.     - Supports a "signature" file defined in NET.INI [NEWS] tag, as described
  2064. above.  Format is: "SIGNATURE = [path/filename]".  Contents are read into
  2065. outbound mail during export, so length is unlimited.  If it finds ANSI, it'll
  2066. choke!  If a SIGNAURE is not defined or the file doesn't exist, it uses the
  2067. previous "Origin: * blah" tagline.
  2068.  
  2069.     - If mh.toUserName is "ALL" (ie. a first post on topic), skips the
  2070. "Responding to: ALL" in body of message... seemed redundant.
  2071.  
  2072.     - NEWS now skips the following messages during retrieval:
  2073.  
  2074.       - messages cross-posted to more than 10 newsgroups on the assumption
  2075.         that they're spammed across multiple groups.  The figure 10 is an
  2076.         arbitrary but hard-coded for now into NEWS.
  2077.  
  2078.       - any message cross-posted to another group defined earlier in NEWS.RC,
  2079.         e.g. if you define comp.games and comp.games.adventure in NEWS.RC, it
  2080.         will skip messages on comp.games.adventure which were cross-posted to
  2081.         comp.games.
  2082.  
  2083.       - any message which originated from your system as indicated by the
  2084.         "Organization:" field appended during export.
  2085.  
  2086.     - NEWS now allows you to hit <space> to skip to the next group defined in
  2087. NEWS.RC.  It doesn't "catch-up" lastread pointers for the skipped group, but
  2088. simply writes the current message pointer to NEWS.RC for your next run.  If
  2089. there's reason for a "catch-up" key, let's discuss it.
  2090.  
  2091. There are probably others, but you'll find them as you go.
  2092.  
  2093. Frank
  2094.  
  2095.