| SYNOPSIS | 
#include <libmilter/mfapi.h>
int smfi_setreply(
	SMFICTX *ctx,
	char *rcode,
	char *xcode,
	char *message
);
 
Set the default SMTP error reply code.  Only 4XX and 5XX replies are accepted.
 | 
| DESCRIPTION | 
| Called When | 
smfi_setreply may be called from any of the xxfi_ callbacks
other than xxfi_connect. | 
 
| Effects | 
Directly set the SMTP error reply code for this connection.  This code 
will be used on subsequent error replies resulting from actions taken by 
this filter. | 
 
 
 | 
|---|
| ARGUMENTS | 
    
    | Argument | Description |  
    | ctx | 
	Opaque context structure.
	 |  
    | rcode | 
	The three-digit (RFC 821/2821) SMTP reply code, as a
	null-terminated string.  rcode cannot be NULL, and must be a valid
	4XX or 5XX reply code.
         |  
    | xcode | 
	The extended (RFC 1893/2034) reply code.  If xcode is NULL, no
	extended code is used.  Otherwise, xcode must conform to RFC 1893/2034.
	 |  
    | message | 
	The text part of the SMTP reply.  If message is NULL, an empty message is used.
	 |  
     
 | 
| RETURN VALUES |  
smfi_setreply will fail and return MI_FAILURE if:
    - The rcode or xcode argument is invalid.
    
 - A memory-allocation failure occurs.
  
Otherwise, it return MI_SUCCESS.
 | 
| NOTES |  
- Values passed to smfi_setreply are not checked for standards compliance.
 - The message parameter should contain only printable characters,
other characters may lead to undefined behavior.
For example, CR or LF will cause the call to fail,
single '%' characters will cause the text to be ignored
(if there really should be a '%' in the string,
use '%%' just like for printf(3)).
 - For details about reply codes and their meanings, please see RFC's 
821/
2821
and
1893/
2034.
 - If the reply code (rcode) given is a '4XX' code but SMFI_REJECT is used
for the message, the custom reply is not used.
 - Similarly, if the reply code (rcode) given is a '5XX' code but
SMFI_TEMPFAIL is used for the message, the custom reply is not used.
 
Note: in neither of the last two cases an error is returned to the milter,
libmilter silently ignores the reply code.
 - If the milter returns SMFI_TEMPFAIL and sets the reply code to '421',
then the SMTP server will terminate the SMTP session with a 421 error code.
  
 |