From: Kouhei Sutou on
Hi,

Postfix 2.7.0 supports milter protocol 2, 3, 4 and
6. Postfix with milter_protocol=6 accepts a connection from
a milter that uses milter protocol 2. But its milter session
is broken because Postfix sends SMFIC_DATA event to the
milter. In milter protocol 2, SMFIC_DATA isn't supported. So
the connected milter can't reply SMFIC_DATA request. Postfix
logs the following warning message on the case:

Mar 20 10:25:09 mail postfix/smtpd[70678]: warning: milter inet:localhost:20025: can't read SMFIC_DATA reply packet header: Unknown error: 0

Here is a work flow on the case:

SMTP Postfix milter
(protocol 6) (protocol 2)
telnet localhost smtp -->
negotiate -->
(protocol 6)
<-- negotiate reply
(protocol 2)
accept
connect -->
<-- connect reply
<-- 220
EHLO -->
helo -->
<-- helo reply
<-- 250
MAIL FROM -->
mail -->
<-- mail reply
<-- 250
RCPT TO -->
rcpt -->
<-- rcpt reply
<-- 250
DATA -->
data -->
UNKNOWN REQUEST
close connection
can't read
SMFIC_DATA reply
packet header:
Unknown error: 0

I'll attach a patch to fix it. Postfix doesn't send
any SMFIC_DATA to protocol 2 milter with the patch.


Thanks,
--
kou