[Dovecot] LTMP Proxy fails when backend server connection refused

Jack Bates jbates at brightok.net
Fri Sep 28 19:37:50 EEST 2012


On 9/27/2012 3:30 PM, Jack Bates wrote:
> Version: 2.1.9
>
> Connecting directly to the proxy server on the LMTP port, issue lhlo, 
> mail from, rcpt to, data. After the . closing of data, it just hangs 
> there. The logs on the proxy server show:
>

Looking at dovecot's proxy code.

Calls to connect_connect_ip do not return an error when the server isn't 
there. This may be expected, but it is what determines failure/OK in the 
LMTP code. The log entry is performed by lmtp_client_wait_connect callback.

In the standard client-common-auth.c code, the error returned for a 
failure is

1) syslog error is reported by proxy_wait_connect() callback
2) error to client is returned by an error in proxy_input()

In the lmtp code, we issue a "250 2.1.5 OK". Right after, the 
lmtp_client_wait_connect() callback is called and issues the connection 
refused error. However, we've already approved the rcpt.

I am not sure which method we really want in the lmtp proxy. Should it 
be failing at the initial rcpt command or after the data command. 
Currently, though I haven't checked yet, we don't appear to be detecting 
the input failure and handling the data command correctly since we've 
already allowed the rcpt to proceed without a backend proxy available.


Jack



More information about the dovecot mailing list