Hi,
I've been having some problems with a new Exim installation, and
wondered if anyone could spare a moment to help.
I'm building on FreeBSD 4.3 with an SMP machine, Exim 3.33 with
OpenSSL/TLS and PostgreSQL support compiled in. Exim compiles
cleanly and works nicely as a detached daemon (called with
/usr/exim/bin/exim -bd). I am using a custom FreeBSD kernel with
no IPv6 support.
When I try telneting to port 25 from localhost, I get about a 10
second delay before Exim eventually sends its header. I am confused
about this as I've got a working DNS in place, and /etc/host.conf
(nsswitch.conf) is configured appropriately. Connecting to 127.0.0.1
or any local IP addresses gives me this problem, but if I connect
via any other internet IP address, Exim responds immediately.
I have an IP firewall running on the server, which has been tested
pretty thoroughly and should allow freedom to local users using
loopback interfaces to talk to Exim. If necessary I can provide more
details about the firewall.
Eventually I ran ktrace, to look at Exim's system calls . The section
below is just after Exim forked to respond to my telnet on
localhost 25. What does "connect -1 errno 36 Operation now in progress"
mean to anyone; is there something about this that suggests a problem
with the bind?
Hope this is a simple one. Cheers,
Michael
------------
Issued command: telnet localhost 25
Ktrace output after Exim forks:
<cut for brevity>
71111 exim CALL select(0x1,0xbfbff25c,0,0,0)
37486 exim RET fork 0
37486 exim CALL getsockname(0x1,0xbfbff1e0,0xbfbff188)
37486 exim RET getsockname 0
37486 exim CALL close(0)
37486 exim RET close 0
37486 exim CALL sigaction(0x14,0xbfbff12c,0xbfbff114)
37486 exim RET sigaction 0
37486 exim CALL getpeername(0x1,0xbfbff0b4,0xbfbff0b0)
37486 exim RET getpeername 0
37486 exim CALL getsockname(0x1,0xbfbff0c4,0xbfbff0b0)
37486 exim RET getsockname 0
37486 exim CALL socket(0x2,0x1,0)
37486 exim RET socket 0
37486 exim CALL fcntl(0,0x3,0)
37486 exim RET fcntl 2
37486 exim CALL fcntl(0,0x4,0x6)
37486 exim RET fcntl 0
37486 exim CALL setsockopt(0,0xffff,0x80,0xbfbfee8c,0x8)
37486 exim RET setsockopt 0
37486 exim CALL setsockopt(0,0xffff,0x4,0xbfbfee88,0x4)
37486 exim RET setsockopt 0
37486 exim CALL bind(0,0xbfbff024,0x10)
37486 exim RET bind 0
37486 exim CALL connect(0,0xbfbff014,0x10)
37486 exim RET connect -1 errno 36 Operation now in progress
37486 exim CALL
select(0x400,0xbfbfef94,0xbfbfef14,0xbfbfee94,0xbfbff06c)
37486 exim RET select 0
37486 exim CALL close(0)
37486 exim RET close 0
37486 exim CALL getsockopt(0x1,0,0x1,0xbfbff128,0xbfbff020)
37486 exim RET getsockopt 0
37486 exim CALL setsockopt(0x1,0xffff,0x8,0xbfbff01c,0x4)
37486 exim RET setsockopt 0
37486 exim CALL open(0x282e74fc,0,0x1b6)
37486 exim NAMI "/etc/hosts"
37486 exim RET open 0
37486 exim CALL fstat(0,0xbfbfede4)
37486 exim RET fstat 0
37486 exim CALL break(0x80de000)
37486 exim RET break 0
37486 exim CALL read(0,0x80dc000,0x2000)
<cut for brevity>