unsigned char *bodyp,
Handle a piece of a message's body.
||xxfi_body is called zero or more times between xxfi_eoh and
||Do nothing; return SMFIS_CONTINUE.
||Opaque context structure.
||Pointer to the start of this block of body data. bodyp is not
valid outside this call to xxfi_body.
||The amount of data pointed to by bodyp.
- bodyp points to a sequence of bytes. It is not a C
string (a sequence of characters that is terminated by '\0').
Therefore, do not use the usual C string functions like
strlen(3) on this byte block. Moreover, the byte
sequence may contain '\0' characters inside the block. Hence even
if a trailing '\0' is added, C string functions may still fail to
work as expected.
- Since message bodies can be very large, defining xxfi_body can
significantly impact filter performance.
- End-of-lines are represented as received from SMTP (normally
- Later filters will see body changes made by earlier ones.
- Message bodies may be sent in multiple chunks, with one call to
xxfi_body per chunk.
- Return SMFIS_SKIP if a milter
has received sufficiently many body chunks to make a decision, but
still wants to invoke message modification functions that are only
allowed to be called from xxfi_eom().
Note: the milter must negotiate this behavior with the MTA,
i.e., it must check whether the protocol action
available and if so, the milter must request it.