Subject: TECH-ERROR: versioning

From: Roy Badami <[email-masked]>
Date: Fri, 3 Sep 2004 01:34:16 +0100

I'd like to support the various proposals for modifying the syntax of
the version specified so that 'pra' isn't hardwired.  However, I'd
rather propose a more neutral term than 'ver-scope' or 'scope' as has
been previously proposed.  I'd prefer 'ver-token'; these tokens may be
useful for things other than defining scopes (the SPF term for
identities to verify).  At this point we don't need to decide what we
think the extension mechanism will be used for, we just have to
provide an extenstion mechanism.

I would propose that the BNF in -protocol 3.4.1 be replaced with
something on the lines of:

 version        = "spf2." ver-minor [ / ver-token-list ]
 ver-minor      = 1*DIGIT
 ver-token-list = ver-token *("," ver-token)
 ver-token      = *SOMECHAR  ; don't really care, but obiously must exclude ","

The following text then needs to become:

   Only records that begin with a proper version section are
   considered.  The version section contains two parts that are for
   backward compatible future extensions: the ver-minor and
   ver-token-list fields.  These fields of the version must be
   well-formed for a record to be considered.  The vir-minor field is
   otherwise ignored, and the ver-token-list field is considered as
   described in the following paragraphs.

   If there is only one record with a proper version section, it is
   selected.  If there are two such records, one TXT and one SPF2 RR,
   then the later MUST be selected.  If two or more such records exist
   of the same RR type, then check_host() exits immediately with the
   error "PermError".

   If the optional ver-token-list field is present in the selected
   record, and one (or more) of the ver-tokens have the value "pra",
   then the selected record is used as described in this document.
   Otherwise check_host() exits immediately with the error
   "PermError".

---

From: Roy Badami <[email-masked]>
Date: Fri, 3 Sep 2004 02:08:09 +0100

Of course, what I wrote allows

   spf2.0/pra,mailfrom ...

and

   spf2.0/mailfrom,pra ...

to be both recognized by -protocol.

But it forbids having two records

   spf2.0/pra ...
   spf2.0/mailfrom ...

Of rather, if both such records exists, then neither would be used by
-protocol.

It seems cleaner to define it as I propose, but I don't have strong
feelings on disallowing multiple spf/2.x records as long as only one
of them has the "pra" token.  I can see that the alternative approach
may have merit, too...

    -roy