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 <libmilter/mfapi.h> 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