Имеется такой макрос с запросом к БД:
Код: Выделить всё
CHECK_IN_WHITE_GLOBAL = ${lookup mysql{SELECT MAX(IF((`domain` = '${quote_mysql:$sender_address_domain}' \
AND (`address` = '${quote_mysql:$sender_address}' \
OR ISNULL(`address`))), 1, 0)) AS result \
FROM white_list \
WHERE `area` = 'GLOBAL'}};Код: Выделить всё
condition = ${if eq{CHECK_IN_WHITE_GLOBAL}{0}{yes}{no}}Код: Выделить всё
SELECT MAX(IF((`domain` = 'pentagon.mil' AND (`address` = 'vasya@pentagon.mil' OR ISNULL(`address`))), 1, 0)) AS result FROM white_list WHERE `area` = 'GLOBAL'Однако exim почему-то в condition пропускает этот роутер и переходит к следующему!
При дебаге выводится вот что:
Код: Выделить всё
23531 local_part=user domain=example.com
23531 checking "condition"
23531 search_open: mysql "NULL"
23531 cached open
23531 search_find: file="NULL"
23531 key="SELECT MAX(IF((`domain` = 'pentagon.mil' AND (`address` = 'vasya@pentagon.mil' OR ISNULL(`address`))), 1, 0)) AS result FROM white_list WHERE `area` = 'GLOBAL'" partial=-1 affix=NULL starflags=0
23531 LRU list:
23531 internal_search_find: file="NULL"
23531 type=mysql key="SELECT MAX(IF((`domain` = 'pentagon.mil' AND (`address` = 'vasya@pentagon.mil' OR ISNULL(`address`))), 1, 0)) AS result FROM white_list WHERE `area` = 'GLOBAL'"
23531 database lookup required for SELECT MAX(IF((`domain` = 'pentagon.mil' AND (`address` = 'vasya@pentagon.mil' OR ISNULL(`address`))), 1, 0)) AS result FROM white_list WHERE `area` = 'GLOBAL'
23531 MySQL query: SELECT MAX(IF((`domain` = 'pentagon.mil' AND (`address` = 'vasya@pentagon.mil' OR ISNULL(`address`))), 1, 0)) AS result FROM white_list WHERE `area` = 'GLOBAL'
23531 MYSQL using cached connection for localhost/mail/exim
23531 lookup yielded: 0
23531 incoming_control_mail router skipped: condition failureЕсли сделать так, чтобы в результате запроса выдавалась 1, то роутер также не срабатывает.
Подскажите, пожалуйста, почему роутер не работает? Где я мог сделать ошибку или что-то забыл сделать?
