xxfi_body.html revision 112810
190792Sgshapiro<html>
290792Sgshapiro<head><title>xxfi_body</title></head>
390792Sgshapiro<body>
490792Sgshapiro<h1>xxfi_body</h1>
590792Sgshapiro
690792Sgshapiro<table border="0" cellspacing=4 cellpadding=4>
790792Sgshapiro<!---------- Synopsis ----------->
890792Sgshapiro<tr><th valign="top" align=left width=150>SYNOPSIS</th><td>
990792Sgshapiro<pre>
1090792Sgshapiro#include &lt;libmilter/mfapi.h&gt;
1190792Sgshapirosfsistat (*xxfi_body)(
1290792Sgshapiro	SMFICTX * ctx,
1390792Sgshapiro	unsigned char * bodyp,
1490792Sgshapiro	size_t len
1590792Sgshapiro);
1690792Sgshapiro</pre>
1790792SgshapiroHandle a piece of a message's body.
1890792Sgshapiro</td></tr>
1990792Sgshapiro
2090792Sgshapiro<!----------- Description ---------->
2190792Sgshapiro<tr><th valign="top" align=left>DESCRIPTION</th><td>
2290792Sgshapiro<table border="1" cellspacing=1 cellpadding=4>
2390792Sgshapiro<tr align="left" valign=top>
2490792Sgshapiro<th width="80">Called When</th>
2590792Sgshapiro<td>xxfi_body is called zero or more times between xxfi_eoh and xxfi_eom.</td>
2690792Sgshapiro</tr>
2790792Sgshapiro<tr align="left" valign=top>
2890792Sgshapiro<th>Default Behavior</th>
2990792Sgshapiro<td>Do nothing; return SMFIS_CONTINUE.</td>
3090792Sgshapiro</tr>
3190792Sgshapiro</table>
3290792Sgshapiro
3390792Sgshapiro<!----------- Arguments ---------->
3490792Sgshapiro<tr><th valign="top" align=left>ARGUMENTS</th><td>
3590792Sgshapiro    <table border="1" cellspacing=0>
3690792Sgshapiro    <tr bgcolor="#dddddd"><th>Argument</th><th>Description</th></tr>
3790792Sgshapiro    <tr valign="top"><td>ctx</td>
3890792Sgshapiro	<td>Opaque context structure.
3990792Sgshapiro	</td></tr>
4090792Sgshapiro    <tr valign="top"><td>bodyp</td>
4190792Sgshapiro	<td>Pointer to the start of this block of body data.  bodyp is not valid outside this call to xxfi_body.
4290792Sgshapiro	</td></tr>
4390792Sgshapiro    <tr valign="top"><td>len</td>
4490792Sgshapiro	<td>The amount of data pointed to by bodyp.
4590792Sgshapiro	</td></tr>
4690792Sgshapiro    </table>
4790792Sgshapiro</td></tr>
4890792Sgshapiro
4990792Sgshapiro<!----------- Notes ---------->
5090792Sgshapiro<tr>
5190792Sgshapiro<th valign="top" align=left>NOTES</th> 
5290792Sgshapiro<td>
5390792Sgshapiro<ul>
5490792Sgshapiro<li>bodyp points to a sequence of bytes.
5590792SgshapiroIt is <em>not</em> a C string (a sequence of characters that is terminated by '\0').
5690792SgshapiroTherefore, do not use the usual C string functions like strlen() on this byte block.
5790792SgshapiroMoreover, the byte sequence may contain '\0' characters inside the block.
5890792SgshapiroHence even if a trailing '\0' is added, C string functions may still fail
5990792Sgshapiroto work as expected.
6090792Sgshapiro<li>Since message bodies can be very large, defining xxfi_body can
6190792Sgshapirosignificantly impact filter performance.
6290792Sgshapiro<li>End-of-lines are represented as received from SMTP (normally CR/LF).
6390792Sgshapiro<li>Later filters will see body changes made by earlier ones.
6490792Sgshapiro<li>Message bodies may be sent in multiple chunks, with one call to 
6590792Sgshapiro    xxfi_body per chunk.
6690792Sgshapiro</ul>
6790792Sgshapiro</td>
6890792Sgshapiro</tr>
6990792Sgshapiro</table>
7090792Sgshapiro
7190792Sgshapiro<hr size="1">
7290792Sgshapiro<font size="-1">
73112810SgshapiroCopyright (c) 2000-2003 Sendmail, Inc. and its suppliers.
7490792SgshapiroAll rights reserved.
7590792Sgshapiro<br>
7690792SgshapiroBy using this file, you agree to the terms and conditions set
77112810Sgshapiroforth in the LICENSE.
7890792Sgshapiro</font>
7990792Sgshapiro</body>
8090792Sgshapiro</html>
81