Courier 0.27 works fine for me, but I've done a clean install of 0.29.0,
and now connections to couriers' ports (esmtpd or imapd) close
immediately. Courier was built using 'rpm -ta courier....'. Judging from
strace (and ltrace), I'd guess that couriertcpd is closing the socket
after calling rfc1035_sockaddrip or rfc1035_sockaddrport. Has anything
significant changed in tcpd or rfc1035 code since 0.27? I'll probably
recompile with debugging and run this through gdb tomorrow, I'm pretty
tired right now :)
I thought I'd ask to try and save myself the trouble of debugging this.
[root@ascension]~ # strace -p 15005
accept(5, {sin_family=AF_INET6, sin6_port=htons(3810), inet_pton(AF_INET6,
"::ffff:127.0.0.1", &sin6_addr), sin6_flowinfo=htonl(0)}}, [24]) = 4
close(4) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], [CHLD], 8) = 0
accept(5, <unfinished ...>
[root@ascension]~ # ltrace -S -p 15005
SYS_socketcall(5, 0xbffff800, 0xbffff870, 0xbffff85c, 128) = 4
close(4 <unfinished ...>
SYS_close(4) = 0
<... close resumed> ) = 0
sigblock(65536, 0xbffff870, 0xbffff908, 0x0804ad77, 4 <unfinished ...>
SYS_rt_sigprocmask(0, 0xbffff770, 0xbffff6f0, 8, 0) = 0
<... sigblock resumed> ) = 0
sigsetmask(0, 24, 0xbffff908, 0x0804ab65, 0xbffff858 <unfinished ...>
SYS_rt_sigprocmask(2, 0xbffff780, 0xbffff700, 8, 2) = 0
<... sigsetmask resumed> ) = 65536
accept(5, 0xbffff870, 0xbffff85c, 0xbffff870, 0x080545a0 <unfinished ...>
SYS_socketcall(5, 0xbffff800, 0xbffff870, 0xbffff85c, 128