Vladimir Sharun wrote:
> > 
> > Потому что сейчас девелоперы exim'а работают над соблюдением типизации.
> > 
> > Если раньше конструкции типа condition = {lookup} (без if) работали, то 
> > сейчас - с очень переменным успехом.
> 
> То есть есть шанс, что рано или поздно и конструкция
> "accept condition = 
> ${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}{no}}"
> работать перестанет? Надо будет везде оборачивать в bool{...} ? 
> Я бы проверил работают ли они всё еще уже сейчас :)

Работают, в моём примере было два ACL condition подряд таких и работали. Я и 
думал, что
можно их через "or" объединить, однако же оказалось нельзя.

И самое обидное - я же не предлагал and/or кушать результат лукапа или
пустое множество, я специально для него определил список возможных ответов: 
{yes}{no} и всё.

А кстати коли зашла речь, нельзя ли тут еще что-нибудь усовершенствовать в 
https://termbin.com/tasy ? 

> 
> > 
> > вторая тема - я бы врапнул вот эти длинные лукапы в named list - легче 
> > читать
> 
> Примерчик можно?
> 
> hostlist    TRUSTED_MASSMAIL = partial2-lsearch;/lists/TRUSTED_MASSMAIL : 
> /lists/TRUSTED_NETWORKS
> 
> https://www.exim.org/exim-html-current/doc/html/spec_html/ch-domain_host_address_and_local_part_lists.html
> 
> Что-то типа макросов.
> Потом используется (например) как
> hosts = +TRUSTED_MASSMAIL
> и всё понятно и нет тяжелых-длинных-непонятных конструкций

Когда приходится ссылаться на одно и то же в нескольких местах - я
польуюсь подобным, например:
domainlist dovecot_domains = dsearch;/home/vmail


> > 
> > и третья тема (смое важное) - результат лукапа - это value, которое
> > при bool сравнении всегда будет или false или true - уже не помню;
> > если вам надо "есть или нет" надо использовать конструкцию типа
> > {bool{${lookup{$item}nwildlsearch{some_file}...}
> 
> Зачем, почему? Работает же так
> 
> я bool и имел в виду. На каком-то моменте в 4.9х перестал работать
> мехнизм "если лукап что-то вернул - это true, а если ничего - false".

> Строго говоря правая часть кондишна - это bool, а логические операции
> также обязаны оперировать с bool, т.е. {if or {cond1} {cond2}}, вот
> эти condN - это должен быть bool тоже и если нет, то факапы ойой
> вылазят.

Еще раз почитал раздел про File and database lookups, не нашёл отличий
между lsearch и nwildlsearch в плане типа возвращаемого результата. Всё
отличие вроде в возможности использовать "*" в лукапе, а результат вроде
должен одинаковый для обоих быть (то что нашли, или пусто).


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

Ответить