I have a curious problem with exim-4.30 on an Alpha
running Tru64 V5.1B. Apart from the build-error below
(which is fixed by adding the line:
typedef int socklen_t;
to exim.h)
=========================================================================
cc -c -O -I. -I/usr/local/ssl/include/openssl/ daemon.c
cc: Error: daemon.c, line 144: In this declaration, "socklen_t" must specify a type. (badparsedecl)
socklen_t ifsize = sizeof(interface_sockaddr);
^
cc: Error: daemon.c, line 1391: In this declaration, "socklen_t" must specify a type. (badparsedecl)
socklen_t len = sizeof(accepted);
--^
cc: Error: daemon.c, line 320: In this statement, "ifsize" is not declared. (undeclared)
&ifsize) < 0)
------^
cc: Error: daemon.c, line 1528: In this statement, "len" is not declared. (undeclared)
(struct sockaddr *)&accepted, &len);
---------------------------------------------^
=========================================================================
I also get a configfile error at startup. The program is built with
the appropriate TLS options enabled, but when it starts, it complains
about tls_option lines:
# /local/src/exim/exim-4.30-TLS/build-OSF1-alpha/exim -bdf -q1h -C /local/src/exim/exim-4.30-TLS/configure
2004-04-06 18:13:58 Exim configuration error in line 10 of /local/src/exim/exim-4.30-TLS/configure:
main option "tls_advertise_hosts" unknown
and yet still offers STARTTLS at the SMTP EHLO command:
alf1_tsh> telnet alf1 26
Trying 10.1.0.1...
Connected to alf1.lmb.internal.
Escape character is '^]'.
220 alf1.lmb.internal ESMTP Exim 4.30 Tue, 06 Apr 2004 18:16:30 +0100
EHLO alf1
250-alf1.lmb.internal Hello alf1.lmb.internal [10.1.0.1]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
Head of config file:
--------------------
#for testing
daemon_smtp_port = 26
gecos_pattern = ^([^,]*)
gecos_name = $1
###log_file_path = syslog
log_file_path = /usr/local/exim/test/log/exim_%slog
tls_advertise_hosts = *
auth_advertise_hosts = *
#auth_advertise_hosts = ! *.mrc-lmb.cam.ac.uk : ! *.lmb.internal
#tls_advertise_hosts = ! *.mrc-lmb.cam.ac.uk : ! *.lmb.internal
#tls_certificate = /usr/local/src/stunnel/stunnel-4.04/tools/stunnel.pem
######################################################################
# Runtime configuration file for Exim #
######################################################################
TLS section of Makefile
-----------------------
#------------------------------------------------------------------------------
# Exim can be built to support the SMTP STARTTLS command, which implements
# Transport Layer Security using SSL (Secure Sockets Layer). To do this, you
# must install the OpenSSL library package or the GnuTLS library. Exim contains
# no cryptographic code of its own. Uncomment the following lines if you want
# to build Exim with TLS support. If you don't know what this is all about,
# leave these settings commented out.
# This setting is required for any TLS support (either OpenSSL or GnuTLS)
SUPPORT_TLS=yes
# Uncomment this setting if you are using OpenSSL
TLS_LIBS=-lssl -lcrypto
# Uncomment these settings if you are using GnuTLS
# USE_GNUTLS=yes
# TLS_LIBS=-lgnutls -ltasn1 -lgcrypt
# If you are running Exim as a server, note that just building it with TLS
# support is not all you need to do. You also need to set up a suitable
# certificate, and tell Exim about it by means of the tls_certificate
# and tls_privatekey run time options. You also need to set tls_advertise_hosts
# to specify the hosts to which Exim advertises TLS support. On the other hand,
# if you are running Exim only as a client, building it with TLS support
# is all you need to do.
# Additional libraries and include files are required for both OpenSSL and
# GnuTLS. The TLS_LIBS settings above assume that the libraries are installed
# with all your other libraries. If they are in a special directory, you may
# need something like
# TLS_LIBS=-L/usr/local/openssl/lib -lssl -lcrypto
TLS_LIBS=-L/usr/local/ssl/lib -lssl -lcrypto
# or
# TLS_LIBS=-L/opt/gnu/lib -lgnutls -ltasn1 -lgcrypt
# TLS_LIBS is included only on the command for linking Exim itself, not on any
# auxiliary programs. If the include files are not in a standard place, you can
# set TLS_INCLUDE to specify where they are, for example:
TLS_INCLUDE=-I/usr/local/ssl/include/openssl/
# TLS_INCLUDE=-I/usr/local/openssl/include/
# or
# TLS_INCLUDE=-I/opt/gnu/include
# You don't need to set TLS_INCLUDE if the relevant directories are already
# specified in INCLUDE.
#------------------------------------------------------------------------------
Its bound to be something ridiculously simple, but I cant see it.
Please put me out of my misery.
Thanks,
Terry.