From postfix-users Fri Aug 16 13:50:45 2019 From: Wietse Venema Date: Fri, 16 Aug 2019 13:50:45 +0000 To: postfix-users Subject: Re: postfix milter body chunk length Message-Id: <4694Td0s4SzJrNt () spike ! porcupine ! org> X-MARC-Message: https://marc.info/?l=postfix-users&m=156596350932260 Viktor Dukhovni: > > On Aug 16, 2019, at 10:33 PM, Matthias Schneider wrote: > > > > I was wondering why the transfer of a 100mb mail to my milter application was slow, i found the bottleneck in the body chunk transfer. > > > > The maximum packet length seems to be fixed to 64k, it would be great if we could make that configurable in postfix (uint32 is possible). > > https://github.com/avar/sendmail-pmilter/blob/master/doc/milter-protocol.txt#L182-L213 > > http://ftp.sendmail.org/KNOWNBUGS > > * milter communication fails if a single header is larger than 64K. > > If a single header is larger than 64KB (which is not possible in the > default configuration) then it cannot be transferred in one block to > libmilter and hence the communication fails. This can be avoided by > increasing the constant MILTER_CHUNK_SIZE in > include/libmilter/mfdef.h and recompiling sendmail, libmilter, and > all (statically linked) milters (or by using undocumented compile > time options: _FFR_MAXDATASIZE/_FFR_MDS_NEGOTIATE; you have to > read the source code in order to use these properly). On the Postfix side, edit src/milter/milter8.c and update its MILTER_CHUNK_SIZE definition accordingly. It's only compile-time configurable in Postfix, because it's only compile-time configurable in libmilter. Wietse