[exim-conf] new spamoborona dlfunc

Victor Ustugov victor на corvax.kiev.ua
Пн Авг 13 01:49:05 EEST 2007


приветствую

01.08.2007 выпущена новая версия контент сканера Yandex spamoborona - 
2.0 (точнее 2.0.1.1), теперь работающая как с использованием UNIX domain 
socket, так и TCP socket.

следовательно, это потребовало переделки dlfunc для работы с spamoborona:
http://mta.org.ua/exim-4.68-conf/dlfunc/spamoborona2/

отличия от предыдущей версии 
(http://mta.org.ua/exim-4.64-conf/dlfunc/spamoborona/):

- более не используется код из exiscan, реализующий работу с 
проверяемыми файлами в /var/spool/exim/scan;

- оптимизирована работа с файлами (минимизировано кол-во операций записи 
во временный файл при использовании UNIX domain socket за счет буферизации);

- по аналогии с local_scan функцией из состава самой spamoborona 
делаются повторные попытки установки соединения с демоном, если 
предыдущие окончились неудачно;

- демону spamoborona теперь передаются поля заголовков, добавленные в 
acl_smtp_data и не передаются поля заголовков, удаленные в acl_smtp_data 
конструкцией remove_header, для использования которой нужно пересобрать 
exim с патчем
http://mta.org.ua/exim-4.64-conf/patches/exim-4.67-remove_header/patch-src::remove_header.patch
т. к. я уже принял решение в паровозе все переименования полей 
заголовков проводить при помощи remove_header и add_header, новая dlfunc 
собирается по умолчанию с поддержкой remove_header. тем, кто будет 
собирать dlfunc отдельно от паровоза и не будет пересобирать exim с 
patch-src::remove_header.patch, необходимо перед пересборкой dlfunc 
закомментировать в файле spamoborona2.c строку
#define WITH_EXPERIMENTAL_REMOVE_HEADER

- ну и наконец реализована работа с демоном spamoborona через TCP сокет 
(кстати, на сколько видно из кода штатной local_scan фукнции, она не 
должна собираться, там ошибки есть, однако)


кроме последнего отличия остальные критичны и для тех, кто будет 
использовать новую функцию для работы с spamoborona ветки 1.x (прежде 
всего я имею ввиду Вадима).

по сравнению с local_scan функцией из коробки новая версия dlfunc при 
работе через TCP сокет не использует работу с временным файлом, 
записывая данные напрямую в сокет.
ну и я уже упоминал об исправлении ошибок при работе через TCP сокет 
(кстати, надо будет попробовать собрать exim с штатной local_scan функцией).

зато для local_scan функции не критично отличие в работе с добавленными 
и удаленными полями заголовков, т. к. при штатной схеме работы 
local_scan exim и так передавал фукнции все поля (вернее, добавленные в 
acl_smtp_data поля уже находились в связном списке header_list, из 
которого копирует значения полей local_scan фукнция и мои dlfunc).

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




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