On Mon, Mar 22, 2004 at 10:39:00PM +0100, Ramakanta (das) HKS (PAMHO.NET SysOp)
(Zurich - CH) wrote:
| In spf-draft-20040209.txt in the section 3.2 it says:
|
I have updated section 3.2 to contain:
An SPF record contains an ordered list of mechanisms and modifiers:
SPF-record = version *( 1*SP ( [prefix] mechanism | modifier ) )
prefix = "+" / "-" / "~" / "?"
mechanism = 1*ALPHA [ ':' *VCHAR ] *[ '/' *DIGIT ]
modifier = 1*ALPHA '=' *VCHAR
Modifiers always contain an equals ('=') character.
Mechanisms usually contain ':' or '/' characters.
Directives that do not contain any of '=', ':', or '/' are
mechanisms.
+ A meaningful modifer such as "exp" may appear to the
+ right of a terminal mechanism such as "all". SPF parsers
+ may therefore choose to extract all the modifiers from a
+ record before interpreting mechanisms. Alternatively,
+ they may continue to parse a record in search of a
+ meaningful modifier even after mechanism evaluation has
+ completed.
Each mechanism is considered in turn from left to right.
When a mechanism is evaluated, one of three things can happen: it
can match, it can not match, or it can throw an exception.
If it matches, processing ends and the prefix value is returned as
the result of that record. (The default prefix value is "+".)
If it does not match, processing continues with the next
mechanism. If no mechanisms remain, the default value is "-".
If it throws an exception, mechanism processing ends and
the exception value is returned (either "error"
indicating a temporary failure, usually DNS-related, or
"unknown" indicating a syntax error or other permanent
failure resulting in incomplete processing.)
I'm a little bit bothered by the new paragraph because it tries to
micromanage clients in too much detail. Is there a better way to say:
you have to respect an exp modifier even if it appears after "all"?