Re: [exim] Exim grammar help needed

Top Page
Delete this message
Reply to this message
Author: Phillip Carroll
Date:  
To: Julian Bradfield via Exim-users
Subject: Re: [exim] Exim grammar help needed


On 7/16/2020 12:05 AM, Julian Bradfield via Exim-users wrote:
>> However, the DMARC example of 58.5 contains a construct that has me
>> totally stumped:
>>
>>      warn !domains = +screwed_up_dmarc_records

>>
>> ...
>> Presumably the left side of the "=" is negated in some manner, but that
>> is about as much as I think I understand. The right side looks
>> sufficiently close (linguistically speaking) to "foobar" that I think I
>> have some glimmer of understanding of that. But, maybe not.
> It means warn !( domains = +screwed_up_dmarc_records)
>
> The meaning of ! is explained in the first line of section 44.20 of
> the spec.


44.20 first line:
> An exclamation mark preceding a condition negates its result.


The remainder of 44.20 seems to me an obfuscatory masterpiece of
explanation of an ambiguous spec.

In any event, to understand the negation of "x" one must first
understand "X".

But, actually, my focus on "!domains = +some_meaningless_list" appears
to be an example of chasing a wild goose. My focus should have been on
the preceding "warn" verb.

As explained in 44.18:

> If log_message is not present, a warn verb just checks its conditions and obeys any “immediate”
> modifiers (such as control, set, logwrite, add_header, and remove_header) that appear before
> the first failing condition.


Therefore, per the spec:
> warn !domains = +screwed_up_dmarc_records
> control = dmarc_enable_forensic


Does precisely nothing because the control modifier appears AFTER the
failing "domains" condition. Which leaves one to wonder the intent of
the author.

Phil