[list.netnws-l] Proposal for Listserv gateway to Netnews

Linda Littleton <LRL@PSUVM.bitnet> (02/23/90)

I like the idea of having many of the bit groups crossposted to Usenet
groups, and would like some feedback before implementing anything.
Some of this is just me thinking out loud, so please bear with me and
send your comments.

Currently the gateway site does not require any special files.  If
a file comes in via MAILER and its filename matches a bit.listserv.(name)
it is assumed this is a posting for that group.  Not requiring a
separate file that lists each group being gatewayed makes it easy for
a site (like us) that gateways lots of groups to forget which ones they
gateway and which are fed from elsewhere.

So, even though it would seem extra work to maintain it, I think it
would be best to require a file at the gateway site that lists each list
being gatewayed, with one per line.  Let's call the file NETNEWS GATEWAY
(to be consistent with other control files having filename NETNEWS) or
perhaps GATEWAY LIST to be more descriptive of what it really is.

At first glance, you'd think the file could just list 2 tokens: listserv
list name and Netnews group name(s).  A third token giving the host node(s)
would probably be useful to guard against forgeries.  For example:

abc         xyz                    bit.a,comp.b
asm370      uiucvmd                bit.listserv.asm370,comp.lang.asm370
cyber-l     bitnic,dearn,uga,(etc) bit.listserv.cyber-l,comp.sys.cdc
ibm-nets    bitnic,finhutc,uga     bit.listserv.ibm-nets,comp.protocols.ibm
minix-l     dearn,finhutc,ndsuvm1  bit.listserv.minix-l,comp.os.minix
rexxlist    dearn,ohstvma,(etc)    bit.listserv.rexxlist,comp.lang.rexx

But the major problem with this is: What do we do if the file from
Listserv already has a "Newsgroups:" tag?

How about this:

(1) If the incoming Newsgroups: tag includes at least one group in the
    list, the others are added.  For example, if a file for list abc has
    either "Newsgroups: bit.a" or "Newsgroups: comp.b", then
    "Newsgroups: bit.a,comp.b" is used.

(2) If the incoming Newsgroups: tag has two or more groups, including at
    least one on the list, then the one on the list gets substituted.
    For example, if a file for list abc has "Newsgroups: bit.a,alt.y",
    then we assume the user intended a crossposting and change the line
    to "Newsgroups: bit.a,comp.b,alt.y".

(3) If the incoming Newsgroups: tag has *only* something not on the list
    (for example, if list abc sends a file with "Newsgroups: x.y") then
    what do we do?  We need to be able handle this situation, as some
    groups require it.  For example, list 9370-L contains "Newsgroups:
    wu.wi.transputer", and ADVISE-L has "Newsgroups: bit.listserv.md4f".
    Guess we could add a fourth token to the table to indicate this, as in:

    abc       xyz       bit.a,comp.b                         x.y
    advise-l  cmuccvma  bit.listserv.advise-l,comp.wherever  bit.listserv.md4f

    Then if list abc sent "Newsgroups: x.y", it would be changed to
    "Newsgroups: bit.a,comp.b", but if it sent "Newsgroups: p.q", the
    file would be rejected.  And if it sent "Newsgroups: p.q,x.y",
    then "Newsgroups: p.q,bit.a,comp.b" would be used.

An alternate idea would be to not do any of this, but instead to require
each Listserv list to have the correct "Newsgroups:" line.  Lists that
could not comply would not be gatewayed.

Please comment on this.  I'll wait for some discussion before implementing
anything.

-Linda

Irwin Tillman <IRWIN@PUCC.bitnet> (02/23/90)

If you're not worried about forgeries, you can get away without
a file at the gateway.  You can rely on the Newsgroups header, and
not gateway stuff if you can't convince the list owner to add
a Newsgroups definition.  If you do that, you don't need to
put the newsgroup name into a gateway file.  (This in fact was
a major reason for the creation of the 'Newsgroup' header in
Listserv.)

If you want to provide some protection against forgeries, then
you can use a file at the gateway specifying some characteristics
of the incoming files before accepting them as valid.  I use this
at my site; my gateway file contains lines of the form:

originid class form name type dist

here are some sample entries:

VMMAIL   M  QUIET    BIOMED-L MAIL     NDSUVM1
VMMAIL   M  QUIET    COCO     MAIL     PUCC
VMMAIL   M  QUIET    *        MAIL     RPIECS
*        M  QUIET    AIX-L    MAIL     BITNIC