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".