xref: /freebsd/contrib/sendmail/libmilter/docs/smfi_setsymlist.html (revision 59e2ff550c448126b988150ce800cdf73bb5103e)
1<HTML>
2<HEAD><TITLE>smfi_setsymlist</TITLE></HEAD>
3<BODY>
4<!--
5$Id: smfi_setsymlist.html,v 1.7 2013-11-22 20:51:39 ca Exp $
6-->
7<H1>smfi_setsymlist</H1>
8
9<TABLE border="0" cellspacing=4 cellpadding=4>
10<!---------- Synopsis ----------->
11<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD>
12<PRE>
13#include &lt;libmilter/mfapi.h&gt;
14int smfi_setsymlist(
15        SMFICTX    *ctx,
16	int        stage,
17	char       *macros
18);
19</PRE>
20Set the list of macros that the milter wants to receive from the MTA
21for a protocol stage.
22</TD></TR>
23
24<!----------- Description ---------->
25<TR><TH valign="top" align=left>DESCRIPTION</TH><TD>
26<TABLE border="1" cellspacing=1 cellpadding=4>
27<TR align="left" valign=top>
28<TH width="80">Called When</TH>
29<TD>This function must only be called during
30<A HREF="xxfi_negotiate.html">xxfi_negotiate()</A>.
31</TD>
32</TR>
33<TR align="left" valign=top>
34<TH width="80">Effects</TH>
35<TD>This function can be used to override the list of macros that the
36milter wants to receive from the MTA.
37</TD>
38</TR>
39</TABLE>
40
41<!----------- Arguments ---------->
42<TR><TH valign="top" align=left>ARGUMENTS</TH><TD>
43    <TABLE border="1" cellspacing=0>
44    <TR bgcolor="#dddddd"><TH>Argument</TH><TH>Description</TH></TR>
45
46    <TR><TD>ctx</TD>
47	<TD>the opaque context structure.
48	</TD></TR>
49
50    <TR><TD>stage</TD>
51	<TD>the protocol stage during which the macro list should be used.
52	See the file
53	<CODE>include/libmilter/mfapi.h</CODE> for legal values,
54	look for the C macros with the prefix
55	<CODE>SMFIM_</CODE>.
56	Available protocol stages are at least
57	the initial connection, HELO/EHLO, MAIL, RCPT, DATA,
58	end of header, and
59	the end of a message.
60	</TD></TR>
61
62    <TR><TD>macros</TD>
63	<TD>list of macros (separated by space).
64	Example: "{rcpt_mailer} {rcpt_host}"
65	<BR>
66	An empty string ("", not NULL) can be used to specify that no macros
67	should be sent.
68	</TD></TR>
69
70    </TABLE>
71</TD></TR>
72
73<!----------- Return values ---------->
74<TR>
75<TH valign="top" align=left>RETURN VALUES</TH>
76
77<TD>MI_FAILURE is returned if
78<UL>
79<LI>there is not enough free memory to make a copy of the macro list,
80<LI><CODE>macros</CODE> is <CODE>NULL</CODE>,
81<LI><CODE>stage</CODE> is not a valid protocol stage,
82<LI>the macro list for
83<CODE>stage</CODE> has been set before.
84</UL>
85Otherwise MI_SUCCESS is returned.
86</TD>
87</TR>
88
89<!----------- Notes ---------->
90<TR align="left" valign=top>
91<TH>NOTES</TH>
92<TD>There is an internal limit on the number of macros
93that can be set
94<!-- XREF: MAXFILTERMACROS -->
95(currently 50),
96however, this limit is not enforced by libmilter, only by the MTA,
97but a possible violation of this restriction is not communicated back to
98the milter.</TD>
99</TR>
100
101</TABLE>
102
103<HR size="1">
104<FONT size="-1">
105Copyright (c) 2006, 2012 Proofpoint, Inc. and its suppliers.
106All rights reserved.
107<BR>
108By using this file, you agree to the terms and conditions set
109forth in the LICENSE.
110</FONT>
111</BODY>
112</HTML>
113