Also note that xxfi_abort() is called only if the envelope is ended outside the control of
your Milter (as by another Milter). If your Milter formally gives up control by returning
SMFIS_ACCEPT, SMFIS_REJECT, or SMFIS_DISCARD from within one of your xxfi_ envelopespecific
functions, your Milter will not have this xxfi_abort() called.
26.6.2 Milter xxfi_body()
Review a chunk of message body All Milter versions
The message body follows the headers. Thus, xxfi_eoh() (?§26.6.8 on page 1214), if used,
will be called before the first call to xxfi_body(). Because the message body may be huge,
xxfi_body() might reasonably be called multiple times for a given body and is passed a
chunk of the body each time. After all the body chunks have been passed, xxfi_eom()
(?§26.6.9 on page 1215), if used, will be called to signal the end of body chunks.
The xxfi_body() function is called like this:
sfsistat
xxfi_body(SMFICTX *ctx, unsigned char *bodyp, size_t len)
Here, ctx is the context pointer passed to all xxfi_ functions to maintain state in a multithreaded
environment. The bodyp is a pointer to a buffer that contains len bytes of body.
Although bodyp is of type char *, it is not a string and must not be treated as a string (that
is, you must not depend on it being zero-terminated).*
List xxfi_body() in smfiDesc only if you need to process the body.
Pages:
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174