Страница 1 из 1

не собирается Exim с поддржкой TLS

Добавлено: 2007-03-23 15:01:41
ave
что то не ладное в датском королевстве, в смысле с Exim-ом, творится

сперва новый Exim 4.66 категорически не захотел собираться,
ругаясь на некие неопознанные функции NIS
пришлось пересобирать с опцией WITHOUT_NIS

недавно обновилась openssl (9.7e), пробую пересобрать ехим, вылетают ошибки:

cc tls.c
In file included from tls.c:86:
tls-openssl.c: In function `tls_init':
tls-openssl.c:346: error: wrong type argument to unary exclamation mark
*** Error code 1

пересобираю с опцией WITHOUT_TLS, все проходит

сразу скажу - дело именно в новой версии openssl, на второй машине, где порты не успели обновиться, все собирается как надо.

NIS меня не трогает, но вот без TLS как то не хочется

Добавлено: 2007-03-23 20:12:41
ave
>
>cc tls.c
>In file included from tls.c:86:
>tls-openssl.c: In function `tls_init':
>tls-openssl.c:346: error: wrong type argument to unary exclamation mark
>*** Error code 1

в 346-ой строке tls-openssl.c мы видим

if (!(SSL_CTX_set_info_callback(ctx, (void (*)())info_callback)))
return tls_error(US"SSL_CTX_set_info_callback", host);

если это условие закомментировать, exim соберется (и на первый взгляд даже работает:-)
но наверное это не совсем правильно будет.

в openssl 0.9.8d функция SSL_CTX_set_info_callback отсутствует,
а в 0.9.8е - есть (в файле ssl_sess.c:803)

void SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*cb)(const SSL *ssl,int type,int val))
{ ctx->info_callback=cb; }

ясно, что в ехиме эта функция вызывается с ошибкой, но где собака порыта, не вижу
может кто из знатоков С укажет.

Добавлено: 2007-03-23 23:08:36
Alex Keda
не очень знаком с сями, но не лишняя ли пара скобок?
Попробуй так:

Код: Выделить всё

if (!SSL_CTX_set_info_callback(ctx, (void (*)())info_callback))
return tls_error(US"SSL_CTX_set_info_callback", host); 

Добавлено: 2007-03-25 16:05:14
ave
тема прикрыта, смотреть http://www.opennet.ru/openforum/vsluhfo ... 73080.html