Includes build infrastructure & config updates required for changes in 8.16.1 MFC after: 5 days
226 lines
6.0 KiB
HTML
226 lines
6.0 KiB
HTML
<HTML>
|
|
<HEAD><TITLE>smfi_register</TITLE></HEAD>
|
|
<BODY>
|
|
<!--
|
|
$Id: smfi_register.html,v 1.19 2013-11-22 20:51:39 ca Exp $
|
|
-->
|
|
<H1>smfi_register</H1>
|
|
|
|
<TABLE border="0" cellspacing=4 cellpadding=4>
|
|
<!---------- Synopsis ----------->
|
|
<TR><TH valign="top" align=left width=100>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 (successful) calls to smfi_register within a
|
|
single process are not allowed,
|
|
i.e., only one filter can be successfully registered.
|
|
Note, however, that the library may not check whether this restriction
|
|
is obeyed.
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
</TD></TR>
|
|
|
|
<!----------- 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.
|
|
<A NAME="smfiDesc">The structure</A> 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 *);
|
|
|
|
/* any unrecognized or unimplemented command filter */
|
|
sfsistat (*xxfi_unknown)(SMFICTX *, const char *);
|
|
|
|
/* SMTP DATA command filter */
|
|
sfsistat (*xxfi_data)(SMFICTX *);
|
|
|
|
/* negotiation callback */
|
|
sfsistat (*<A HREF="xxfi_negotiate.html">xxfi_negotiate</A>)(SMFICTX *,
|
|
unsigned long, unsigned long, unsigned long, unsigned long,
|
|
unsigned long *, unsigned long *, unsigned long *, unsigned long *);
|
|
};
|
|
</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><A NAME=Notes>NOTES</A></TH>
|
|
<TD>
|
|
|
|
<A NAME="flags">The xxfi_flags</A>
|
|
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>
|
|
<A NAME="SMFIF_ADDHDRS">SMFIF_ADDHDRS</A>
|
|
</TD>
|
|
<TD>
|
|
This filter may <A HREF="smfi_addheader.html">add headers</A>.
|
|
</TD>
|
|
</TR>
|
|
<TR align="left" valign=top>
|
|
<TD>
|
|
<A NAME="SMFIF_CHGHDRS">SMFIF_CHGHDRS</A>
|
|
</TD>
|
|
<TD>
|
|
This filter may
|
|
<A HREF="smfi_chgheader.html">change and/or delete headers</A>.
|
|
</TD>
|
|
</TR>
|
|
<TR align="left" valign=top>
|
|
<TD VALIGN="TOP">
|
|
<A NAME="SMFIF_CHGBODY">SMFIF_CHGBODY</A>
|
|
</TD>
|
|
<TD>
|
|
This filter may
|
|
<A HREF="smfi_replacebody.html">replace the body</A> during filtering.
|
|
This may have significant performance impact
|
|
if other filters do body filtering after this filter.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="TOP">
|
|
<A NAME="SMFIF_ADDRCPT">SMFIF_ADDRCPT</A>
|
|
</TD>
|
|
<TD>
|
|
This filter may
|
|
<A HREF="smfi_addrcpt.html">add recipients</A>
|
|
to the message.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="TOP">
|
|
<A NAME="SMFIF_ADDRCPT_PAR">SMFIF_ADDRCPT_PAR</A>
|
|
</TD>
|
|
<TD>
|
|
This filter may
|
|
<A HREF="smfi_addrcpt_par.html">add recipients including ESMTP args</A>.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="TOP">
|
|
<A NAME="SMFIF_DELRCPT">SMFIF_DELRCPT</A>
|
|
</TD>
|
|
<TD>
|
|
This filter may
|
|
<A HREF="smfi_delrcpt.html">remove recipients</A> from the message.
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="TOP">
|
|
<A NAME="SMFIF_QUARANTINE">SMFIF_QUARANTINE</A>
|
|
</TD>
|
|
<TD>
|
|
This filter may
|
|
<A HREF="smfi_quarantine.html">quarantine</A> a message.
|
|
</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="TOP">
|
|
<A NAME="SMFIF_CHGFROM">SMFIF_CHGFROM</A>
|
|
</TD>
|
|
<TD>
|
|
This filter may
|
|
<A HREF="smfi_chgfrom.html">change the envelope sender</A> (MAIL).
|
|
</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD VALIGN="TOP">
|
|
<A NAME="SMFIF_SETSYMLIST">SMFIF_SETSYMLIST</A>
|
|
</TD>
|
|
<TD>
|
|
This filter can
|
|
<A HREF="smfi_setsymlist.html">send a set of symbols (macros)</A>
|
|
that it wants.
|
|
</TD>
|
|
</TR>
|
|
|
|
</TABLE>
|
|
|
|
</TD>
|
|
</TR>
|
|
|
|
</TABLE>
|
|
|
|
<HR size="1">
|
|
<FONT size="-1">
|
|
Copyright (c) 2000-2001, 2003, 2006 Proofpoint, 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>
|