приветствую
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