George L. Yermulnik wrote:

[dd]

> Первый "yes" - это то, что вернёт в случае удачи lookup и что будет
> являться первой частью для eq, а второй "yes" - это то, с чем будет
> сравниваться первый.
> Т.е. в, так сказать, полной нотации это должно выглядеть так:
>   condition     = ${if or {\
>                         { eq 
> {${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}{no}}} {yes} 
> }\
>                         { eq 
> {${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}{no}}} {yes} }\
>                 } {yes}{no}}
> 
> "{no}" в lookup'ах можно убрать, т.к. в данном случае не важно, что
> вернёт lookup, если совпадение не найдёт (абы только не "yes").
> 
> "{yes}{no}" в конце всего кондишена тоже можно убрать, т.к. в случае
> удачи if вернёт строку "true", а в случае неудачи вернёт пустую строку,
> что для "condition" равноценно false.
> Собственно как можно убрать только "{no}", тогда соответственно в случае
> удачи вернёт "yes", а в случае неудачи - пустую строку, от чего
> функциональность не изменится =)
> В примере Лены yes/no|true/false заменено на 1/0 через bool, но в итоге
> для exim это всё равнозначные удача/неудача.

С bool{...} как-то стройнее и нагляднее получается, чем с eq. Он уже 

В общем главный вывод для меня из этой истории - что нельзя "or" и "and"
подсовывать результат лукапа, хотя этот лукап тоже можно использоваться
(в других местах) как condition, но это не expansion condition. А
expansion conditions - только из строгого списка.

Вот про bool{} пишут, что This condition turns a string holding a true
or false representation into a boolean state. It parses “true”, “false”,
“yes” and “no” (case-insensitively); also integer numbers map to true if
non-zero, false if zero. An empty string is treated as false.

Кто им мешал "or" и "and" сделать столь же всеядными?

-- 
Victor Sudakov,  VAS4-RIPE, VAS47-RIPN
2:5005/49@fidonet http://vas.tomsk.ru/

_______________________________________________
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users

Reply via email to