[exim-conf] доработки механизма фильтрации по комбинациям хоста отправителя и адресов отправителя и получателей

Victor Ustugov victor на corvax.kiev.ua
Пн Янв 17 00:44:33 EET 2011


приветствую

проведены некоторые доработки механизма фильтрации по комбинациям хоста
отправителя и адресов отправителя и получателей (переменная
confCHECK_COMPAT_RELAY).


в первую очередь немного изменен порядок запросов:


в случае использования Berkeley DB в качестве хранилища данных для
фильтрации по комбинациям хостов отправителей и адресов отправителей и
получателей (`DBM' в качестве значения для
confCHECK_COMPAT_RELAY_BACKEND) раньше запросы выполнялись в таком порядке:
1. запрос по адресу хоста отправителя, адресу отправителя, адресу получателя
2. запрос имени хоста отправителя, адресу отправителя, адресу получателя
если в качестве хранилища локальной почты используются UMIX mailbox
(`MBOX' в качестве значения confDELIVERY_TO), то выполнялись еще два
запроса, если домен получателя входит в список локальных доменов:
3. запрос по адресу хоста отправителя, адресу отправителя, локальной
части адреса получателя
4. запрос имени хоста отправителя, адресу отправителя, локальной части
адреса получателя

теперь в список запросов добавлены еще два запроса:
5. запрос по адресу хоста отправителя, адресу отправителя (адрес
получателя опущен)
6. запрос имени хоста отправителя, адресу отправителя (адрес получателя
опущен)


в случае использования текстового файла access-compat-relay в качестве
хранилища данных для фильтрации по комбинациям хостов отправителей и
адресов отправителей и получателей (`TEXT' в качестве значения для
confCHECK_COMPAT_RELAY_BACKEND) раньше запросы выполнялись в таком порядке:
1. запрос по адресу хоста отправителя, адресу отправителя, адресу получателя
2. запрос имени хоста отправителя, адресу отправителя, адресу получателя
3. запрос по адресу хоста отправителя, адресу отправителя (адрес
получателя опущен)
4. запрос имени хоста отправителя, адресу отправителя (адрес получателя
опущен)
если в качестве хранилища локальной почты используются UMIX mailbox
(`MBOX' в качестве значения confDELIVERY_TO), то выполнялись еще два
запроса, если домен получателя входит в список локальных доменов:
5. запрос по адресу хоста отправителя, адресу отправителя, локальной
части адреса получателя
6. запрос имени хоста отправителя, адресу отправителя, локальной части
адреса получателя

теперь порядок запросов модифицирован - запросы 5 и 6 выполняются до
запросов 3 и 4.


т. о. количество запросов и их аргументы для DBM и TEXT хранилищ
приведены в соответствие друг с другом.


в случае использования MySQL или SQLite в качестве хранилища данных для
фильтрации по комбинациям хостов отправителей и адресов отправителей и
получателей (`MYSQL' или `SQLITE' в качестве значения для
confCHECK_COMPAT_RELAY_BACKEND) максимальное количество запросов
выполняемых запросов увеличено с двух до четырех.

соответственно изменен синтаксис запросов по умолчанию:

define(`confCHECK_COMPAT_RELAY_SQLITE_QUERY', `SELECT action FROM
access_list WHERE
sender_host_address="${quote_sqlite:$sender_host_address}" AND
recipient="${quote_sqlite:$local_part@$domain}" AND
sender="${quote_sqlite:$sender_address}"')

define(`confCHECK_COMPAT_RELAY_SQLITE_QUERY2', `SELECT action FROM
access_list WHERE sender_host_name="${quote_sqlite:$sender_host_name}"
AND recipient="${quote_sqlite:$local_part@$domain}" AND
sender="${quote_sqlite:$sender_address}"')

define(`confCHECK_COMPAT_RELAY_SQLITE_QUERY3', `SELECT action FROM
access_list WHERE
sender_host_address="${quote_sqlite:$sender_host_address}" AND
sender="${quote_sqlite:$sender_address}"')

define(`confCHECK_COMPAT_RELAY_SQLITE_QUERY4, `SELECT action FROM
access_list WHERE sender_host_name="${quote_sqlite:$sender_host_name}"
AND sender="${quote_sqlite:$sender_address}"')


define(`confCHECK_COMPAT_RELAY_MYSQL_QUERY', `SELECT action FROM
access_list WHERE
sender_host_address="${quote_mysql:$sender_host_address}" AND
recipient="${quote_mysql:$local_part@$domain}" AND
sender="${quote_mysql:$sender_address}"')

define(`confCHECK_COMPAT_RELAY_MYSQL_QUERY2', `SELECT action FROM
access_list WHERE sender_host_name="${quote_mysql:$sender_host_name}"
AND recipient="${quote_mysql:$local_part@$domain}" AND
sender="${quote_mysql:$sender_address}"')

define(`confCHECK_COMPAT_RELAY_MYSQL_QUERY3', `SELECT action FROM
access_list WHERE
sender_host_address="${quote_mysql:$sender_host_address}" AND
sender="${quote_mysql:$sender_address}"')

define(`confCHECK_COMPAT_RELAY_MYSQL_QUERY4', `SELECT action FROM
access_list WHERE sender_host_name="${quote_mysql:$sender_host_name}"
AND sender="${quote_mysql:$sender_address}"')dnl


т. е. для обеих СУБД производятся запросы, соответствующие набору
запросов для текстового и dbm backend'а без доставки в unix mailbox:

1. запрос по адресу хоста отправителя, адресу отправителя, адресу получателя
2. запрос имени хоста отправителя, адресу отправителя, адресу получателя
3. запрос по адресу хоста отправителя, адресу отправителя (адрес
получателя опущен)
4. запрос имени хоста отправителя, адресу отправителя (адрес получателя
опущен)

-- 
Best wishes Victor Ustugov   mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:        http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC




Подробная информация о списке рассылки exim-conf