164 lines
4.4 KiB
HTML
164 lines
4.4 KiB
HTML
<html>
|
|
<head><title>smfi_register</title></head>
|
|
<body>
|
|
<!--
|
|
$Id: smfi_register.html,v 1.11 2003/05/26 04:10:52 gshapiro Exp $
|
|
-->
|
|
<h1>smfi_register</h1>
|
|
|
|
<table border="0" cellspacing=4 cellpadding=4>
|
|
<!---------- Synopsis ----------->
|
|
<tr><th valign="top" align=left width=150>SYNOPSIS</th><td>
|
|
<pre>
|
|
#include <libmilter/mfapi.h>
|
|
int smfi_register(
|
|
smfiDesc descr
|
|
);
|
|
</pre>
|
|
Register a set of filter callbacks.
|
|
</td></tr>
|
|
|
|
<!----------- Description ---------->
|
|
<tr><th valign="top" align=left>DESCRIPTION</th><td>
|
|
<table border="1" cellspacing=1 cellpadding=1>
|
|
<tr align="left" valign=top>
|
|
<th width="80">Called When</th>
|
|
<td>smfi_register must be called before smfi_main</td>
|
|
</tr>
|
|
<tr align="left" valign=top>
|
|
<th width="80">Effects</th>
|
|
<td>smfi_register creates a filter using the information given in the
|
|
smfiDesc argument. Multiple calls to smfi_register within a
|
|
single process are not allowed.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<!----------- Arguments ---------->
|
|
<tr><th valign="top" align=left>ARGUMENTS</th><td>
|
|
<table border="1" cellspacing=0>
|
|
<tr bgcolor="#dddddd"><th>Argument</th><th>Description</th></tr>
|
|
<tr valign="top"><td>descr</td>
|
|
<td>
|
|
A filter descriptor of type smfiDesc describing the filter's
|
|
functions. The structure has the following members:
|
|
<pre>
|
|
struct smfiDesc
|
|
{
|
|
char *xxfi_name; /* filter name */
|
|
int xxfi_version; /* version code -- do not change */
|
|
unsigned long xxfi_flags; /* <a href="#flags">flags</a> */
|
|
|
|
/* connection info filter */
|
|
sfsistat (*<a href="xxfi_connect.html">xxfi_connect</a>)(SMFICTX *, char *, _SOCK_ADDR *);
|
|
/* SMTP HELO command filter */
|
|
sfsistat (*<a href="xxfi_helo.html">xxfi_helo</a>)(SMFICTX *, char *);
|
|
/* envelope sender filter */
|
|
sfsistat (*<a href="xxfi_envfrom.html">xxfi_envfrom</a>)(SMFICTX *, char **);
|
|
/* envelope recipient filter */
|
|
sfsistat (*<a href="xxfi_envrcpt.html">xxfi_envrcpt</a>)(SMFICTX *, char **);
|
|
/* header filter */
|
|
sfsistat (*<a href="xxfi_header.html">xxfi_header</a>)(SMFICTX *, char *, char *);
|
|
/* end of header */
|
|
sfsistat (*<a href="xxfi_eoh.html">xxfi_eoh</a>)(SMFICTX *);
|
|
/* body block */
|
|
sfsistat (*<a href="xxfi_body.html">xxfi_body</a>)(SMFICTX *, unsigned char *, size_t);
|
|
/* end of message */
|
|
sfsistat (*<a href="xxfi_eom.html">xxfi_eom</a>)(SMFICTX *);
|
|
/* message aborted */
|
|
sfsistat (*<a href="xxfi_abort.html">xxfi_abort</a>)(SMFICTX *);
|
|
/* connection cleanup */
|
|
sfsistat (*<a href="xxfi_close.html">xxfi_close</a>)(SMFICTX *);
|
|
};
|
|
</pre>
|
|
|
|
A NULL value for any callback function indicates that the filter does
|
|
not wish to process the given type of information, simply returning
|
|
SMFIS_CONTINUE.
|
|
</td></tr>
|
|
</table>
|
|
</td></tr>
|
|
|
|
<!----------- Return values ---------->
|
|
<tr>
|
|
<th valign="top" align=left>RETURN VALUES</th>
|
|
|
|
<td>
|
|
smfi_register may return MI_FAILURE for any of the following reasons:
|
|
<ul>
|
|
<li>memory allocation failed.
|
|
<li>incompatible version or illegal flags value.
|
|
</ul>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
<!----------- Notes ---------->
|
|
<tr align="left" valign=top>
|
|
<th>NOTES</th>
|
|
<td>
|
|
|
|
<a name="flags"></A>
|
|
The xxfi_flags field should contain the bitwise OR of zero or more of
|
|
the following values, describing the actions the filter may take:
|
|
<TABLE BORDER CELLPADDING="1" cellspacing=1>
|
|
<tr valign="top" bgcolor="#dddddd"><th align="left">Flag</th><th align="center">Description</th></tr>
|
|
<TR align="left" valign=top>
|
|
<TD>
|
|
SMFIF_ADDHDRS
|
|
</TD>
|
|
<TD>
|
|
This filter may add headers.
|
|
</TD>
|
|
</TR>
|
|
<TR align="left" valign=top>
|
|
<TD>
|
|
SMFIF_CHGHDRS
|
|
</TD>
|
|
<TD>
|
|
This filter may change and/or delete headers.
|
|
</TD>
|
|
</TR>
|
|
<TR align="left" valign=top>
|
|
<TD VALIGN="TOP">
|
|
SMFIF_CHGBODY
|
|
</TD>
|
|
<TD>
|
|
This filter may replace the body during filtering.
|
|
This may have significant performance impact
|
|
if other filters do body filtering after this filter.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="TOP">
|
|
SMFIF_ADDRCPT
|
|
</TD>
|
|
<TD>
|
|
This filter may add recipients to the message.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="TOP">
|
|
SMFIF_DELRCPT
|
|
</TD>
|
|
<TD>
|
|
This filter may remove recipients from the message.
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<hr size="1">
|
|
<font size="-1">
|
|
Copyright (c) 2000-2001, 2003 Sendmail, Inc. and its suppliers.
|
|
All rights reserved.
|
|
<br>
|
|
By using this file, you agree to the terms and conditions set
|
|
forth in the LICENSE.
|
|
</font>
|
|
</body>
|
|
</html>
|