Index: Sendmail-PMilter-1.00/lib/Sendmail/PMilter/Context.pm --- Sendmail-PMilter-1.00/lib/Sendmail/PMilter/Context.pm.orig 2009-02-24 00:38:20 +0100 +++ Sendmail-PMilter-1.00/lib/Sendmail/PMilter/Context.pm 2009-07-05 20:09:37 +0200 @@ -200,6 +200,8 @@ $this->call_hooks('abort'); } elsif ($cmd eq SMFIC_BODY) { $this->call_hooks('body', $buf, length($buf)); + } elsif ($cmd eq SMFIC_DATA) { + $this->call_hooks('data', $buf, length($buf)); } elsif ($cmd eq SMFIC_CONNECT) { # Perl RE doesn't like matching multiple \0 instances. # To avoid problems, we slice the string to the first null, @@ -245,6 +247,12 @@ $this->{symbols}{$code}{$name} = $value; } } elsif ($cmd eq SMFIC_BODYEOB) { + # SMFIC_BODYEOB is a single MILTER protocol + # command, but is carries two MILTER API + # semantics and hence (also closely following + # Sendmail's libmilter) we have to call both + # the MILTER API 'body' and 'eom' callbacks! + $this->call_hooks('body', $buf, length($buf)) if (length($buf) > 0); $this->call_hooks('eom'); } elsif ($cmd eq SMFIC_HELO) { my $helo = &$split_buf; Index: sendmail-8.17.1/include/libmilter/mfapi.h --- sendmail-8.17.1/include/libmilter/mfapi.h.orig 2008-02-27 23:30:34 +0100 +++ sendmail-8.17.1/include/libmilter/mfapi.h 2009-07-05 20:08:58 +0200 @@ -28,7 +28,7 @@ # include # include -#include "libmilter/mfdef.h" +#include "milter/mfdef.h" # define LIBMILTER_API extern Index: sendmail-8.17.1/include/libmilter/milter.h --- sendmail-8.17.1/include/libmilter/milter.h.orig 2006-05-23 01:23:55 +0200 +++ sendmail-8.17.1/include/libmilter/milter.h 2009-07-05 20:08:58 +0200 @@ -18,7 +18,7 @@ # define _LIBMILTER_MILTER_H 1 #include "sendmail.h" -#include "libmilter/mfapi.h" +#include "milter/mfapi.h" /* socket and thread portability */ # include