Repeated Modifiers
------------------
Section 4.6.3 says "The same key MUST NOT appear in more than one
modifier in a record." The intent is that modifiers cannot be
repeated, and any repetition results in a syntax error (PermFail).
Why can they not be repeated?
Modifiers are something that some clients are able to process and some
can not.
I think that the "exp" modifier *may* be ignored, because it does
nothing else just provides human-readable information for the
upstream. SPF users may also disable this in their implementation if
it is meaningless in the context or if they want to reduce the DNS
load caused by SPF. The "redirect" modifier however *must* be
supported by all clients, otherwise the evaluation of the SPF record
may be incomplete and after all it makes the whole SPF record
unusable.
Its up to the client to be able to decide if repetition of
the modifier is to be considered an error in regards to that modifier
or not. But I don't think this should be disallowed for all modifiers
directly by the protocol draft.
My concern with repeated "exp" modifier is that the SPF implementation
has to guess what was the intention of the SPF publisher. Did he want
to the client to use the first "exp" modifier or the second? This
guessing just can't be right.
I think it would be OK to mark "redirect" and "exp" modifiers as
global/singular (must appear only once in a record) and keep the rule
of ignoring unknown modifiers. This way we can get rid of the guessing
and also reserve space for future modifiers.
Peter Karsai
Vamsoft Ltd.
http://www.vamsoft.com/orf