Wed Apr 15 00:14:20 1998 Russ Allbery * News/Gateway.in: Version 0.42 released. * pod/mailtonews.pod: Document compaction of continuation lines in the From header. * modules/mailtonews.al: Replace all newlines in the From header with spaces, since INN doesn't support addresses on continuation lines of the From header. Tue Apr 14 02:01:59 1998 Russ Allbery * pod/newsgroups.pod: Document the new fatal error message. * modules/newsgroups.al: Throw a fatal error if no primary newsgroup was specified. * examples/raccpost: newsgroups requires an argument, so pull that off the command line or default to rec.arts.comics.creative and modify the handling of -f accordingly. Mon Apr 13 10:28:07 1998 Russ Allbery * modules/newsgroups.al: Fixed an obvious bug in extraction of newsgroups from To and Cc addresses. * pod/headers.pod: Incorrectly said the module couldn't fail. * pod/hash.pod: Added a warning that the interface of this module will be changing. * modules/mungeids.al: If, after filtering the Newsgroups header through our regexes, we have no groups left, then just exit quietly and don't munge anything. * pod/config.pod: Added a large security warning about the dangers of untrusted access to configuration directives and the importance of doing security checking before modules have access to them. * pod/master.pod: Cleaned up more of the old refereneces to config_file(), adding in references to config(), and tweaked some of the documentation to reflect that apply() can now take arguments. * pod/mungeids.pod: Added documentation of the new configuration directive and the new stripping behavior, cleaned up some of the documentation of how this module behaves with crossposted articles. * modules/mungeids.al: Added a configuration directive giving regexes specifying which newsgroups should be used in constructing the munge. Also tweaked the regex used to match existing munges (we now no longer support newsgroup names not containing a period, but that's a small price to pay to avoid false positives on nearly all news.answers articles) and modified to strip prefixes from the message ID too (since followups will get that stripped anyway, we should do it with the first post). Fixed a few compiler warnings. Sun Apr 12 02:12:38 1998 Russ Allbery * modules/mail.al: Don't assume that News::FormReply is already loaded, since we no longer load it by default. * modules/config.al: Added the necessary support for allowing several modules to register interest in a given configuration directive. We now pass the parsed directive along to every module that was interested in it. * News/Gateway.in: Don't load News::FormReply by default, set the envelope sender to the maintainer by default, allow multiple modules to register interest in the same configuration directive by storing an anonymous array of interested modules for each directive, just call the News::Article constructor directly in read(), reformatted code a bit and reworked some comments. * pod/config.pod: Tweaked the wording a bit to reflect the fact that backslashes now work outside of double quotes, and added a note that continuation lines inside double quotes will result in a literal newline being part of the string. * modules/config.al: Cleaned up config_parse() to allow embedded newlines in strings, to support backslashes outside of double quotes, and to remove duplicate code. Also cleaned up config_file() a bit and caused it to pass the embedded newlines from continued lines directly along to the parser (the implications of which are that a continued line inside double quotes results in an embedded newline in the string). * pod/mungeids.pod: Document the stripping of things that look like prefixes. * modules/mungeids.al: Strip off anything that looks like a mungeids prefix from the message IDs in the References header before adding our prefix, to prevent message threads in multiple mungeid'd groups from acquiring new prefixes in the References message IDs every round of replies. * examples/racrmod: Use mail() rather than mail_forward(), cleaned up some formatting. * examples/raccpost: Support a -f flag that means to allow crossposts to any groups, use mail() rather than mail_forward(). * examples/raccmod: Use mail() rather than the now-deprecated mail_forward(). * Makefile.PL: Version information is now stored in VERSION.pm. * makepm.PL: Grab the version number from the second line of VERSION.pm instead of the first line of VERSION (since we're renaming VERSION to VERSION.pm and including package information so that PAUSE will put this module in the right place). * pod/headers.pod: Added documentation of the Invalid header failure message. * modules/headers.al: Added support for multiple directives affecting the same header (they'll all be applied in order), added a "reject" action that will return an error if the given header is present in the incoming message, fixed ifempty (typo in the name of the directive), special-cased a Subject of (none) due to the way that mailtonews works to be equivalent to an empty subject. * pod/mailtonews.pod: Added documentation of the "Empty body" failure message and tweaked the documentation of In-Reply-To lifting. * modules/mailtonews.al: Added a check for messages with an empty body, tweaked the regex for matching valid message IDs some more (both where we check the existing Message-ID header and where we look at the In-Reply-To header to see if we want to lift anything up to the References header). * pod/newsgroups.pod: Rewrote the documentation of what we do in an attempt to make it clearer and to add some details about the new complexity of how we handle supplied Newsgroups headers. This isn't nearly as complete as the source code comments, but should provide most of the relevant details. * modules/newsgroups.al: *Heavily* reworked the actual message rewriting rules and included a *lot* of comments about what we're doing here, how, and why. We should now correctly handle quite a few more cases, including addressing the whole issue of what to do when we have an incoming Newsgroups header rather than simply always using it. The code is much cleaner, and much more heavily commented. We also rename the Newsgroups header and the Message-ID header when we think we should to reduce the chance of duplicate errors when posting. Did I mention comments? Wed Mar 25 03:38:10 1998 Russ Allbery * pod/hash.pod: New file. * modules/hash.al: New file. * pod/newstomail.pod: New file. * modules/newstomail.al: New file. * pod/mail.pod: Removed documentation of mail_forward(), added documentation of mail() and expanded the documentation to include the no address and multiple address cases. Added a note that mail_forward() is deprecated. * modules/mail.al: Added mail() with the same functionality as the old mail_forward() except that null address lists actually work now. Deprecated mail_forward(). Mon Feb 23 16:03:55 1998 Russ Allbery * modules/mailtonews.al: Move the In-Reply-To into References even if there is no existing References header. Sun Feb 22 16:09:25 1998 Russ Allbery * News/Gateway.in: Version 0.41 released. * modules/mailtonews.al: The extraction of message IDs from In-Reply-To was pretty severely broken. Match our regex against the In-Reply-To header, not against $_, don't anchor it as many mailers surround it with other text, and make sure that a References header exists before we split it. Fri Feb 20 00:04:35 1998 Russ Allbery * modules/mailpath.al: Need to allow space after the Received: part of the header or this will never match. Thu Feb 19 00:36:12 1998 Russ Allbery * modules/mungeids.al: Make the munge in the case of crossposting independent of the order of the groups on the Newsgroups line. * examples/listgate.m4: New file. * examples/listgate.readme: New file. * examples/listgate: Reworked to use the new post_*() methods from News::Gateway and to use the new mungeids module rather than rolling our own, some comment and default tweaks, changed @rnews to an array rather than a scalar to allow safe exec, changed to use config() rather than config_line(). Wed Feb 18 13:50:41 1998 Russ Allbery * makepm.PL: Obtain the version number from VERSION and substitute it into News/Gateway.pm. * Makefile.PL: Obtain the version number from VERSION rather than News/Gateway.in. * pod/master.pod: Removed the documentation for post(), as this is now in its own module, added a reference to it at the top of the list of methods, and added the diagnostic for attempting to load a Perl module and failing. * pod/post.pod: New file. * modules/post.al: New file. * News/Gateway.in: Removed the post() method, as this is now in an autoloaded module. Also removed the version number, so that it can be added automatically during the build process. Starting with this revision, the version number of the News::Gateway package as a whole is not the same as the RCS revision of this file. * pod/mungeids.pod: New file. * modules/mungeids.al: New file. Fri Feb 13 22:12:09 1998 Russ Allbery * pod/master.pod: News::Gateway->new, not News::Gateway::new. D'oh. Mon Jan 19 01:58:38 1998 Russ Allbery * modules/newsgroups.al: Downcase an e-mail address before checking it against a pattern associated with a group, since we already downcased the pattern and since case in addresses is nearly always insignificant. * modules/mailpath.al: Updated to handle qmail Received headers with ident responses (including the null response) and the headers qmail generates when host lookup fails. Also added support for "from hostname [1.2.3.4]", which is generated by a few places despite the fact that it's invalid under RFC 822. * pod/master.pod: Added documentation of the new apply() behavior. * pod/config.pod: Added documentation of the new config() method. * modules/config.al: Added a config() method that can be called directly and which just passes an argument list along to the callbacks, modified config_line() to call it, cleaned up some comments. * News/Gateway.in: Modified apply() so that it can take a list of modules to apply, changed mesghooks so that it now contains a list of modules rather than a list of methods to call, and removed $ID from use vars as we no longer use it. Sun Jan 18 13:57:24 1998 Christopher Davis * examples/listgate: Added the ability to post via IHAVE, added message ID munging, added rnews injection capability, changed various bits of documentation. Sun Jan 18 04:08:47 1998 Russ Allbery * doc/moderate.pod: New file. Thu Jan 8 00:21:42 1998 Russ Allbery * examples/listgate: Added a temporary failure exit on posting problems, documented the reasoning behind that decision. Wed Jan 7 19:53:41 1998 Russ Allbery * examples/listgate: New file. Tue Jan 6 18:56:52 1998 Russ Allbery * modules/mailtonews.al: When pulling message IDs out of In-Reply-To for References, don't require that the message ID be the only thing in In-Reply-To; sometimes it's followed by a space and other text. Thu Jan 1 06:41:45 1998 Russ Allbery * examples/racrmod: New file. * News/Gateway.in: Revision 0.40 released. * News/Gateway.in: [Revision 0.40] Took out all of the config file parsing and reading code, as this now belongs in the config module. (Yay, the core is even smaller!) Also renamed read_message() to read() and parse_message() to apply(), which should make much more sense down the road. This should hopefully be the last backwardsly-incompatible major interface change. * examples/raccpost: Modified for new News::Gateway calling syntax. * examples/raccmod: Modified for new News::Gateway calling syntax, added nobinaries to the list of modules that are applied. * modules/cleanbody.al: Added mapping of octal 0205 to --, another one of Microsoft Word's annoyances, and added automatic stripping of literal delete characters. (Gary's stories keep getting posted containing them....) Tue Dec 30 08:45:23 1997 Russ Allbery * pod/config.pod: Added another error message from master.pod that's config-specific. * pod/master.pod: Removed the config file stuff, which is now spun off into config.pod, and changed the references to those routines to use the new names. Also renamed read_message() to read() and parse_message() to apply() throughout (hopefully), and moved the error messages that are only generated by the config code out into that documentation. * pod/config.pod: Added documentation of the fatal error message from line parsing. Hopefully eventually we'll phase this out. * pod/config.pod: New file. * modules/config.al: New file. Mon Dec 29 03:24:26 1997 Russ Allbery * modules/headers.al: Added the prepend directive, which prepends the given content to the first occurance of the given header. This is mostly intended for use with Path headers, but may have other applications (Subject comes to mind). * pod/headers.pod: Added documentation of the new prepend header rewrite directive, and added documentation of the possible fatal configuration error (which previously wasn't documented). * pod/previoushop.pod: New file. * modules/previoushop.al: New file. Fri Dec 26 00:09:09 1997 Russ Allbery * News/Gateway.in: [Revision 0.39] Cleaned up some of the AUTOLOAD handling, explicitly catching now the cases of failure to autoload the mail_error() method and attempting to autoload a non-method so that they don't attempt to call error() again. Also cleaned up the comments for post(), which still referred to the excised spooling code. * pod/bodyheaders.pod: New file. * modules/bodyheaders.al: New file. Thu Dec 25 10:27:57 1997 Russ Allbery * pod/crosspost.pod: New file. * modules/crosspost.al: New file. * examples/raccmod: Fixed the calling syntax for the constructor. * examples/raccpost: Fixed the calling syntax for the constructor, added the additional global variables into use vars. * modules/nobinaries.al: Added in the check to ensure the body was at least 40 lines when looking for encoded text, and changed the message for base64 encoding detected by the body scan to use the term base64 rather than the term MIME. * pod/nobinaries.pod: New file. * modules/nobinaries.al: New file. * examples/raccpost: Broken out a bit and commented considerably, the maintainer address and list submission address moved to the top and X'd out just in case. * examples/raccmod: Removed the unnecessary require line, since we really don't care about a Perl version here. * examples/raccmod: Added lots of documentation and lots more comments, removed the addresses of a few things just in case, fixed the bug where some crossposted articles wouldn't get resent to the mailing list by pulling out the Newsgroups header and actually looking at it rather than relying on ARGV, added eagle-aclnh@windlord.stanford.edu to the list of alt.comics.lnh addresses. * News/Gateway.in: [Revision 0.38] Modified to be Gateway.in, changed the default exit code to something compatible with sendmail, removed the hooks in favor of building them in makepm.PL, removed the local spooling code in post() since this is the job of the calling program, cleaned up a few comments. * Makefile.PL: Added the POD file to the list of files to install, added News::Article to the module prerequisites list, fixed a bug in how I was specifying which files generated man pages, added the PL file to generate the .pm to the list of things to run and added the POD file and the .pm to the list of things to delete on make realclean. Tue Dec 23 12:43:17 1997 Russ Allbery * makepod.PL: Modified to use all-caps list files to find sub-PODs to incorporate, since files beginning with . aren't included in the distribution. * makepm.PL: New file. * modules/moosesign.al: Changed the interface line, since under the new method we no longer require the initial 1 for message rewrites. * Makefile.PL: Added instructions for how to build the POD documentation. * makepod.PL: New file. * pod/master.pod: New file. * pod/mail.pod: New file. Mon Dec 22 01:38:47 1997 Russ Allbery * pod/whitelist.pod: New file. * pod/newsgroups.pod: New file. Sun Dec 21 23:25:20 1997 Russ Allbery * pod/headers.pod: New file. * pod/mailtonews.pod: New file. Sat Dec 20 15:17:30 1997 Russ Allbery * pod/moosesign.pod: New file. Sun Dec 14 08:46:11 1997 Russ Allbery * pod/mailpath.pod: New file. * pod/keywords.pod: New file. * pod/cleanbody.pod: New file. * pod/anykeyword.pod: New file. * modules/anykeyword.al: Allow for Re: at the beginning of the subject as well. Mon Nov 10 13:29:02 1997 Russ Allbery * examples/raccmod: Added more comments for our envelope sender hack, changed the keywords and whitelist files to point to their new permanent locations. Sun Nov 9 10:06:47 1997 Russ Allbery * examples/raccpost: New file. * examples/raccmod: Added forwarding of all successful posts to a mailing list as well. * News/Gateway.pm: [Revision 0.37] Added hooks for anykeyword and cleanbody, added accessor functions so that one can get at the underlying News::Article object inside the Gateway object. * Makefile.PL: We now build the list of modules dynamically by reading the module directory and don't need to play with either special make rules or with external scripts. Much cleaner. (Didn't need an external script after all.) * Makefile.PL: First pass at using an external script to build the list of modules. * examples/raccmod: New file. Fri Oct 24 18:02:44 1997 Russ Allbery * modules/keywords.al: Added the ability to pass in an anonymous sub that does the work of extracting keywords from the subject line. * modules/newsgroups.al: Added the ability to fail automatically if we aren't the primary addressee of the mail, so that crossposting can be handled correctly without resulting in multiposting. Note that this module is complicated and still needs considerably more commenting and documentation. Mon Oct 20 01:29:50 1997 Russ Allbery * modules/mailtonews.al: Pass through Approved headers and only drop headers that the news server would croak on. This forces robomod scripts to be careful about Approved headers, but it also allows the headers module to be run before the mailtonews module. Sun Oct 19 12:21:59 1997 Russ Allbery * modules/mailtonews.al: INN rejects Relay-Version headers, so drop them. * modules/newsgroups.al: Fixed bugs that were preventing multiple patterns from working and that were preventing patterns from working with commented addresses. Tue Sep 16 10:00:45 1997 Russ Allbery * modules/anykeyword.al: New file. * modules/newsgroups.al: Added error checking for invalid regexes and a correct error report. Mon Sep 15 10:37:22 1997 Russ Allbery * Makefile.PL: Makefiles need literal tabs. * Makefile.PL: Moved Gateway.pm into the subdirectory News/. * Makefile.PL: Untabified, changed to take the version directly out of Gateway.pm. * modules/cleanbody.al: Cleaned up a few comments. * modules/newsgroups.al: Fixed a minor but fatal typo. * modules/newsgroups.al: Make sure we only initialize our data structures once, call header() correctly to get an array rather than a scalar. * Gateway.pm: [Revision 0.36] Cleaned up to use an internal error() method rather which may call mail_error(). Now takes a flag to the constructor which specifies whether or not we are running interactively (and therefore may not want to generate rejection messages for internal errors). Also cleaned up the interface for the current names of modules. * modules/whitelist.al, modules/mail.al, modules/keywords.al, modules/headers.al: Fixed interface, changed to use error() rather than mail_error(). * modules/newsgroups.al: Completely rewritten from scratch to take a much wider variety of ways of specifying groups, to clean up the handling of them, and to speed things up considerably. Probably needs to be cleaned up further and commented. Sun Aug 31 05:04:15 1997 Russ Allbery * modules/cleanbody.al: Added undoing of quoted-printable, checks for invalid characters in the body, and stripping of Ctrl-Ms. Sat Aug 30 23:29:34 1997 Russ Allbery * modules/whitelist.al: Changed to whitelist from posters, modified to use News::Article, the new rejection method, the new error reporting syntax, and the new interface, cleaned up comments, and generally cleaned up the code. * modules/moosesign.al: New file. * modules/mailtonews.al: Don't worry about the envelope, since it's passed to the mail program in a safe fashion. Add a Sender header, drop Received headers because the news server rejects them, and attempt to extract a message ID from the In-Reply-To header if present. Also added more comments, cleaned things up a bit, and fixed the interface line. * modules/mailpath.al: Fixed interface line, changed to use the raw headers instead of the post headers (so that we do the right thing for C News submissions), no longer delete the old Received headers (that's mailtonews.al's job). * modules/mailpath.al: Always return success from the munging. * modules/mailpath.al: Fixed a few comments (forgot one of the additional cases that we had to handle and actually do). * modules/mailpath.al: New file. * modules/mail.al: New file. * modules/keywords.al: Modified to use News::Article, to use the new mail_error() method to report fatal errors, and modified for the new rejection scheme. Also generally cleaned up. * modules/headers.al: Completely rewritten to use the new News::Article header munging shortcuts that make our job much, much easier. Added a new "add" directive that just adds a new header (possibly duplicating an existing one). Also untabified all of the source and fixed to not use lexical variables. * modules/newsgroups.al: New file. * modules/cleanbody.al: New file. * Gateway.pm: [Revision 0.35] *Extensive* modifications. All of the hard and tedious work is now being done for us by Andrew Gierth's News::Article and associated modules, so we don't have to do it any more. In particular, all of the posting code has been ripped out, as well as all of the article reading and munging code. The hook structure has been reworked and rethought a little, and _mesg message mangling hooks are now installed for all modules with defined interfaces. We use the mail_error() method everywhere to report fatal errors. We no longer attempt to declare all of our modules in the constructor; instead, the constructor takes the address of the maintainer and the envelope address for auto-replies instead, and we have to call the modules() method to initialize modules. parse_line() has been fixed up a little to make backslashing more general, and read_config() now supports continuation lines and being passed file handles rather than filenames. (So one can do read_config (\*DATA), which is useful.) post() no longer implicitly runs the article munging hooks; instead, a separate method that has to be called directly (parse_message()) does that. Tue Aug 19 03:55:26 1997 Russ Allbery * modules/mailtonews.al: Disallow message IDs with a trailing period. Mon Aug 18 21:57:40 1997 Russ Allbery * modules/mailtonews.al: Changed to do a variety of standard article munging necessary for turning a mail message into a news post, and untabified. We no longer take a configuration file directive, just an argument when the module is loaded specifying the default newsgroup for articles. * modules/whitelist.al: Tweaked the way we get the address slightly to allow for the cases where there was no comment. * Gateway.pm: [Revision 0.34] Cleaned up the RCS version handling, cleaned up the AUTOLOAD routine, documented the operation of the constructor some more, untabified the entire source. This is a checkpoint version prior to the complete rewrite to use Andrew's News::Article and associated modules. Fri May 23 10:25:19 1997 Russ Allbery * Makefile.PL: New file. * modules/whitelist.al: New file. * modules/mailtonews.al: New file. * modules/keywords.al: New file. * modules/headers.al: New file. * Gateway.pm: [Revision 0.33] Rewritten from scratch as a module rather than a script, major core functionality factored out into modules, rewritten for modern Perl and better programming habits, and generally massively improved. Sat Feb 15 09:26:38 1997 Russ Allbery * gateway.in: [Revision 0.32] Completely rewritten using my current Perl programming style and using modules better, fixed a lot of the documentation, cleaned up and made various parts of the code a *lot* shorter, uses a global configuration information hash rather than a bunch of global variables. Note that this version was part of a rewrite which was later abandoned, so it in and of itself is probably not entirely functional. This is the last stand-alone script version of gateway before the rewrite as a module. Sun Jun 2 14:50:33 1996 Russ Allbery * gateway.in: [Revision 0.31] Added nntpserver configuration file directive. * gateway.in: [Revision 0.30] Added support for sending autoreplies. So far, you can only list one autoreply per group and wildcards aren't supported yet; all that's likely to eventually change. Fri May 10 20:55:31 1996 Russ Allbery * gateway.in: [Revision 0.29] Added the ability to use wildcards in a group directive. Crossposting is still done correctly, but $d cannot be used since there is no way of mapping hyphens to periods correctly. Sun Apr 28 11:45:45 1996 Russ Allbery * gateway.in: [Revision 0.28] When pulling the message ID out of the In-Reply-To: header and appending it to References:, we need to make sure there's a space between it and the previous contents of References:. Sat Apr 27 22:26:45 1996 Russ Allbery * gateway.in: [Revision 0.27] Added support for the standard "convert all .s to -s for the gateway address" convention for posting gateways (dumb convention). * gateway.in: [Revision 0.26] Added support for reading in valid newsgroups from a file given in a group configuration directive and adding all newsgroups matching a mask. Changed return of -v to use the current program name and not put v before the version number. Improved From: line parsing to allow for more weird cases, and improved To: and Cc: parsing to correctly deal with comments and local addresses. Should now return the correct error code if the news server is throttled. Mon Apr 22 05:18:49 1996 Russ Allbery * gateway.in: [Revision 0.25] Added an empty keyword to the header conf lines to allow specification in the case of an empty header. We also now grab the message id from elm-style In-Reply-To lines and add it to References to make threading work better. Fri Apr 19 05:21:06 1996 Russ Allbery * gateway.in: [Revision 0.24] Changed the posting method so that it writes the post to a temporary file and then pipes that file into inews so that we can capture the output of inews. Reads the output of inews and returns TEMPFAIL for any error messages related to inability to contact the server (chances are, we'll need to modify this later to deal with throttled servers). Added a -d flag to get the old posting behavior if wanted. Wrote a generic &error routine using the error codes from the sendmail source and changed all exit calls to use that routine. Rewrote the fix_headers routine to make it clearer. Thu Apr 18 11:24:26 1996 Russ Allbery * gateway.in: [Revision 0.23] Support for header rewriting made considerably more generic, special cases for header capitalization added, Sender removed from header drops and X-UIDL added, messageid and organization configuration lines removed since they've been superseded by the new generic header support. Thu Apr 4 20:42:09 1996 Russ Allbery * gateway.in: [Revision 0.22] Better handling of configuration file parsing errors added, better handling of fallback for cases where -s isn't used. * gateway.in: [Revision 0.21] path directive for adding directories to the PATH changed to inewspath, new path directive added to set the end of the Path: header on the posted article. * gateway.in: [Revision 0.20] Added support for a messageid directive, allowing renaming of Message-ID to X-Message-ID or just dropping the incoming one and creating a new one. * gateway.in: [Revision 0.19] Better configuration file parsing (allow space before directives, give error messages for invalid directives including line numbers), allow the organization line to be missing in which case organization is passed, study for header matching removed due to bug in Perl 5.002, $pattern processing modified to allow quoting of metacharacters. Wed Apr 3 21:51:38 1996 Russ Allbery * gateway.in: [Revision 0.18] Added -f option to change configuration file, added magic emacs marker to make sure we edit gateway.in in Perl mode, rewrote some of the usage explanation. * gateway.in: [Revision 0.17] Modified to be gateway.in, so that configuration-time options can be handled with sed in the Makefile (or eventually maybe a configure script). * gateway: [Revision 0.16] sender configuration option and header support removed (dumb idea anyway, since inews just does that itself). Extensive comments added. Tue Apr 2 23:48:45 1996 Russ Allbery * gateway: [Revision 0.15] Added Control: to the list of ignored headers. Posting gateways should not be used to post control messages. Also added Newsgroups. * gateway: [Revision 0.14] Added automatic qualification of an unqualified sender line. * gateway: [Revision 0.13] Moved organization and pattern into configuration file, support for different patterns added, made sure more matches against configuration file directives were case-insensitive. * gateway: [Revision 0.12] Increased configuration file support, adding host, sender, and path entries. Still need to move pattern and organization off to the config file. Also made sure matches were being made on a case-insensitive basis. * gateway: [Revision 0.11] Added configuration file to list valid newsgroups, fixed bug in recognizing crossposts and exiting correctly. Mon Apr 1 23:15:24 1996 Russ Allbery * gateway: [Revision 0.10] Added support for standard sendmail error exit codes, removed -c option, changed -s to mean "spam" and analyze the from line by default, changed the way repeated headers are handled, reformatted site options section. Wed Feb 28 13:33:20 1996 Russ Allbery * gateway: [Revision 0.9] Fixed major, obvious bug in recognition of address@host (name) type From: lines. Mon Feb 26 07:38:18 1996 Russ Allbery * gateway: [Revision 0.8] Added explicit PATH addition to handle inews in /usr/pubsw/bin. Fri Feb 2 22:07:53 1996 Russ Allbery * gateway: [Revision 0.7] Handling of additional Cc's fixed. * gateway: [Revision 0.6] Continuation line support fixed. * gateway: [Revision 0.5] Support for Bcc: posting added. * gateway: [Revision 0.4] $sender moved up as one of the site customizable variables (sendmail runs programs as bin?? WTF??). * gateway: [Revision 0.3] Pattern for mailing addresses built into the program, bug with detecting unqualified From: addresses fixed. * gateway: [Revision 0.2] Bug fixes with slave status, Sender line added. * gateway: Initial revision.