Notes & Updates to GIGO                    Upgrading from 0806?
Jason Fesler, 1:203/7707                   You only need to read
jfesler@wmeonlin.sacbbx.com                the first 2 pages of this!

    *   WARNING   *

    GIGO is still considered to be in "beta" status.
    To report bugs, see the file REPORT.BUG , or else
    I will ignore you.

* PLANS - in the order of priority
   o Email via bag file support
     (Bag files will be identified by the first line - #! rmail or #! rnews)
     (should make TCP/IP adaptions a bit easier for some)
   o Implementation of the MSGID.DOC specifications
     (will implement after Martin, the author of MSGID.DOC, does)
   o GIGO.DOC and GIGO 1.00

November 6, 1994
    o  The expiration date on this version has been extended to 6 months.
       Normally, I give unregistered folks 2 months from the time I
       compile GIGO.  On this version, I am going to make it 6 months,
       as I am fairly happy with this version so far.   AFAIAC,
       permission to hatch via Fernwood is granted for the OS/2 version, and
       SC_UUCP for both versions.
    o  I have looked at a __LOT__ of bugs!  I would still have to say, that
       75% of those "bugs" were due to configuration errors, though.
       A lot of my time was consumed with debugging config files and reporting
       back what was wrong with those configs.
    o  Forwarding now appears "From:" the original "from:" line, instead
       of mailer-daemon.  However, all other functionallity is left
       the same.  It still makes it well known that it was forwarded.
    o  Fixed some more erroneous "root:" circumstances, particularly
       when not using internet-style addresses, but instead UUCP style.
    o  USER .. SAVETEXT and  .. LOGTEXT will no longer be subject
       to the mailer-daemon checking, either.  Since they do not generate replies,
       it is not neccesary for GIGO to check.  This will allow for some
       people's ftpmail-daemon requests to work. ;-)
    o  Mailing lists hosted elsewhere are no longer checked to see if
       they are subject to the "safe" rule:  if list-mailer@somewhere
       posts, it will no longer be considered a bad mailer message.
    o  If you define "-owner" or "-err" or "-error" user statements,
       and a mailer daemon bounces a message to that address,
       GIGO will al[low it to be mapped to that user.  Previously,
       GIGO was preventing any automated handling of error messages,
       by renaming them to root:....
    o  "fileserv" and "ftpmail" can now be replaced with USER fileserv FUNCTION
       and USER ftpmail FUNCTION statements.  If you don't like mine, you are now
       welcome to use your own, and still be able to retain the same name.
    o  Bug parsing #signature# lines when there was nobody listed after #signature#
       (null pointer assignment, nothing major.. :-).
    o  fidonet processing: occasional bugs processing kludge lines, when immediately
       followed by carriage return and a space or tab, fixed.  (GIGO was treating
       them like rfc headers, which are continued when there is a space or tab
       on the next line).  The memory trashing occured trying to locate the MSGID
       and copying an entire large paragraph instead.
    o  listserv will no longer respond to other listserv messages
    o  fileserv's "index" should now properly subsitute "get files"
    o  Several minor bugs investigated, etc.


Sept 4, 1994  

    It was bound to have problems by having the first os/2 release..

    o Fixed bug with gigo "looping" when a ctrl-z is in their mess.
      <marc@mooo...>
    o Could not reproduce lockup with current alpha vsn for <bernd@tuzub..>
    o Mailing list bug:  Fixed generation of Reply-To:  <jfesler@...>
    o Null pointer fixed when reading partial addresses from kludge
      lines (multiple people; may have been bernd's problem>
    o Signatures option, when disabled, works properly now
      (no longer inserting fileserv help instructions as a sig)
    o BLOCKADDR stuff was rumored to bounce blocked mail, but
      was still getting through.  It might have been related to
      another bug - not sure - but I can not reproduce it as of 8/29/94
    o ORIGINADDRESS and FSC-35, when both are used at the same time,
      will place the ORIGINADDRESS into the FSC-35 header, at the
      bequest of %joho% ...
    o Some incoming mail, when the line was in the format
      mysite!user from the host in the .XQT file, was incorrectly
      parsed.  Completely rewrote address parser, fixed.
      Address parser is slightly faster, and now handles:

          user@site   \
          user%site    |  All the same
          site!user   /

          user@somewhere.site \
          user%somewhere@site  |  Also, all the same
          site!somewhere!user /

      If any other syntax comes in, it will not be translated at all.
      If you notice such addresses, let me know, so that I may
      investigate them.  I can only imagine
             user@somewhere!bang
      which makes absolutely no sense, and is truely ambiguous.

    o COMPILE (dos + os2) slightly updated for minor bugs
      nlookup still is DOS only (damn, can't find source, gotta
      make it again.. :-(  ).  However, nlookup should still work
      in a DOS window, and produce consistant results no matter
      which version compiled the nodelist.

    o There are bound to still be problems.  Please, report them,
      as per the the instructions.  I've hopefully fixed all of the
      reported bugs.   Please :-)  turn these in, so that I can
      prepare for an actual 1.00 version.  [Assuming that I can
      get some kind of DOCS made..]

 ----------------------------------------------------------------
August 4, 1994

o           OS/2 text-mode version made; will run as a window or as a
            full-screen application.  Fullscreen is definately faster.
            The OS/2 stuff will be in a seperate archive, with
            OS/2 2.x binaries for the utilities (except for MAILSCAN).

* IMPORTANT:   The message in GATEWAY.MSG for bouncing messages
            has been changed!  Be sure to look at the new one, and
            adapt as neccesary.    (#bounceuucp:site# and #bounceuucp:user#
            added; more flexability on error messages given)

            Self-check to make sure that all gateway messages are available
            is now done.  Some problems were caused by assuming that all
            of the messages were there, but where not.  Now, especially with
            the change on the bounceuucp:site and bounceuucp:user messages,
            I want to make _sure_ everyone's files are properly updated.

            KEEPUNKNOWN has been expanded!

              KEEPUNKNOWNSITES  keeps mail to bad site names,
              and leaves them in your netmail folder for your examination
IMPORTANT!
****-->       KEEPUNKNOWNUSERS  keeps mail to users not specifically
              defined.  Without this keyword, mail to undefined USER's
              on _your_ system will be bounced automaticly.
              [HINT:  IF YOU DO NOT DEFINE EACH AND EVERY USER,
               YOU WILL WANT TO USE THE KEEPUNKNOWN OPTION!]

            Outgoing news files should now be compressed when sent from
            a mailing list that you host.

GZIP!       GZIP and COMPRESS have both been recompiled, for both
            OS2 and for DOS.  You may now use either one for the
            compression and decompression of news; check with your
            host before using gzip.  See the sample configs for
            details, as well as the notes in the GZIP and COMPRESS
            directories.

            Hopefully..  8BIT works properly now.
            TRANSLATE should work properly now, with or without quotes.

            Fidonet date fields fixed.  Now properly showing the local
            time/date on all messages, relative to YOUR site.

            Config prescanner fixed: BLOCKADDR, FASTRETURN both fixed.

            NOVIDEO broke when I put in the ESC handler.  Fixed.
            If NOVIDEO is specified, and you hit the ESC key, video
            will be turned on temporarily, long enough to make sure
            you want to quit GIGO.


            LISTSERV and FIXMAP correctly quit when a signature is found.
            FILESERV correctly quits when a signature is found.
            (Signatures are defined as two or more dashes at the
             beginning of the line, ie -- or --- or -------------------)

            Signatures should be a bit more reliable when specifying multiple
            addresses to the same signature block.

            *whoname is now a valid token in the gateway.msg file - it
            is just like *whofrom, except it's the name only.

            Various null-pointer assignments, leading to Exception 13
            errors under some operating environments, fixed.  Hopefully,
            all of them..

            Fileserv wildcarding enhanced:  The okfiles listing will
            now allow for partial wildcards; ie, if you specify
            that c:\dirname\file*.* is searchable, it will only check
            those particular files.

            More work on detecting outside mailer daemons.  Now, only
            the username field is checked - addresses like peter@somewhere.daemon.co.uk
            will not trigger the daemon filter.  Daemons are now defined
            as usernames of "uucp" or "bounce", or as usernames containing
            "daemon", "demon", "mailer", or as usernames that are completely
            empty (ie, From:  @some.site ; potentionally sent from sendmail
            8.6.*)

            If the Date: field is missing (or in the msg body instead of the
            header), GIGO will use Jan 01 1981  00:00:00 for the time/date,
            instead of having a page fault / exception 13.

            On bounced messages:  msgs will be returned back to the addresses
            found in this priority:
               Errors-To:
               Resent-Sender:
               Resent-From:
               Sender:
               From:
               [or, if all else fails, the envelope info in the xqt files]

            PATH  - Adds a PATH kludge line to echomail messages produced
            by the gateway.  Specify the gateway's net/node number
            (just like seen-by).   Added for WildCat compatibility
            with their new mail processor (sigh).

-------------------------------------------------------------------------

[05-24-94]  Lots of new little things !!

            In fido messages bounced back to fido users, it now
            comes from "mailer-daemon" instead of "mail-daemon",
            to match the rest of the mailer-daemons in the program.

            RMAIL_KEEP_ALL expanded - new keywords ..
               "RMAIL_KEEP_ALL"      (or  "Keep Mail")
               "RMAIL_HIDE_ALL"      (or  "Hide Mail")
               "RNEWS_KEEP_ALL"      (or  "Keep News")
               "RNEWS_HIDE_ALL"      (or  "hide News")
            These will change the default status of message headers
            on usenet->fidonet format translation.  You may default
            news or mail headers to always be show, or to always be
            hidden.

            SPLIT kludge line conforms to the "standard" one.

            You can now cleanly abort the processing of your mail.
            Hit [ESC] when processing mail; a small pop-up will appear,
            asking you to hit "Y" to confirm it.   It may take a moment
            for this window to pop up, as it is only checked _between
            files_.  This method will cleanly and safely shut GIGO down,
            and properly close any files etc that may be open.
            >>Ctrl-Break is still allowed, but is NOT a clean exit!
            >>I could not cleanly trap the Ctrl-Break key, so use ESC!!!


            New keyword:  TRANSLATE_CONTROL .. Creates kludgelines
            for Squish 1.10 to automaticly cancel messages.  Whenever
            a message comes in a newsgroup with the "Control: cancel .."
            header, GIGO will translate it to ^aACUPDATE: DELETE ...".
            (See the new Squish 1.10 documentation on ACUPDATE kludges)

            Otherwise..  if you define "DELETE_CONTROL", all messages
            with the Control: header defined, are arbitrarilly nuked.
            Caio!


            Message headers were only importing the first line from
            multiline headers.  Fixed.  (Not sure if gigo0405 had this
            problem, but the ginnypig versions _did_)

            When importing origin lines into the organization line,
            the node address gets stripped.

            Worked some on incoming dates

            the Allow: keyword works now  (config reader error)

            MAPSITEUNDEF - similiar to MAPSITELOCAL and MAPSTYLESITE.
            This allows a template (ie, *user@*fnz.fidonet.org)
            when writing newsgroups, or bouncing messages, from people
            who are not otherwise authorized to use the gateway.
            This option has been added for people who are not using
            GIGO in fidonet environments; the .fidonet.org that was
            the default was inappropriate for them.

            TRANSLATE - There is now a translation table for fidonet->
            internet 8 bit messages.  You can change how the characters
            get translated.

            MSGID and Message-ID stuff worked on, trying to remove
            an incompatability with Squish 1.10's dupe checker.
            Also trying to get messages from internet->fidonet->internet
            to re-use the original Message-ID: field, so that dupe checkers
            on the net will catch it (Apparently, at least one country
            has a problem with dupe loops between the gates  and the net).

            MSGID's when using the NIKE option are now "midxxxxxxxxxxxxx"
            instead of "<xxxxxxxxxxxxxx>" .. The brackets were causing
            the new Squish 1.10 to think everything was a dupe.  Great, eh?

            Fixed a ginnypig version problem of when the mapping.cfg
            contained "+ alt.*" and a user posted in "alt.fubar" ...
            the messages were being posted as "alt.*" instead of "alt.fubar".

            For people who need the XQT files to say that they are
            from "uucp" instead of from the actual user,
            you can specify "XQT_FROM_UUCP" (mainly for david nugent)

            Direct support for hosting mailing lists without the use
            of a message base, using standard ASCII files as the
            temporary medium.  See MAILLIST.CFG for details.
            I plan on adding Digest Message support as an external
            program in the near future.

            Email -> News converter:  Write email to a site on your
            gateway, and have it posted as news!  (Used by mailing
            list functions in MAILLIST.CFG)

            Email -> Echomail converter:  Write email to a site on
            your gateway, and have it posted as echomail!  (Used by
            mailing list functions in MAILLIST.CFG)

            Statistics freaks:  LOGTRAFFIC  TRAFFIC.LOG will create
            a TRAFFIC.LOG containing information about all incoming
            and outgoing email.  You can analyze this log file
            to produce billing if desired.  [A statistics program
            is not currently available.  Any bright programmers
            out there that like ASCII files?]

            Some lines that you told to HIDE or KILL would show up
            anyways if they take up more than one line in the original
            config file.  Fixed.

            Worked a bit on MSGID generation.  Trying to out-maneuver
            dupe detectors that use MSGID.

            REPLY kludge lines created by the gateway (for threading
            with DOS bbs packages) were not consistant with the MSGID's
            that were created.  Fixed.

            Added code to handle name-munging performed by UUCICO
 munging:   when the file name being transfered does not match
            the host names involved.   Experimental; this one
            was hacked with trial & error, since it is not documented
            very well in the Waffle docs, and the 1.63 sources don't
            provide any clues, either.  I _think_ this will solve cases
            where the filename and the hostname do not match.

            If GIGO can not find your files, try using "ALTMUNGING"
            in your configuration files.


            Messages with just a tearline and origin (no message body)
            were causing portions of memory to be overwritten when
            the signature code added in the user's signature.  Fixed.

            Old syntax of the MAP command revived, as well as a new syntax.
              MAP + alt.*         ; Just like + alt.* in mapping.cfg file
              + alt.*             ; just like + alt.* in mapping.cfg file
              MAP MAPPING.CFG     ; "includes" mapping.cfg file
              INCLUDE MAPPING.CFG ; "includes" mapping.cfg file


[04-05-94]  Whew!

            Baby girl "Branwyn Ruth Fesler" born 02-14-94 - On Valentines day!

[configuration]

            Support for a new keyword ("INCLUDE").  You can now INCLUDE
            external parts into your config file. Logical uses would be if
            you need to run more than one config file; you can make the
            common parts of the config in a single file for easy editing.

            Config file reading revamped; now a slower method is used
            in order to not allocate the memory until we know exactly
            how many we need.  Comments etc no longer affect the memory
            usage (even temporarily).  However, the more INCLUDE statements
            you use, the longer it is liable to take.

[mapping configuration]

            If you are upgrading, the usage of the MAP statement has CHANGED!

            (old)  MAP MAPPING.CFG
            (new)  INCLUDE MAPPING.CFG

            You can now make seperate mapping files, and INCLUDE them, or
            you can directly import your mapping straight into the config
            file to make it one big messy config file from hell.   Either
            way..

            You can include mapping statements directly into your regular
            config file now.

                MAP + news.answers   (in your config file)

an              INCLUDE MAPPING.CFG  (in your config file)
                + news.answers       (in your mapping.cfg)

            are identical in function.



[time related]

            Support for time zones in New Zealand (I think) is correctly
            working.  They are 30 minutes out of synch with the rest of the
            world.  [I _think_ this works correctly; I'm sure that P.Thornton
            will let me know..]

[headers, and integration of FTN and Usenet technologies]

            Message-ID's and References can now be (semi) transparently
            gated, by making some non-standard ^aMSGID lines in the fidonet
            messages.  Look for "KEEP_THREADS" in the gateway.cfg
            file.  By default, this is disabled.

            Multi-line headers are now correctly read [ie, From: lines that
            span two lines, etc].  This fixes the activity of some bouncing,
            etc where the address itself was not on the first From: line.

[messages]

**          Bounce messages, etc are now sysop-definable - look in
            the file called GATEWAY.MSG for all of the default messages,
            and to see how to change any of those messages to those of your
            choice.

            changed "mail-daemon" to "mailer-daemon", in another effort
            at keeping the mailer-daemons daemon aware amongts themselves
            on the internet.

            USER ... INFO ...   commands will no longer say they are
            from the mailer-daemon, but instead from the user.


[signatures]

            SIGNATURES!  [go away..]    Look at bottom of GATEWAY.MSG
            to see a sample of how signatures look.

[ml - mailing list and netmail packing related]

            ML.EXE now supports:
                 Squish
                 *.MSG
                 Jam
                 Hudson
            NOTE * THE CONFIG FILE _DID_ CHANGE SOME!  READ THE ML.DOC
            FILE FOR THE FORMAT OF THE NEW ML.CFG FILE!

[addressing inbound+outbound]

            GIGO will now properly handled quoted addresses for incoming
            and outgoing email (ie, "Joe Blow"@some.wierd.site).  GIGO
            will not generate quoted addresses, but it will understand them.

            Now Valid:
             to: joe.blow@some.unix.system
             to: "Joe Blow"@some.vms.system
             to: joe.blow@some.site.org (Some User Name Here)
             to: Some User Name <joe.blow@some.site.org>

            Note, that if a Some User Name is specified, it is _STRIPED_
            at the gateway.  I don't have the time to complete rewrite the
            gateway interpreter; this will work, though, for getting the
            mail _out_ to the recipient.

            Even though quoted addresses are legal, PLEASE, do NOT encourage
            their use.  I can not guarantee that all of the sites on the
            internet can deliver it properly, nor other gateways, etc.
            It should only be used if and only of the other end is using it,
            for _their_ address.

            When making "To:" or "Cc:" lines in your fidonet message,
            only use one address per line.  This was neccesary to safely
            handle the quoted names, etc.

            Mailing list conversion was still case sensitive.  Neutered.


[packet files  inbound/outbound]

            cmsg cancel messages can now be ignored
            by specifying  "cmsg_cancel" in your config

            "Short Date" fields in .PKT files from ancient mal-formed
            fidonet software have been neutered.  The combination of a
            few mail tossers with ancient software [Opus being prime
            example] were creating the short packets.

            Trailing garbage on outgoing mail fixed.  Happened mostly
            on messages that had both carriage returns and line feeds.
            [Ie, GoldEd]

[misc]      stack size increased from 40k to 50k

            Compiled with newer version of the compiler; they claim that
            the startup code is cleaner and faster now.  I don't believe
            them, but ..



[02-09-94]  ML recompiled to handle over 256 messages.  Now handles 2048
            *.MSG messages or 5000 squish messages.

            ORIGINADDRESS - you may now have the Origin: line state
            a different fidonet address other than your gateway.
            Ie, if your gateway is 1:203/7707.999, and your main
            address is 1:203/7707.0, you can state ORIGINADDRESS 1:203/7707,
            and origin lines will use that address instead of your point
            address.  (This was added against my better judgement.  Speed
            wise, nothing should be affected.)..

            Fixed .f.n.z... parsing (after I made GIGO case insensitive)

            BURT_JUDA_HACK had a bug on the From and Received: lines

            Added switch:  NOVIDEO (or /NOVIDEO on command line).
            Turns off all video after the configs initialize.
            I mean _all_ video.  Really.  Every bit of it.
            I considered making it switchable, depending on the job that
            was being processed, but there is not enough of a speed increase
            to justify that much work.  Instead, I modified the actual
            video routines, to globally turn them on and off.  I was able
            to see a 20% speed increase this way.   Note that video is turned
            off _AFTER_ GIGO has initialized, so that if there are any
            errors in the config, you'll see them.

            BLOCKADDRESS now understands two forms:
             BLOCKADDRESS + *LISTSERV*     will block all listserv processors
             BLOCKADDRESS - *@wmeonlin.*   except mine.. :-)
            If you don't specify + or - , it will assume +

            USER bounce 1:2/3.4   USER NAME     should now work as expected.
            USER bounce *:*/*.*   USER NAME     should also work.

            Kludge lines in the middle of messages should no longer
            truncate messages prematurely.  Thanks to JOHO who places
            *&@#! kludge lines in the _middle_ of forwarded messages..

            Whoops.  Forgot to take the 64k limit out of the mapping
            section, a limit from the ancient 8088'able version. :-)
            Same goes for the config section.

            Provisions made for when there IS no map file

            Map file + lines now honor moderated newsgroups (only = did before)
            Map file = lines had a problem when only the newsgroup
               name was mentioned and the fidonet echo name was not. fixed

            GIGO has stopped being case-sensitive (I hope).  GIGO will
            _always_ make everything lowercase before doing any kind of
            comparisons; when generating outbound mail, it will preserve
            the case that you specify in the config files.

            Messages from any address with "daemon" or "bounce" in it
            are automaticly rerouted to the admin if they were
            headed towards any automated address; the fidonet TO field
            will contain "root:" followed by the address that was
            being sent to.
               Affects:
                   mailing lists
                   fileserv/ftpmail
                   external functions

            The return address for external functions will always be
            the same as the address originally emailed to (ie,
            mail sent to listserv@wmeonlin.sacbbx.com will be answered
            by the same address).

            The return address for fileserv has changed from fileserv-sender
            to fileserv, so that people may directly reply to the fileserv
            mechanisms.  Bounced messages, etc, will be handled by
            provisions mentioned above.

            PARTIAL-35, similiar to FSC-35.
            Tells the gateway to only use FSC-35 when the return
            address is different from the fidonet header, ie when the
            address is too long to fit or when real names are used.
            Using it will slow down your gate with yet another string
            copy and comparison, but some people want it.

            If the nodelist index is empty, nodelist checking disables
            itself, instead of bouncing everybody.

            Grunged messages _were_ looping.  Not any more.  It will no
            longer get hung up on them.

            COMPILE.EXE modified to allow for blank lines that don't have
            a semicolon at the front.  [Groglist.017 has this problem.]

            CASE_INSENSITIVE no longer needed.  Too many people are getting
            mail from their host with the improper case.  I'll just make GIGO
            not be case-sensitive.  You can now get rid of multiple copies
            of the same SITE or USER command if the only difference is the
            case.  When _generating_ addresses, the first matching address will
            be honored; when _receiving_ addresses, case will not matter.

[01-14-94]  Netmail request a receipt (either kind allowed in netmail)
            will illicit a response from the gateway, acknoweledging
            the gateway itself got it.  In addition,p "Return-Receipt-To:"
            now gets added to the message headers.  Not many sites support it,
            but I've heard that sendmail does.

            (I love standards, so MANY to choose from!)

File Attaches!

            This is bound to open a rather large bag of worms, but ..

            To set up GIGO to allow file attaches, you will need to do
            the following steps:

          -Add to your config:
            FILESERV-ATTACH                ; enables attachments
            FILESERV-INBOUND  c:\fd\files\ ; Your fidonet inbound directory
            FILESERV-HOLD     c:\fd\hold\  ; Where to move files that the
                                           ; gateway wants to send out
                                           ; (facilitates YOUR cleaning things
                                           ; up, by keeping things together)
                                           ; DON'T FORGET TRAILING BACKSLASHES


            You will _also_ need to enable FILESERV services for your gateway.


            When GIGO sees a message with the file attach attribute on it,
            GIGO will attempt to move the file from the inbound to the hold
            directory.  It is up to you what to do with the files in the HOLD
            directory after GIGO is done; you can keep them, delete them,
            save them for a week, whatever.

            Once GIGO has decided what files are being sent, GIGO will
            generate a .REQ file in your spool directory - the same type of
            file that gets generated whenever GIGO gets a ftpmail request.

            The recipient will receive a status message, followed by the
            files, from the account "ftpmail-sender".  The status message
            will state who triggered the send, as well as instructions for
            decoding the file.

            Enabling this option in GIGO is going to be opening yourself up
            to a can of worms - potential problems you may experience are
            listed below.  You will have to decide if you want to allow
            it (most gateways don't).

              Potentional Problems         Solution

              - "HOLD" directory fills up  Make an event to clean it out
                                           once a day, or after each run.
              - Users may send to a        None.   :-(
                fidonet address
              - If you pay metered rates   None.   :-(
                for UUCP connections,
                things can get expensive.

            Note that you, the administrator, will need to take special note
            that you can ONLY file attach things that are in a requestable
            directory on your hard drive.  The file-attach mechanism WILL
            strip any directory names etc from the filename.  The only way
            to bypass this is to not use file attaches, but to insteasd
            generate .REQ files manually.  See the 01-06-94 notes.



            Account name expansion is now double checked, and reran, if not
            completely expanded.  SITE GATEWAY x:x/x statements were not
            expanding correctly, and neither were SITE *FTN or SITE *FNZ
            statements.  They would subsitute user.name@*ftn.mysite.domain,
            instead of expanding the *ftn part.

            Crude checking on SITE statements now being done.  Not perfect,
            but should catch some of the errors.  GIGO will tell you which
            line it knows it's going to have problems on.

            Same as above for USER statements.


[01-13-94]  BLOCKADDDRESS  *listserv*
            BLOCKADDRESS   *fileserv*
            BLOCKADDRESS   *ftpmail*
            BLOCKADDRESS   *BITFTP*

            The above will block most attempts (not all) for users to
            receive massive amounts of mail that you might be paying
            long distance for.  You may actually specify any address
            pattern you want; wildcards are accepted for this parameter.

            You can extend this to BLOCKADDRESS *.z[123456].fidonet.org,
            to stop people from being able to email to their fidonet
            address equivalent.  (By defualt, GIGO turns such requests
            back to netmail, and never sends them out to the internet
            in the first place.  This is just one step further.)

            Note that BLOCKADDRESS _can_ be easy to fool, by the user
            rearranging the address.  I suggest keeping the rules simple,
            using wildcards (like the above examples).

         o  The BURT_JUDA_HACK option.  This option is probably going to
            be useless under most circumstances.  Anyone that can use it
            without pissing off their host, cool.  What it does is
            change the top line of outgoing email from
            "From site!user date+time remote from site" to
            "From user@site date+time".  This is apparently needed for
            (at least)Burt Juda's SMTP mailer or scripts.  If it works for
            you, cool.  If you break something by using this option, may your
            host suspend you by your genitals. =O You've been warned.

                                :-)


         o  Mapping file:
            ! newsgroup.name SAVETEXT dirname\
            ! newsgroup.name SAVETEXT dirname\  FIDONETNAME
            ! newsgroup.name LOGTEXT filename.log
            ! newsgroup.name LOGTEXT filename.log FIDONETNAME

            You can capture a specific newsgroup, and save that newsgroup
            to individual files (*.IN files in the directory specified) or
            to a single file.  This is for external processing.  You may
            also specify the fidonet echoname to save it as (one way,
            to fidonet only).  If you need both directions, you'll need to
            _also_ make a = nesgroupname FIDONETNAME   _after_  these
            lines.

            Usefulness?  Some people want to trap and convert the
            *.binaries.* groups, and some want to trap areas like
            news.answers.   I personally keep updated copies of all of the
            .FAQ's posted to news.answers, and have a batch file set up
            that takes the new ones, grabs the "Archive-Name:" out of it,
            and puts it in the file directory for me.


[01-11-94]  Made a modification to the COMPRESS program to speed up
            performance...  Instead of copying to temp files
            we let the compress program worry about creating or eliminating
            the "#! cunbatch" line.   This cuts _my_ time down significantly,
            as there are is 8-10 megs less copying back and forth on my
            system a day..

            Note:  You may run with (1) of the following setups..

 [old compress]   COMPRESS compress.exe
                  DECOMPRESS compress.exe -d
                  ; FASTCOMPRESS  is commented, as this is the old program

 [new compress]   COMPRESS compress.exe -m
                  DECOMPRESS compress.exe -d
                  FASTCOMPRESS; make sure you have COMPRESS -m


 [old gzip]       COMPRESS gzip.exe ; only use gzip if your host will take it
                  DECOMPRESS gzip.exe -d
                  ; FASTCOMPRESS  is commented, as gzip doesn't support it

  [no new gzip yet]

      o   other minor bugs fixed, can't remember them off hand.


[01-06-94]  IMPORTANT!!!!!!!!!!!!!!!!!!!!!!

        NOTE BOTH CHANGES TO FTPMAIL AND MAPSTYLE HAVE BEEN MADE.
        IF YOU DO NOT UPDATE YOUR CONFIGS, THINGS ___WILL___ BREAK.
  ŚÄ
  ³ .   MAPSTYLE usage has changed, and is now definable for any
  ³     situtation you have.  You specify the way you want it to look.
  ³     Even the strange addresses that are needed by Gary Rux are
  ³     acheivable.  (Hiya Gary! :-)
  ³
  ³     MAPSTYLE:  Obsolete.
  ³
  ³     Replaced by:
  ³       MAPSTYLELOCAL  [format string]    ; Used when SITE LOCAL is specified
  ³       MAPSTYLESITE   [format string]    ; Used when SITE sitename .. parameters are used
  ³
  ³         Format string may be a template of the address you would like
  ³         formed by the gateway.  Valid variables are:
  ³             *site     ; Used with MAPSTYLESITE; current user
  ³             *user     ; Used with any template; current site
  ³             *mysite   ; Your "mysite" variable
  ³             *domain   ; Your "domain" variable
  ³             *myfeed   ; Your "myfeed" variable
  ³
  ³       Examples for MY site:
  ³         MAPSTYLELOCAL   *user@wmeonlin.sacbbx.com
  ³         MAPSTYLESITE    *user@*site.wmeonlin.sacbbx.com
  ³
  ³      The sample config file has more details and examples.  This overhaul
  ³      on the address generator should be able to accomodate everyone.
  ³      Bugs are likely to creep up, see the top of this file for sending
  ³      me bug reports.
  ³
  ³
  ³ .   All config verbs with "FTPMAIL" as part of it's name should be
  ³     renamed to "FILESERV" (ie, FTPMAIL-LIST  should be FILESERV-LIST).
  ³     GIGO will now process files to either "fileserv" or to "ftpmail",
  ³     but will be known as "fileserv".
  ³
  ³     The reason for this is because GIGO is not doing true ftpmail, which
  ³     involves ftp'ing to a remote site, getting a file, and sending to the
  ³     user.  More than a few people actually on the internet expressed
  ³     their desire to not confuse people on this concept, and suggested
  ³     the more common standard of "fileserv".
  ³
  ³     For now, GIGO will update it's config files internally, replacing every
  ³     instance of the keyword "FTPMAIL" with "FILESERV", for backwards
  ³     compatibility.
  ³
  Ą .   worked on ASCII transfers with ftpmail again..  Word wrapping has
        been removed; it's causing problems for some people.  Most text files
        are already wrapped at 80 columns; the gateway will no longer mutilate
        anything that was formated differently.  With luck, no exception errors
        for Scott..

    .   Added ability to read CR/LF delimited files from your host
        (You must add CRLF to your config file, as this slows things down,
        so is off by default).  I have no way of confirming that this
        works; if anyone still has problems, see the top of this file
        for sending me bug reports (ie, I need SAMPLES! to fix it if it's
        broken!)

    .   Fixed the missing blank line between message body and header.

    .   ftpmail (ahem) fileserv limits are being honored now.. if you
        specify maximum values, they will be honored.

    .   fileserv:  If you manually make a .REQ file, and you specify
        filenames _with_ their drive+directory name, the files you are
        sending do not have to be in the okfiles area, and bypass all
        limits.  You can use this to manaully send something out.
        Also, if the file name (with dir names etc) starts with a
        # or ^ (binkley users will understand..)  the file will be nuked
        after transmitting.  This is useful for people using their gateways
        to tunnel fidonet mail via uucp.   Note, wildcards are NOT allowed
        when you specify the directory name etc (sorry).

         Sample  .REQ files
      ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ
      ³myfriend@somesite.com            ³ First line is where to send to
      ³; comment sent to user           ³ ; lines are sent verbatim
      ³; comment sent to user           ³
      ³gigo0103.zip                     ³ sends if found in your list of dirs
      ³e:\gateway\gigo0103.zip          ³ will send specifically this file
      ³^E:\outgoing\00001eba.mo1        ³ will send, and _then_ kill it.
      ³^E:\outgoing\tic\tk001234.tic    ³ will send, and _then_ kill it.
      ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ

          (Don't let this give you guys any bad ideas, grin!)


[01-03-94]  Happy new year, folks

    .   When a message doesn't have a message body, GIGO will now
        properly detect it, and write "message grunged / no body" in it.
        If it can't find a body because the headers were too long (geez,
        100-300k of HEADERS?!?) GIGO will simply junk the message.

    .   FTPMAIL additions..

          FTPMAIL-DEFAULT 75000 will specify that the default segment size
          for split uuencoded binary files being sent back out will be of
          75000 byte segments (which will expand to be 100k of text).  The
          requesting party may choose an alternate size if desired.  The help
          screen will reflect the default split size.

          Note that if the person requesting a file is from fidonet (ie, the
          gateway KNOWS that it will be sending it back out as netmail right
          away), ftpmail will change the default for him/her to 9990 bytes; it
          will be up to him/her to switch it as desired.  Too many mail
          processors puke on messages larger than 16k.

          FTPMAIL will now, when a user requests a name without wildcards
          or regular expressions, stop after it finds the first match.  No more
          sending out 2-3 copies of the same file..  If the user _does_ use
          wildcards, multiple sends are still possible however.
          Only exception:  "magic" names, even if they have wildcards, will
          allow multiple instances; you can use one magic name multiple times
          to indicate multiple files.


    .   MULTIPLEHEADERS tells GIGO to place the usenet headers in all of
        the fidonet messages, instead of just the first message, when it
        comes accross a usenet message that is too large for fidonet.

    .   MAXNEWSGROUPS xx tells GIGO to allow up to xx copies of the
        same message to be cross-posted.  If the message is cross-posted
        to more newsgroups than the number you specify, GIGO will publish
        only the first copies.  Default & maximum = 20.

    .   (Just a note)

        GIGO will have problems if your host is sending carriage returns
        in the mail he sends you.  I will later add the option of
        handling carriage returns in the files, but it will drasticly
        slow down GIGO's ability to read the files having to translate
        things.  It is better if you can get your feed to simply not
        send the carriage returns, as is standard.

    .   Make sure you get a new copy of COMPILE.ZIP; it contains
        a bug fix.  Especially if you have any "down" or "hold"
        systems in your area.. :-)

    .   CASE_INSENSITIVE will force Gigo to change all incomming email
        messages to all lowercase.  All outgoing addresses will also
        be forced to lowercase.

    .   BACKWARDSFEED will tell Gigo, when creating outgoing spool
        files to your host, to use the wrong site name (ie, using HIS
        site's name isntead of YOUR site name) in the file names.
        Don't use this unless you really need it, and UNDERSTAND why you
        need it.  Serious.

    .   FastReturn verb wasn't 100% perfect - when you had the key to
        disable 'Fidonet.Org' being a built-ion FastReturn, it still
        wasn't taking fidonet.org out..   Fixed.

    .   /TEST can now be specified on the command line; I've kludged
        things in a way that it inserts the TEST verb for you in the config
        memory.

    .   Allow_ lines were not being recognized, due to a bug in using the
        wrong type of search command.  Fixed.

    .   Date: lines modified slightly; they no longer show the name
        of the timezone, just the actual number.  Appears to have
        caused conflicts with C_NEWS, despite the standards.

    .   X-Mail-Agent line can be turned off for special circumstances
        only; if your host says that this line is causing network problems,
        email me, and I will give you a key to turn it off.

        In general, I am leaving this line IN.  Half the messages I see
        in the newsgroups _also_ have a similiar line; in any case,
        X-... lines are supposed to be ignored; they are like fidonet
        kludge lines.  I want to leave this line IN messages, so that if
        there are network problems, they can be directly traced back
        to GIGO if it GIGO is causing the problem (as well as vsn info);
        or, if it's not GIGO, I have claims to support it.

     .  At the request of garux@mdtn_bbs ..  a specialty option to
        allow outgoing _email_ only to be routed to different spools, based
        on where it is headed.  If you don't understand this option,
        don't use it.

        _Most_ sites don't need this, and the inclusion of
        even one of these statements will slow down _all_ outbound email,
        as it turns on the extra checking needed to figure out where to
        send things.  The routines had to make use of scanning the config
        memory every pass, and make use of regex routines (which are
        always slower processing).

            ROUTESPOOL  spoolname <sitename optional, defaults to spoolname>
        As example:

            ROUTESPOOL  citrus  citrus
            ROUTESPOOL  sacbbx  sacbbx
            ROUTESPOOL  frackit uucp      ; All .uucp feeds assumed to
                                          ; be routable via frackit

        I have _no_ plans on expanding this to news, or mailing lists.
        The mailing list processor will have no ideas what is going on;
        if you need to seperate the various newsgroups to different feeds,
        run seperate config files with seperate addresses.  It is strictly
        for email.

        I'm not even sure if this will work as expected.  Good luck..


[12-29-93]
    .   ASCII files via ftpmail were sporadic.  I rewrote it;
        it will no longer attempt to split lines (now assumes that
        your textfiles are already split, not too unreasonable for most).
        In addition, the ASCII files are NOT split across multiple messages;
        it is now left to the receiver's software to either display it
        correctly or split it to multiple messages.  I can not get
        it to properly stop at the end of a line.

        Hopefully, this won't be much of a problem, I don't know many
        people that have huge ASCII documents online; almost everyone's
        software can handle a couple hundred K without a problem.

        Good news; it will transfer back to your host a lot faster,
        since it's not in tiny peices.

        Note that binaries are still sent in split form.

    .   ML.EXE updated to look at the MSGSENT flag.

[12-28-93]
    .   Don't know why the KEEP_.. and KEEP.. statements worked at all
        for me.  Fixed them for everyone else.

    .   Newsgroups were not ensuring that the message ended with a
        line feed.  Didn't seem to affect anyone, but does look confusing
        when reading the generated output.

    .   Another USER statement..
           USER logme  LOGTEXT C:\FILES\LOGME.LOG
        Any messages set to the specified user will be saved to the log
        file specified, seperated by a line of ________ between messages.
        What this will be useful for, beats me, but what the heck, it's
        only 1k of code.

    .   New MAPPING statements..

         ! newsgroupname SAVETEXT C:\FILES\UUIN\
         ! newsgroupname LOGTEXT  C:\FILES\NEWSGRP.LOG

        Note that they start with "!" on the line; they will signify
        to GIGO that it is an extended command (so that I can add other
        commands in this way without slowing things down for any other
        newsgroup).

        You will need to specify the newsgroup name, the extended command,
        and the optional data for that command.

        Usefullness?  You can monitor a .binaries newsgroup, saving
        all of the messages to text files, so that you can have an
        intelligent uudecoder (ie, UUDO, or the one I am building now)
        go through and recreate the binary files.

[12-27-93]
    .   New USER function
           USER  uuin  SAVETEXT C:\FILES\UUIN\

        Whenever email is sent to uuin@yoursite, the message is
        saved to a textfile ( xxxxxxxx.in ) in the c:\files\uuin\
        directory.  This is for use with external processors
        such as "UUDO", a processor that recreates binary files from
        uuencoded messages.  (Freq UUDO*.* from my system)

        Note that messages made with this function are not split into
        15k segments, but are instead left in their entirety.  The
        maximum message limits made by memory limits are going to be
        the maximum message size here.

    .   With mailing list conversion, the moderator or mailing-list
        address is no longer required, and will be assumed to be "NULL"
        if it is missing.  This is for converting one-way mailing lists.

    .   Lots of little stuff, most of which I don't remember.
        Mostly bug fixes, thanks to the files that people have sent to
        me.

    .   Added option for Mark Prado; new keywords:
         RETURNADDRESS_EMAIL
         RETURNADDRESS_NEWS

        They act exactly like RETURNADDRESS does.
     => *If either of these are defined, then the original
     =>  RETURNADDRESS is going to be ignored.*

        Mark Prado's usage:
         RETURNADDRESS_EMAIL UUCP  ; To make email come from "UUCP"
         ;RETURNADDRESS_NEWS  ; Commented, so that the real name is used
                              ; in the newsgroups instead of an address etc
        My usage:
         RETURNADDRESS_EMAIL  ; Both of these will contain the person's
         RETURNADDRESS_NEWS   ; email address in the fido header, unless
                              ; the address is over 35 characters

    .   Another attempt at putting the cursor in the right place. (:-)

    .   People having problems tossing "grunged" packets should
        try this version.  Apparently, some people are getting
        8 bit data on what is supposed to be a 7 bit channel;
        that 8 bit data makes some mail processors treat the
        message as grunged.

    .   Nodelist lookup was somehow flawed.  I changed it a bit, now
        it works.  Beats me, I just program the thing..

    .   GIGO will _not_ email user@...fidonet.org addresses; now, with
        a special key, it will.  Normally it turns it back to netmail
        immediately, for political reasons.

        Also put in provisions for "FASTRETURN orgname.org", so that
        if email is sent to "user@f#.n#.z#.orgname.org", it will be
        immediately treated as netmail, instead of being sent out.

    .   On converting mailing lists, gigo was not simplifying
        the address specified in your map file; therefor,
        "user@yoursite" didn't equal "user" like it should

    .   Worked on date again; people on other side of timezone line
        were getting the fidonet header's dates incorrect.  Presumably,
        corrected.  Someone in that other side of the world will need
        to let me know :-)

[12-20-93]

    .   arg, 2 days later than expected..
    .   Extra logging to detect ftpmail failures for Gary
    .   doc'd the source for FIXMAP and LISTSERV
    .   Modified subject lines of the ftpmail requests
        for testing with a program I found (converts
        ascii uuencoded message files to binaries, pretty neat)
        I'll let everyone know how well it works, and if it can be used
        to send groups of files to other people in a more automated
        manner.  (ie, sending zone echomail via internet!)

[12-18-93]

    .   Attempting better intelligence at finding the tearline and
        origin lines, even in netmail... trying to make it differentiate
        between signatures, no signatures, tearlines, no tearlines..
        It's a messy process with netmail!

    .   "HIDE" parameters were not working.  They would have if everyone
        did the same typos I did, oh well. ;-)

    .   SPLIT caused problems when not specified.  Fixed.
        (This possibly affected .f.n.z.fidonet.org address parsing?)

    .   The mailer-daemon was picking up the null-pointer as an address
        to it's string that got bounced.  Fixed.

    .   Added the ability to generate user@f#.n#.z#.organization type
        addresses.  Default is .fidonet.org; you may now specify
        alternate settings (ie, .chigate.com,   .pronet.org,  etc)

[12-17-93]
    .   GIGO will now process ".BAG" files as though they are
        newsgroups.  These .BAG files are the files you get from
        receive-only stations such as Plannet Connect, a service that
        provides fidonet, usenet, etc.  Their usenet bundles are
        called .BAG files.

        To use this feature, specify BAGS C:\BAGS\ (or the appropriate
        directory of your choice).  You will still need to specify things
        like your spool directory, etc; this is just one of those "optional"
        extras to make life a little bit easier.


    .   GIGO now supports "function requests" that are triggered when
        emailing special USER accounts.  GIGO will dump the entire message
        to FUNCTION.REQ, and then run the designated program.

        Upon return from that program, GIGO will look for FUNCTION.REP, and
        if found, email it back to the person who triggered the response.

        Example:
           (in your .Cfg)   USER trigger FUNCTION MyFunc.Bat

           (myfunc.bat)
                echo Public files available from my site
                Dir c:\pub\*.* /s >>function.rep

        You may implement the function request mechanism for just about
        any purpose; some people have expressed an interest in setting
        up outgoing fax.  If anyone gets this working, let me know!

    .   Implemented a simple LISTSERV program to manage your mailing lists.
        Source is included.

    .   Implemented a rude & crude parser so taht your areafix program
        on the fidonet side can send the gateway it's requests.  The program
        does not have the functionallity of asking your host for the new
        areas, due to no standard being around.  However, it will update
        the map file for you.

        Some hosts require that you send your entire active entry;
        if your feed is Netcom, I have a 4dos batch file that will convert
        the map file to a AutoNews request.



[12-16-93]   Figures..
    .   Fixed a bug with the windowing that would lock things up after
        about the 3rd rmail or rnews.  The window kept moving down further
        and further (as far as the computer was concerned, anyways) until
        it locked.

    .   Removed 386 detection; hopefully, this will clear up
        the "endless loop" problem that one person had.   The banner
        now simply states "(386)".
    .   Couple of other cosmetic problems.


[12-15-93]   Finally releasing the 32 bit version

    LOGBOUNCED logfilename.ext

             Logs all bounced email to this file

    LOGFTPMAIL logfile.ext

             Logs all ftpmail requests

    Files that come to you compressed, but missing the "#! cunbatch"
    header line, will now recognized as long as their first character
    is the  character (which is used at the beginning of any .gz or
    .Z file made by their appropriate compressors).  When compressing,
    however, GIGO will _always_ make the appropriate "#! cunbatch" headers.

    Netmail messages that had ----- in them, but no tearline, were being
    truncated because the gateway inadvertantly thought it found the
    tearline.  Now, GIGO will not truncate at the tearline during netmail,
    which means that if a user _does_ have one, it will be sent out.

    This should also by the same token stop signatures from being chopped.

    MAPUF functionallity added - you can now tell the gateway that if
    someone sends a message to "sysop" at the gateway address, that the
    sysops's email address is "root@site".  Or, you can do things like
    if the message is written to "Jason Fesler", have it subsitute
    "jfesler@wmeonlin.sacbbx.com".


    Problems with not having a blank line after the header are fixed

    Zone properly placed in INTL lines now (big oops)

    Virtual memory mananger information is included
    If you are running low of extended memory etc, read the
    PROTECTED.MODE file in the archive.  It has information on
    how to enable virtaul memory (For defaults, set DOS4GVM=1).
    This will allow GIGO to use your hard disk when it comes across
    the really big messages, instead of truncating them.

    (For grins, I told my system to allow up to 4 megs - even though
    it only has enough _memory_ to hold up to half a meg - just in
    case someone sends me that massive uuencoded email message
    or something...)

    Finally hacked a way to start allocating that huge region of
    DOS memory.  As soon as I modify the startup code of the
    extender, GIGO will use the DOS area of memory if Shroom is
    found in the current directory (shroom handles the swapping).



    Spent a LOT of time on a stupid 30 byte bug that would make
    things die during usenet->fidonet conversion.  I believe this
    was a bug incurred during the actual code port to 32 bit.

    Messages that were bounced are from "mail-daemon" instead
    of "bouncer" to conform to usenet standards

    "USER infoaccount  INFO INFOFILE.TXT" in your config files
    will tell gigo that if someone emails "infoaccount@yoursystem",
    gigo's mail-daemon will send back the INFOFILE.TXT to the user.

    Common usage would be "USER info INFO status.doc" with status.doc
    containing the status of current projects, ie gigo, wme, etc.


[12-08-93] - no release; initial 32bit port done

    Wow   *   What a _big_ freak'in file!

    GIGO is now a 32-bit application, with a dos extender.
    This hatch will include the extender; it will be requestable
    seperately until version 1.00 is ready.  No sense resending that
    part over and over again.

    GIGO requires at least a 386-sx.  Sorry, but to do the fancy stuff,
    it's required.

    I need to dig up the docs, but the dos extender allows you to
    use virtual memory.  I wouldn't suggest it, because
    of the speed hit, but .. who knows, someone may need to handle a
    4 meg postscript message..  ;-)

    Speedups in the output code; since things are no longer multi-section,
    but instead one big single buffer, things will move just a
    tad faster.  I can now also remove the redundant string length
    checks.

    If you are having problems, let me know.  See the top section
    of this file for what I need.  Chances are new bugs got introduced
    when porting to 32 bit.


    Points are now recognized properly when they write netmail
    to the gateway.  Scott Parks will probably finally be happy ;-)

    Nodelist compiler added - when GIGO is processing mail, it will
    check for the compiled nodelist, and if found, will verify
    any address in the form of user@f##.n###.z###.fidonet.org, or
    in the style of user@###-###-###.yoursite.domain.  If they are not
    in the nodelist, the message is immediately bounced back to the
    sender.

    I added this ability since MsgTrack, the main netmail bouncer used
    by zone and region backbone operators, does not recognize the
    kludges from FSC-35, which state how to email someone via a gateway.
    Messages bounced by MsgTrack get bounced by GIGO and sent back to
    MsgTrack since MsgTrack improperly addressed the mail, making a loop.

    Messages from "bouncer" or "daemon" (or any of their derivitives)
    are _not_ checked for a valid address; once again, to prevent dupes
    (ie, a fake node sending email to another fake node).

//-----------------------------------------------------------------------//

[11-29-93]

    1.  Pointer wasn't initialized when checking fido->usenet names.
        Sometimes it would consider the newsgroup to be moderated.

    2.  Munging error?  Note sure why, might be a compiler bug; sometimes
        when it was told to copy the numeric part over, it would leave the
        name buffer empty instead, even when the source _wasn't_ empty.
        I've reorganized the code, and it seems to function correctly now.

    3.  Added ¨ -> linefeed translation.  ¨ is a special character in
        fidonet mail; it signifies where the BBS was word-wrapping at.
        GIGO was not translating that function, and I never saw it
        since none of my software has this behavior.

    4.  Added ability for ML to filter out bounce messages from the
        mailing lists.  See attached ML.BAD file for examples and info.
        This will stop messages that get bounced back to the mailing list
        from being re-distributed yet again.  Note, they will still be
        in the message base - just not sent out twice.

    5.  Slightly modifed mail packet creation - the U line in .XQT files
        will reflect "Errors-To:" correctly when overriden by ML or by a
        user.

    6.  RETURNADDRESS may now be followed by an optional parameter -
        who you want to have the fidonet headers to say they are from.

        You have 3 options now:

        ;RETURNADDRESS
           When the verb is ommited, the person's real name is
           placed in the fido header when possible, otherwise their
           email address is subsituted.

        RETURNADDRESS
           attempts to put the other person's email address in the
           fidonet header, allowing primitive editors to do a netmail
           reply (to the same email address at the gateway's fidonet
	   location).

           When their return address will not fit, their real name is
           subsituted.

        RETURNADDRESS UUCP (or other name, ie Gateway, internet, UFGATE,etc)
           This will place the given string in the fidonet header,
           ie always being from "UUCP".


[11-20-93]

    1.  My host can't handle RMAIL lines that are longer than about 400
        characters - in effect, breaking ML.  I am modifying ML (again)
        to now use a CCLIST klude instead of CCFILE; the CCLIST will have
        the list of recipients, up to about 250 characters.

        Current special kludge lines allowed by GIGO:
          ^aPASSWORD  password        Tells GIGO that it's secure
                                      (ie mailing list) and to open all
                                      abilities up to that message
          ^aCCFILE    filename        List of people to send to
                                      (make sure the list is short, or
                                      else your uplink may have problems)

                                      GIGO itself will not have ANY problems
                                      with the size of "filename"; if your
                                      host can handle it, feel free to use it.

          ^aCCLIST   name name name   List of people to send to
                                      (make sure the list is short, or
                                      else your uplink may have problems)

                                      GIGO's limit is 512 characters; try
                                      keeping to 256 instead though, for safety
                                      sake.  ML will create up to 256 per
                                      netmail when handling the mailing list.

      2.  People noticing a "u" at the beginning of your messages -
          let me know if this version does it.  It should be fixed now.

      3.  A bit more cleanup is done now.  (whoop-dee?)

[11-19-93]

    1   When posting in an echo that is gated to a mailing list, GIGO was
        accidently including a "Newsgroups: *" line (which as a "Newsgroups: ž"
        line before 7 bit translation).  When I made mailing list modifications,
        I forgot to tell the new routines to watch for that special character
        which meant "Mailing list, do not send as a newsgroup or moderated
	newsgroup".

    2   Some speed-ups made by the gateway going from usenet -> fidonet.
        Not likely to be a _major_ speedup, but every bit helps when you
        process multiple megs of mail a day.

    3   Newsgroups weren't putting a newline character after the
        Organization: line.  Fixed.

    4   Origin lines were sometimes 1-2 characters too long and GMD running
        at backbone sites would bitch.  Fixed.

[11-18-93]

     Changes made to ML.EXE; it is now a dual-purpose program.
     It is a combination netmail packer and mailing list manager.
     Possibly, future versions will allow for subscriptions
     and desubscriptions; right now, this is not an option.

     You CAN run ML.EXE without actually running any mailing lists;
     ML's usefulness will be strictly as a netmail packer.

     Note that there are a couple of extra options now; please,
     check these out before running the new ML program.

     ML will scan your netmail directory, and any netmail written to the
     gateway's address WILL be packed up.  In addition, it will check
     for any mail to your main address, and if it sees a "@","!", or "%"
     in the To: address, or if it was written to "UUCP" etc, it will
     assume that it should go to your gateway's address as well, and
     redirect it there.

     ML's .PKT files are not 100% FTSC compliant; I am ommiting some
     kludge line information that GIGO does not need.  However, if you try
     tossing the .PKT files instead of letting GIGO, they may/may not
     turn out as expected.

[11-17-93]
     Had to spend a lot of time on the BBS software; this is my first
     real chance back at things.

     1.  Making ML and GIGO more integrated; ML will only write one copy
         of the netmail message, with a special CCLIST line pointing
         to the file of email addresses.  GIGO will write a single
         email message, and will expect the smarthost to be able to
         handle "rmail user user user user .." lines (standard).

     2.  You can use "ORIGIN=ORGANIZATION" or "ORGANIZATION=ORIGIN"
         without specifying any actual text now.

     3.  GIGO puts it's speil in a PID kludge only for fidonet mail;
         it's too long to put on the tearline.  The tearline itself
         is now blank, to keep FTSC police happy.

         GIGO is now placing your serial number (so you can show it
         off to the world), and also your sitename, to help track
         dupes that may occur.

     4.  Received: lines (actually, these were already here, just now
         documenting them..) for outgoing email.

     5.  If you have somehow MISSED the "SITE LOCAL <your site address"
         information, SEE THE NOTES FOR 11-10-93 #6 ..

	 This will take care of MANY of your problems!

     6.  Messages that your site was not able to translate, ie because
         of a bad sitename, and you did not specify KEEP_UNKNOWN,
         were being bounced back... to the postmaster of your
         smarthost instead of to the original sender.  Fixed.

[11-13-93]

     1.  Memory corruption was taking place on the last version.
         Don't know why.

         This version has extensive debugging; if it gives problems, I want
         the relevant portions of the log files.  If you still have
         the input files, send me those with your .cfg's.

     2.  Slightly new behavior for GIGO:  If a user enters a header line
         at the top of his message, GIGO will check the validity of it.
         If you allow it ("Allow_Reply-To:", "Allow_From:", etc), GIGO
         will go ahead and take it.  If you DON'T allow it, GIGO will
         assume that it's the start of the message.

         Reason for change: stability

     3.  PID fixed for unregistered sites.

     4.  LOGO stuff changed a bit..
           /NOLOGO  skips the opening screen.
           Opening screen does not say anything about shareware etc
           Opening screen flashes just once now, runs a bit faster
           Non-registered people get ending screen, with a small
             two second pause; shareware screen shows this time
             /NOLOGO will _not_ turn this screen off

[11-12-93]

     1.  GIGO was previously word-wrapping _all_ lines of the fidonet
         message LINESPLIT was defined.  Now, GIGO will do all but one
         line - the "* Origin:" line.  Some people had origin lines
         that were even just one character too long, so GIGO was cutting
         their address off, thereby eliminating it's ability to figure out
         what address the user was from.   Thanks to Scott Parks..

     2.  Incorrect keywords.. "FSC-38" should be replaced with "FSC-35"
         anywhere you find it in GIGO.

     3.  Changed the wording on the docs and cfg files for "DOMAIN"

[11-10-93]
     1. [See also #5]

        Attempted DV compatibility.  I have successfully made
        GIGO to be DV aware - ie, if DV is loaded, GIGO locks like a
	mother..

	Needless to say, I can't get DV compatibility on here.

     2. Added "LOGKEPT filename.ext"  and  "LOGDUMPED filename.ext".
        LOGKEPT will log all newsgroups that were kept, and
        what echo names they were given.  LOGDUMPED simply logs which
        areas were dumped.

        These are not sorted, and dupes are not removed.  These were
        only added at the request of some gateway admins; I will leave
        it to them to determine a way to make these files useful.

        If you don't need them, turn them off - they _will_ slow
        things down.

    3.  Path line fixed.

    4.  Checked on "Organization" line; put it under all 4 combinations
        of possibilities.   No problems.   If you continue to have problems,
        send me your config.

    5.  GIGO will no longer use direct video; it now uses BIOS calls to
        handle all of it's video.  If you want to re-enable direct
        screen writes, put DIRECTVIDEO in your config file.  It will take
        effect _after_ the .CFG file is loaded.

        This will slow down the logo screen, as well as general
        message output.  If it slows down too much, put DIRECTVIDEO
        back into the config file.   The BIOS stuff is strictly as
        a way for DesqView people to not have to use the "Program
        uses direct writes" option, as that slows them down considerably,
        and is about the closest I can make Borland come to being DV
        happy.

    6.  People who had users posting from the gateway's BBS were noticing
        that GIGO was putting in a system address instead of just puting
        in the site & domain (ie, joe.blow@1-2-3-4.site instead of
        simply joe.blow@site).

        Add the following:

            SITE  local  1:203/7707 ; (use YOUR main address!)

        Alternatively, you can use an actual sub-site name, or tell
        GIGO to use the fidonet.org style addresses.  Examples are in order..

        SITE local       1:203/7707.0; produces joe.sysop@gateway.site
        SITE home        1:203/7707.0; produces joe.sysop@home.gateway.site
        SITE gateway     1:203/7707.0  produces joe.sysop@1-2-3-4.gateway.site
        SITE fidonet.org 1:203/7707.0; produces joe.sysop@p4.f3.n2.z1.fidonet.org

        Use the one that you prefer mail from your own system to look like.

[11-08-93]

     1.  FTPMAIL command added: SIZE
         Requester can now specify a block size from
         1500 to 45000 bytes (before encoding).  By default,
         files are sent in 9990 byte blocks (approx 12k after encoding)
         so that fidonet gateways don't have to break the message up;
         this command allows the _REAL_ internet sites choose a real
         block size instead of the weeny fidonet limits.

     2.  Compression of outbound mail should work now.  I forgot the path.

     3.  FSC38 must now be specified.  If not, then the ^aREPLYTO
         and ^aREPLYADDR kludges will not be generated on fidonet mail.
         Added because RA has bugs handling FSC38 (grr)

     4.  You may now specify /MAIL, /NEWS, and/or /FIDO on the command
         line to specify which actions you want to do.  These WILL
         override whatever is in your .CFG file.

[11-07-93]

     1.  Nasty bug when there was a usenet HEADER, but no MESSAGE.
         Fixed.

     2.  If you have problems with the SWAPEMS, SWAPXMS, SWAPEXT, or
         SWAPPATH options, disable them.  Play with the settings.
         Some of these options are incompatible with some machines.

         If all else fails, disable _ALL_ of them, and get a copy
         of SHROOM.  It will reliable and cleanup (albeit only to disk)
         swap out GIGO for you.

     3.  Took out some of the status messages that were bogging the logging
         down.  Now, only truely informational messages are put into the
         log, as well as all errors.

     4.  Trying to sqeak just a bit more of the memory down, but.. (sigh)
         GIGO definately eats a lot of it.

     5.  For bernd@... in the config file, "MYPATH" may now be defined.
         It defaults to the MYSITE value.  It will be used for all
         newsgroups, on the "Path: MYPATH!user" line.  If used, it will
         be up to you to make sure it's legal.  No checking is done by
         GIGO to check it's legality.


     6.  Typo in source code fixed; now, if you specify ORGANIZATION,
         but do not specify the ORGANIZATION=ORIGIN, it should work
         properly.

     7.  Screwed with date code again; this time, it's not the incomming
         dates getting mangled.  This time, (theoreticly) I've got the
         outgoing dates correct, too.  Let me know if you find otherwise.

     8.  GIGO is now being compiled with 8088 code.  If this seems to be
         a speed hit, let me know, and I'll start bundling both versions
         into the archive.

[11-05-93]

     1.  Removed SHROOM support.  It's only option for swapping is
         via disk.

     2.  Added SPAWNO.LIB to the project; GIGO will now swap on it's own.
         New config options
            SWAPEMS
            SWAPXMS
            SWAPEXT
            SWAPPATH  pathname

         By default, if none of these are defined, GIGO will check
         the dos environment for TMP or TEMP; if found, GIGO will swap
         to that directory.  IF not, then GIGO will use the current
         directory.

         Using the SWAPEMS, SWAPXMS, and SWAPEXT config verbs will make
         swapping a LOT faster!

     3.  Fixed SPAWNO support.  (Don't ask.. just take my word for it..)

     4.  GIGO will no longer make a Path: line on email, just newsgroups.

     5.  NEW COMMANDS in FTPMAIL requests:  "BINARY" and "ASCII".
         By default, GIGO will now autodetect the type of file being
         requested, and if it is straight ASCII, send it as a regular
         email message.  If it's binary, it will uuencode it first.

         BINARY and ASCII allow the user to override the autodetection.

     6.  If TEST is defined, GIGO will now only scan the spool directory
         _once_ instead of twice, preventing your getting two of everything.
         A side effect is, if a fidonet person sends a ftpmail requests,
         his email message(s) back will not be converted to netmail
         until next time you run GIGO.


[11-04-93]   version 0.80

     I've seen some wierd stuff that was off-standards and all, but
     this definately takes the cake..

     1.  File names where the sitename in the data file were truncated
         prematurely at 4-5 characters instead of 6 are now properly
         detected.

         GIGO should be having no problems with munging now.  GIGO takes
         up to 8 passes parsing the file names and site names in memory
         to find the appropriate string, testing munging with your site
         name and your feed's site name, to handle non-standard .X/.D files.

     2.  Fixes on handling *.X files..
          a. "C NEWS" and "C RNEWS" mean the same thing
          b. "C NEWS " will now be handled properly (why the heck is
             there a space in there?!?).  Anyhow, some people experienced
             this problem.

          c. If the command is unknown (not rnews, news, or rmail),
             I am going to start logging it.

     3.  Slightly faster when generating fidonet messages; the
         \n -> \r conversion has been rewritten (wow - 3 lines of
         code, rewritten for faster logic.. :-).  Anything to
         make gating faster.

     Stupid Stats as of 11/4/93
          GATEWAY.EXE:  6940 lines of code, not counting headers
          ML.EXE:       1420 lines of code, not counting headers
                             or the MSGAPI code by Scott Dudley


[11-02-93]
     1.  Fixed ML.EXE; it no longer locks up for Rick Christian.. :-)
         (Sorry, I don't remember what the bug was, I just know it works..)

     2.  Added integrity check to ML.EXE.

     3.  New config variable:  "KEEP_UNKNOWN".  If defined, if you
         get email that the gateway does not now how to deliver
         (ie, to john.doe@bogus.yoursite.domain), GIGO will keep the
         message, and send it to your netmail address for you to manually
         forward or bounce.

         If "KEEP_UNKNOWN" is _not_ defined, GIGO will automaticly return
         any undeliverable mail back to the sender.

     4.  ^aPASSWORD kludge fixed, hopefully for the last time.  ML should
         be working fairly flawlessly now.

     5.  Email messages that were too long for GIGO's internal buffer
         were locking GIGO up.  Fixed.


[10-31-93]
     1.  Munge code replaced by code from Waffle 1.63
         Thanks, Bernd..

         Let's see how well this works for people with those
         really long packet names like foobarBC125423532515151512... :-)

     2.  Received approval to include "Shroom" with GIGO.  Now, all
         I need is to get permission for the compress program, and
         for uucico..

     3.  Fixed a lastread problem with ML.

[10-27-93]
     1.  ftpmail requests are processed _quite_ a bit faster now.
         Before running ftpmail requests, I dump the message buffers,
         and reallocate it for using with uuencode input and output
         buffering.  MUCH faster reading/writing 60k at a time than it
         is to write 60 bytes at a time!

[10-24-93]

     1.  Improved .fidonet.org address detection;
         user@f##...fidonet.org is considered netmailable, and
         bheese@mcws.fidonet.org is considered emailable, for purposes
         of deciding whether to use email or netmail to deliver the
         message, and in determining if ftpmail requests are allowed.

     2.  Improved detection of ^aPASSWORD kludge lines in conjuction wiht
         the mailing list.

     3.  ML.ZIP is now included; it's a preliminary form of
         a mailing list processor.  It leaves most of the gating work to
         GIGO; ML.ZIP is just the message base interface.

         It supports Squish/*.MSG now.  If you feel that a Hudson or
         JAM implementation should be written, contact me, so that I
         can give you the few specifications needed to use GIGO as I
         am.  If you would like your version for your message base
         distributed, contact me :-)

[10-13-93]

     1.  Damn date bug, different one.  This house is infested with
         the creatures.  Pulled out the can of RAID, sprayed that bugger,
         and now the timezone names (in parenthesis following the dates)
         are now showing the proper names instead of gibberish.  Now, if
         only I would stop talking gibberish..

     2.  Some people are having problems with the D.* and X.* file names
         being mis-translated.  I can't find a problem with the code.
         However, I have treated the code in such a way, that if it gets the
         wrong size file name, it automaticly reverses the names, and
         tries it in the other direction - if it gets a proper file name,
         cool, it will use it.

     3.  GIGO will allow for extra header lines to be specified in the
         messages.  Ie,
            To: user@domain
            Reply-To: jfesler@wmeonlin.sacbbx.com
            X-Disclaimer: My views are my own.  Problems >/dev/null

            This is a sample message

         GIGO will actually UNDERSTAND the extra header lines.
         Only those that you, the site administrator, allow, will be
         actually in the header itself; any that are not directly
         allowed are passed in the message body instead.

         To enable any user-defined headers, add to your config file:
            Allow_HeaderName:
            Allow_Reply-To:
            Allow_X-Disclaimer:

     4.  If tke kludgeline PASSWORD ML exists in the netmail or
         echomail message, _all_ header lines are considered valid,
         whether or not they are defined in your setup.

         In a VERY near future, you will have your choice of passwords
         in this field.

         This is for compatibility with the mailing list that I am writing,
         as well as any 3rd party utils, that need to send extra header
         lines.  They can be told in include the PASSWORD line,
         enabling Gigo to import all headers.

     5.  If FTPMAIL-MAXBYTES or FTPMAIL-MAXFILES is missing, default
         is (practically) no limit.  Okay, there is a limit.   If you have
         more than 4 gigs, it will stop at 4 gigs.  Oh well, sue me.

         If FTPMAIL-FIDONET is missing, fidonet ftpmail requests will
         be returned with a message stating that it's not allowed.
         Be sure to include FTPMAIL-FIDONET if you want fidonet users
         to be able to use ftpmail services via your system.

         (This does NOT affect ftpmail requests from other sites, just
         yours.).

    6.   It's possible that outbound names were not always correct; I
         noticed a problem late tonight on my programming machine,
         but haven't been noticing it on the actual gateway for my net.

         Any case, I squashed that bug.


[10-12-93]

     0.  (Missing from docs)

         Samples on USER statements
           USER jfesler 1:203/7707.0 Jason Fesler
           USER jfesler 1:203/7707.1 Jason Fesler
           USER jfesler                     BOUNCE
           USER jfesler                     BOUNCE he-died.txt
           USER jfesler@wmeonlin.sacbbx.com BOUNCE jfesler@heaven.com
           ; Above three bounces bounce the internet->fidonet side

           USER bounce 1:203/8055 Sysop
           ; Above bounces only "Sysop" from 203/8055, fido->internet

         Sample SITE statements
           SITE local       1:203/7707 ; anything from here is
	   			       ; user@wmeonlin.sacbbx.com, no sub site
           SITE home        1:203/7707.1 ; where I personally post from
           SITE purgatory   BOUNCE     ; This site does NOT exist any more!
           SITE cherynoble  BOUNCE        nuked.txt
           SITE BOUNCE      1:203/8055 ; Don't take his mail, he's an ass
           SITE GATEWAY     1:*/*   ; Gate for all other parts of zone 1
           SITE FIDONET.ORG *:*/*   ; standard f.n.z.fidonet.org

           ;The third line bounces any mail to the site
           ;cherynoble, giving back the message in nuked.txt

           ;The fourth line bounces fidonet netmail from
           ;1:203/8055, eliminating his/her users from being
           ;able to use the gateway.

     1.  FTPMAIL requests were incorrectly putting some of the text
         into the .REQ file (basically, the lines weren't commented,
         so the find & uuencode section was searching for the actual
         files..

     2.  Cleaned up fidonet name -> internet name conversion.
         Whenever there is the potention for multiple dots,
         ie "Dr. Dobbs" -> "Dr..Dobbs", GIGO will subsitute
         an underscore for the dot.

     3.  You can now control ftpmail requests a bit better.
           FTPMAIL-MAXFILES 10  ; Max 10 files returned per req
           FTPMAIL-MAXBYTES 1000000; max bytes returned per req
           FTPMAIL-FIDONET ; if defined, allows fidonet users
                           ; to use ftpmail requests.  If not
                           ; defined, stops .fidonet.org and
                           ; stops .yoursite requests ...

     4.  Fixed yet another date bug.  Numeric time zone codes
         were being improperly applied.  Seems to work now.. but
         then again, thought it was fixed _last_ time.

     5.  In outgoing date/time strings, the numeric time zone
         is always placed into the string relative to UTC.
         The time zone name is placed in parenthesis following
         the date, as a standard comment, stating the time zone
         that the message was sent from (as in the gateway's tzone).

     6.  In the subject line of split messages, the split number was
         always off by 1.  Fixed.

     7.  Version number now shows on GIGO tearline (does not include
         compile date).

     8.  ORGANIZATION line now fixed; if you specify an ORGANIZATION
         but do not specify ORGANIZATION=ORIGIN, GIGO will no longer
         add the origin line to the organ line.

     9.  Via lines and other kludge lines are no longer sent via
         email.  All tracking information from the fidonet side of
         a message's travels will be lost as it hits the gateway.

    10.  IMPORTANT
          Add to your cfg file..
           FTPMAIL-MAXFILES  10        ; ten files
           FTPMAIL-MAXBYTES  1000000   ; one meg
           FTPMAIL-FIDONET ; Allows fidonet people to route via netmail
                           ; not allowed in fidonet..



[10-07-93]

    The date field in the FidoNet header was incorrect if the usenet header
    showed 1993 instead of 93 (causing the fidonet header date to be off by
    literally _years_ .. :-).  This bug has been eradicated.

[10-06-93]

    "USER" statements are now properly working; anybody defined in a USER
    statement will be allowed to use the gateway for outgoing email.  Also,
    the email address in the USER statement will be their prefered email
    address when generating outgoing messages.

    If multiple USER lines are listed for the same person, the top one takes
    precedence, and the lower ones are alternate addresses for _incomming_
    mail.

    Thanks to _everyone_ who found this bug and pointed it out..


[10-03-93]

    First public beta release given to other people.
    Thanks to Jim Northrup for helping thus far :-)

[09-01-93]

    Started working on GIGO


