26 февраля 2012 г. 0:54 пользователь Victor Ustugov <[email protected]> написал: > Алексей Киреев wrote: >> Методом тыка понял, кто виновник: это опция (к ней нет никаких комментарев в >> Makefile): >> CFLAGS += -fvisibility=hidden >> >> Собрал exim4.77 на CentOS 5.5, не сразу, но добился работы exim-dlfunc.so и >> начал изучать различие в флагах компиляции. Оказывается, в EXTRALIBS можно >> ничего не писать, т.к. -ldl и -rdynamic (которого достаточно, т.е. не нужен >> флаг -export-dynamic) - эти флаги берутся из опций линковщика, которые >> выставляет perl (в конце набора параметров компиляции), примерно так: >> >> gcc -o exim acl.o child.o crypt16.o daemon.o dbfn.o debug.o deliver.o >> directory.o dns.o drtables.o enq.o exim.o expand.o filter.o filtertest.o >> globals.o dkim.o header.o host.o ip.o log.o lss.o match.o moan.o os.o >> parse.o queue.o rda.o readconf.o receive.o retry.o rewrite.o rfc2047.o >> route.o search.o sieve.o smtp_in.o smtp_out.o spool_in.o spool_out.o store.o >> string.o tls.o tod.o transport.o tree.o verify.o lookups/lf_quote.o >> lookups/lf_check_file.o lookups/lf_sqlperform.o local_scan.o perl.o >> malware.o mime.o regex.o spam.o spool_mbox.o demime.o bmi_spam.o spf.o srs.o >> dcc.o version.o \ >> routers/routers.a transports/transports.a lookups/lookups.a \ >> auths/auths.a pdkim/pdkim.a \ >> -lresolv -lnsl -lcrypt -lm -lpam -ldl \ >> -ldb -lldap -llber -lmysqlclient -lpq -lsqlite3 -lsasl2 \ >> -Wl,-E -fstack-protector -L/usr/local/lib >> -L/usr/lib/perl/5.14/CORE -lperl -ldl -lm -lpthread -lc -lcrypt -lgnutls >> -lpcre -rdynamic >> >> В последней строке - опции для perl, там -rdynamic. Возможно это и есть >> ответ на вопрос, почему без компиляции perl не видны символы >> acl_added_headers. > > на сколько я понимаю, при сборке с поддержкой perl в таком случае > используется значение из CFLAGS_DYNAMIC > > и получается, что при сборке с поддержкой dlfunc без поддержки зукд > нужно просто добавить -rdynamic в EXTRALIBS > > >>> я год назад пытался найти зависимость от сборки с поддержкой и без >>> поддержки perl и выводом сообщения об ошибке "Undefined symbol >>> "acl_added_headers"" - безуспешно. >> >> >> В CentOS символ acl_added_headers виден глобально (второе поле - g): >> objdump -t /usr/sbin/exim|grep acl_added >> 0812b05c g O .bss 00000004 acl_added_headers >> >> В Debian, когда не работала exim-dlfunc.so этот символ был виден локально >> (второе поле - l): >> objdump -t /usr/sbin/exim4.bad |grep acl_added >> 081267ec l O .bss 00000004 acl_added_headers >> >> Причём проверять надо бинарник без strip, иначе "SYMBOL TABLE: no symbol" > > ясно > >>> при этом strings `which exim` | grep acl_removed_headers выдавало пустую >>> строку или acl_removed_headers? >>> >> Сейчас strings `which exim` | grep acl_added_headers >> выдаёт acl_added_headers >> >> acl_removed_headers - я сейчас не патчил с этим функционалом. Вообще, он >> нужен или можно без него нормально работать? > > можно работать без него. просто я много использую удаление полей > заголовок в acl. делаю это с помощью патча, который когда-то > опубликовали в exim-dev, но который не включили в релиз. > > при этом если не учитывать удаление полей заголовков при проверке писем > контент сканерами, могут сработать правила контент сканеров на тех полях > заголовокв, которых не будет в доставленном письме. что может вызвать > некоторую путаницу. > >> Так же заметил, что у Вас на сайте на главной странице ссылка >> http://mta.org.ua/exim-4.76-conf/ (Паровоз (конфигуратор для exim 4.70 и >> выше):) ведёт на http://mta.org.ua/exim-4.69-conf/. > > поправил > >> Аналогично и с другой ссылкой - "Паровоз (конфигуратор для exim 4.67 и >> выше):". Похоже из-за этого я взял файл kas3.c из 4.69. > > поправил > > на самом деле в самой dlfunc ничего не поменялось, кроме упрощения > сборки ее без учета использования патча для удаления полей заголовков в acl > >> Спасибо Вам и Лене за помощь. И спасибо за kas3.c - наконец то получилось >> прикрутить нормально kas к exim. > > спасибо из пинок в сторону -rdynamic > > а касперы потихоньку поворачиваются лицом к более функциональным методам > интеграции контент сканеров и антивирусов с exim. > в KAV 5.6 штатно включена их dlfunc. > > среди нас тут есть тот, кто к этому руку приложил ощутимо. > даже наверное две :) Вы так убедительно пишете (в хорошем смысле), что я прям воочию увидел как он уже готов и ногой приложиться :)
>> При local_scan я не мог на этапе получения сообщения своими условиями >> отвергнуть сообщение. Ну а метод интеграции с kas-pipe вообще не понравился. > > поэтому я в свое время и стал испльзовать dlfunc. > > а если использовать одновременно dlfunc для интеграции exim с DSPAM и > dlfunc для интеграции exim с KAS, при этом в KAS добавить правила для > оценки полей, добавленных самим DSPAM, то можно получить KAS с неплохим > статистическим фильтром, чего у него самого изначально нет. > > -- > Best wishes Victor Ustugov mailto:[email protected] > public GnuPG/PGP key: http://victor.corvax.kiev.ua/corvax.asc > ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC > > _______________________________________________ > Exim-users mailing list > [email protected] > http://mailground.net/mailman/listinfo/exim-users > -- Sincerely yours, Oleg Kostyuk (CUB-UANIC) _______________________________________________ Exim-users mailing list [email protected] http://mailground.net/mailman/listinfo/exim-users
