Document: FSC-0067
Version:  001
Date:     02-Aug-1992




                A Proposal For Sensible New Kludge Lines
                ========================================

                             Mark Kimes
                          FidoNet 1:380/16




Status of this document:

    This FSC suggests a proposed protocol for the FidoNet(r) community,
    and requests discussion and suggestions for improvements.
    Distribution of this document is unlimited.

    Fido and FidoNet are registered marks of Tom Jennings and Fido
    Software.




MSGTO:  This kludge line, together with a MSGID: kludge (see FTS-0009),
       would provide full address specs for both the originating and
       destination nodes of a netmail message (MSGTO should _not_ be
       used in echo mail).  Its format is simple:
         ^aMSGTO: <FTN address>
       MSGTO (coupled with MSGID) would eliminate the need for the
       INTL, FMPT, TOPT and DOMAIN kludges.  A MSGTO kludge line should
       go just below any MSGID and REPLY kludge lines.  See also
       discussion on FTN address representation below.

ASSOC:  ASSOC introduces a filename that should follow the message (is
       associated with the message). Format is, again, simple:
         ^aASSOC: <filename>
       A message tosser would forward the file along with the message,
       if so configured for the AREA: of the message (assuming
       echomail) or other criteria.  Paths would probably not be useful
       in the <filename> field and should not normally be included or
       used if found to be present.  ASSOC kludge lines should go below
       any addressing kludge lines.

SPTH:   Clint Adams described this as a "5D, sensible order,
       top-of-the-message path" line.  I like that.  Stands for "Sticky
       PaTH."  SPTH displaces the current PATH line.  Instead of being
       located at the bottom of the message, it's located at the top of
       the message.  Instead of being 2-D (net/node), it's 5-D
       (domain#zone:net/node.point).  It's sticky like a normal PATH
       line so that the size doesn't get outrageous.  Because it's 5-D
       instead of 2-D it can be used for dupe checking (which a normal
       2-D PATH line cannot; is 1/1 Fidonet#1:1/1 or Dufusnet#2:1/1?).
       Because it's 5-D we would no longer have to go through hideous
       gyrations when gating echo mail from one domain to another; just
       let it flow.  Using SPTH it becomes trivial to cut SEEN-BYs down
       to Tiny Seenbys (only required for backward compatibility with
       old mail processors that barf without some SEEN-BYs, and to
       protect fully enclosed polygon topology).

       SPTH is to be used only in echo mail.  It's format is basically:

           ^aSPTH: <address> <address> ... <address>

       SPTH lines, like PATH lines, contain only addresses of mail
       processors that actually processed the message.  SPTH lines are
       specifically not sorted and are "sticky" so that they carry the
       least amount of information that will convey a full address when
       coupled with preceding addresses.  For example, if
       1:380/16.0@Fidonet, 1:380/16.1@Fidonet, 1:380/100.0@Fidonet,
       1:396/100.0@Fidonet, 2:4177/1.0@Fidonet and 2:4177/1.0@Othernet
       processed a message, in that order, you'd have:

        ^aSPTH: Fidonet#1:380/16 .1 100 :396 #2:4177/1 Othernet

       Note that point 0 is assumed if missing and that punctuation
       *precedes* an address element except in the case of a domain
       change (and when the net element is the first change -- this
       dictates that domain names begin with an alphabetical
       character).  This compacts SPTH entries as much as possible for
       most typical topologies.

       When an SPTH-aware processor forwards a message containing (a)
       PATH line(s) but no SPTH line(s), it should create a new SPTH
       line (or lines as required; SPTH lines shouldn't get longer than
       80 characters, including terminating carriage return) containing
       "fleshed-out" addresses from the PATH line(s), then add itself.
       If this is done at all zone/domain gates, the SPTH will always
       be current even if intermediate nodes are not SPTH-aware.  In
       the event an SPTH-aware processor receives a message containing
       both SPTH line(s) and PATH line(s), it should concatenate the
       "fleshed-out" addresses from the PATH line(s) to the SPTH
       line(s), then add itself.  The PATH line(s) may then be
       discarded from the message.  When exporting new messages, only a
       SPTH line should be created; no PATH line should be generated.
       Tiny Seenbys should be added at the end of the message for the
       reasons noted above.


Note that all the kludge lines above are in actual use and have been for
some time; they do work, and work as presented.  Code is available on
request, but implementation is trivial (only SPTH takes any real work at
all).



FTN address representation:
==========================

The current convention for representing an FTN address has become:

   zone:net/node[.point]@domain

I propose we change this to:

   domain#zone:net/node[.point]

Why?  It's all in one order, highest to lowest; it's consistent.  "@" is
used, in the former method, in a way rather opposed to normal usage in
network addressing.

While we're on the subject of domains, let's knock off using
"fidonet.org" in FTN addresses.  That only means something in Internet.
It's going to gum up the works for FTN domains, where we'll want things
like "fidonet.eu" to mean Fidonet Europe some day.

I'm done now.


Mark Kimes
Fidonet#1:380/16
(318)222-3455 data