The smfi_replacebody() routine is called like this:
ret = smfi_replacebody(ctx, buf, len);
Here, ctx is the common context pointer that was passed to your xxfi_eom() function. The
buf is a pointer to the location in memory where your new message body is located, and
len is the size in bytes of the new body.
The returned value (the ret) will be MI_FAILURE if buf is NULL and len is greater than zero, or
if the SMFIF_CHGBODY flag was not set with smfi_register() (?§26.5.14 on page 1194) or if
there is a system error. If buf is NULL and len is zero, the body becomes empty.
The data in buf does not need to be zero-terminated (like a string) because the size is set
withth e len argument. Each line in the new body, however, must be terminated by a
carriage-return/newline combination (\r\n).
Note that the first time you call smfi_replacebody() for an envelope, the body is truncated
to zero length and the new body chunk replaces the old. Subsequent calls to smfi_
replacebody() for that same envelope append text to the new body without first truncating.
Also note that the body can be changed by other Milters too. Don??™t presume the current
Milter will be the only one to call smfi_replacebody(). Also don??™t presume the current
Milter will necessarily be given the original body untouched by other Milters.
26.5.16 Milter smfi_setbacklog()
Tune the size of the listen() queue V8.
Pages:
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154