diff options
Diffstat (limited to 'libmilter/docs')
44 files changed, 246 insertions, 172 deletions
diff --git a/libmilter/docs/api.html b/libmilter/docs/api.html index b314a0f4e96d..4a90e9a432e6 100644 --- a/libmilter/docs/api.html +++ b/libmilter/docs/api.html @@ -15,7 +15,7 @@ $Id: api.html,v 1.39 2013-11-22 20:51:39 ca Exp $ <LI><A HREF="#Miscellaneous">Miscellaneous</A> </UL> -<H2><A NAME="LibraryControlFunctions">Library Control Functions</A></H2> +<H2><A NAME="LibraryControlFunctions">Library Control Functions</A></H2> Before handing control to libmilter (by calling <A HREF="smfi_main.html">smfi_main</A>), a filter may call the following @@ -23,11 +23,12 @@ functions to set libmilter parameters. In particular, the filter must call <A HREF="smfi_register.html">smfi_register</A> to register its callbacks. Each function will return either MI_SUCCESS or MI_FAILURE to -indicate the status of the operation. +indicate the status of the operation. <P> -None of these functions communicate with the MTA. All alter the -library's state, some of which is communicated to the MTA inside +None of these functions communicate with the MTA. +All alter the library's state, some of which +is communicated to the MTA inside <A HREF="smfi_main.html">smfi_main</A>. <P> @@ -54,7 +55,7 @@ library's state, some of which is communicated to the MTA inside <H2><A NAME="DataAccessFunctions">Data Access Functions</A></H2> The following functions may be called from within the filter-defined callbacks -to access information about the current connection or message. +to access information about the current connection or message. <P> <TABLE BORDER="1" CELLSPACING=0 CELLPADDING=2><TR bgcolor="#dddddd"><TH>Function</TH><TH>Description</TH></TR> <TR><TD><A HREF="smfi_getsymval.html">smfi_getsymval</A></TD><TD>Return the value @@ -80,33 +81,38 @@ The following functions change a message's contents and attributes. <EM>They may only be called in <A HREF="xxfi_eom.html">xxfi_eom</A></EM>. All of these functions may invoke additional communication with the MTA. They will return either MI_SUCCESS or MI_FAILURE to indicate the status of -the operation. Message data (senders, recipients, headers, body chunks) +the operation. +Message data (senders, recipients, headers, body chunks) passed to these functions via parameters is copied and does not need to be preserved (i.e., allocated memory can be freed). <P> -A filter must have set the appropriate flag (listed below) in the -description passed to <A HREF="smfi_register.html">smfi_register</A> -to call any message modification function. Failure to do so will -cause the MTA to treat a call to the function as a failure of the -filter, terminating its connection. +A filter which might call a message modification function +must set the appropriate flag +(<A HREF="#SMFIF">listed below</A>), +either +in the description passed to <A HREF="smfi_register.html">smfi_register</A> +or via <A HREF="xxfi_negotiate.html">xxfi_negotiate</A>. +Failure to do so will cause the MTA to treat a call to the function +as a failure of the filter, terminating its connection. <P> Note that the status returned indicates only whether or not the filter's message was successfully sent to the MTA, not whether or not -the MTA performed the requested operation. For example, +the MTA performed the requested operation. +For example, <A HREF="smfi_addheader.html">smfi_addheader</A>, when called with an illegal header name, will return MI_SUCCESS even though the MTA may later refuse to add the illegal header. <P> -<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=2><TR BGCOLOR="#dddddd"><TH>Function</TH><TH>Description</TH><TH>SMFIF_* flag</TR> +<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=2><TR BGCOLOR="#dddddd"><TH>Function</TH><TH>Description</TH><TH><A NAME="SMFIF">SMFIF_* flag</A></TH></TR> <TR><TD><A HREF="smfi_addheader.html">smfi_addheader</A></TD><TD>Add a header to -the message.</TD><TD>SMFIF_ADDHDRS</TD></TR> +the message.</TD><TD>SMFIF_ADDHDRS</TD></TR> -<TR><TD><A HREF="smfi_chgheader.html">smfi_chgheader</A></TD><TD>Change or delete a header.</TD><TD>SMFIF_CHGHDRS</TD></TR> +<TR><TD><A HREF="smfi_chgheader.html">smfi_chgheader</A></TD><TD>Change or delete a header.</TD><TD>SMFIF_CHGHDRS</TD></TR> <TR><TD><A HREF="smfi_insheader.html">smfi_insheader</A></TD><TD>Insert a -header into the message.</TD><TD>SMFIF_ADDHDRS</TD></TR> +header into the message.</TD><TD>SMFIF_ADDHDRS</TD></TR> <TR><TD><A HREF="smfi_chgfrom.html">smfi_chgfrom</A></TD><TD>Change the envelope sender address.</TD><TD>SMFIF_CHGFROM</TD></TR> @@ -180,40 +186,43 @@ which are registered via <A HREF="smfi_register.html">smfi_register</A>: <TR><TD><A HREF="xxfi_close.html">xxfi_close</A></TD><TD>connection cleanup</TD></TR> -<TR><TD><A HREF="xxfi_negotiate.html">xxfi_negotiate</A></TD><TD>option negotiattion</TD></TR> +<TR><TD><A HREF="xxfi_negotiate.html">xxfi_negotiate</A></TD><TD>option negotiation</TD></TR> </TABLE> <P> The above callbacks should all return one of the following return values, -having the indicated meanings. Any return other than one of the below -values constitutes an error, and will cause sendmail to terminate its -connection to the offending filter. +having the indicated meanings. +Any return other than one of the below values constitutes an error, +and will cause sendmail to terminate its connection to the offending filter. <P><A NAME="conn-spec">Milter</A> distinguishes between recipient-, -message-, and connection-oriented routines. Recipient-oriented -callbacks may affect the processing of a single message recipient; -message-oriented callbacks, a single message; connection-oriented -callbacks, an entire connection (during which multiple messages may be -delivered to multiple sets of recipients). +message-, and connection-oriented routines. +Recipient-oriented callbacks may affect the processing +of a single message recipient; +message-oriented callbacks, a single message; +connection-oriented callbacks, an entire connection +(during which multiple messages may be delivered +to multiple sets of recipients). <A HREF="xxfi_envrcpt.html">xxfi_envrcpt</A> is recipient-oriented. +<A HREF="xxfi_negotiate.html">xxfi_negotiate</A>, <A HREF="xxfi_connect.html">xxfi_connect</A>, <A HREF="xxfi_helo.html">xxfi_helo</A> and -<A HREF="xxfi_close.html">xxfi_close</A> are connection-oriented. All -other callbacks are message-oriented. +<A HREF="xxfi_close.html">xxfi_close</A> are connection-oriented. +All other callbacks are message-oriented. <P> <TABLE BORDER="1" CELLSPACING=0 CELLPADDING=2> <TR BGCOLOR="#dddddd"><TH>Return value</TH><TH>Description</TH></TR> <TR VALIGN="TOP"> - <TD>SMFIS_CONTINUE</TD> + <TD>SMFIS_CONTINUE</TD> <TD>Continue processing the current connection, message, or recipient. </TD> </TR> <TR VALIGN="TOP"> <TD>SMFIS_REJECT</TD> <TD>For a connection-oriented routine, reject this connection; call <A HREF="xxfi_close.html">xxfi_close</A>.<BR> - For a message-oriented routine (except + For a message-oriented routine (except <A HREF="xxfi_abort.html">xxfi_abort</A>), reject this message.<BR> For a recipient-oriented routine, reject the current recipient (but continue processing the current message). </TD> @@ -233,8 +242,8 @@ other callbacks are message-oriented. <TR valign="top"> <TD>SMFIS_TEMPFAIL</TD> <TD>Return a temporary failure, i.e., the corresponding SMTP command will return an appropriate 4xx status code. - For a message-oriented routine (except <A HREF="xxfi_envfrom.html">xxfi_envfrom</A>), fail for this message. <BR> - For a connection-oriented routine, fail for this connection; call <A HREF="xxfi_close.html">xxfi_close</A>. <BR> + For a message-oriented routine (except <A HREF="xxfi_envfrom.html">xxfi_envfrom</A>), fail for this message.<BR> + For a connection-oriented routine, fail for this connection; call <A HREF="xxfi_close.html">xxfi_close</A>.<BR> For a recipient-oriented routine, only fail for the current recipient; continue message processing. </TD> </TR> diff --git a/libmilter/docs/design.html b/libmilter/docs/design.html index 294f9a153d08..3636fc8158f5 100644 --- a/libmilter/docs/design.html +++ b/libmilter/docs/design.html @@ -31,11 +31,15 @@ administrator to combine multiple independently-developed filters. <P> We expect to see both vendor-supplied, configurable mail filtering applications and a multiplicity of script-like filters designed by and -for MTA administrators. A certain degree of coding sophistication and -domain knowledge on the part of the filter provider is assumed. This -allows filters to exercise fine-grained control at the SMTP level. +for MTA administrators. +A certain degree of coding sophistication and +domain knowledge on the part of the filter provider is assumed. +This allows filters to exercise fine-grained control at the SMTP level. However, as will be seen in the example, many filtering applications -can be written with relatively little protocol knowledge. +can be written with relatively little protocol knowledge, +but a basic understanding (e.g., as documented in RFC 5321: +<EM>The dialog is purposely lock-step, one-at-a-time</EM>) +is necessary. <P> Given these expectations, the API is designed to achieve the following diff --git a/libmilter/docs/index.html b/libmilter/docs/index.html index 57d9ebc6d74d..90df444f6265 100644 --- a/libmilter/docs/index.html +++ b/libmilter/docs/index.html @@ -10,7 +10,7 @@ $Id: index.html,v 1.14 2013-11-22 20:51:39 ca Exp $ <H1>Filtering Mail with Sendmail</H1> <!-- -<P><B>Disclaimer</B>: +<P><B>Disclaimer</B>: This preliminary API description is provided for review only. This specification may change based on feedback from reviewers, and does not bind Sendmail to offer this functionality in any release. diff --git a/libmilter/docs/installation.html b/libmilter/docs/installation.html index 91fe0d818a3f..7405afd7f014 100644 --- a/libmilter/docs/installation.html +++ b/libmilter/docs/installation.html @@ -17,7 +17,7 @@ $Id: installation.html,v 1.24 2013-11-22 20:51:39 ca Exp $ To compile a filter, modify the Makefile provided with the sample program, or: <UL> <LI>Put the include and Sendmail directories in your include path - (e.g. -I/path/to/include -I/path/to/sendmail). + (e.g. -I/path/to/include -I/path/to/sendmail). <LI>Make sure libmilter.a is in your library path, and link your application with it (e.g. "-lmilter"). @@ -71,7 +71,7 @@ connection. The MTA will try to contact the filter again on each new connection. <P> -There are three fields inside of the <CODE>T=</CODE> equate: S, R, and E. +There are four fields inside of the <CODE>T=</CODE> equate: C, S, R, and E. Note the separator between each is a ";" (semicolon), as "," (comma) already separates equates. The value of each field is a decimal number followed by a single letter diff --git a/libmilter/docs/overview.html b/libmilter/docs/overview.html index 78676d377a11..b88e45136965 100644 --- a/libmilter/docs/overview.html +++ b/libmilter/docs/overview.html @@ -60,6 +60,8 @@ returns to <CODE>MESSAGE</CODE>. For each of N connections { For each filter + egotiate MTA/milter capabilities/requirements (<A HREF="xxfi_negotiate.html">xxfi_negotiate</A>) + For each filter process connection (<A HREF="xxfi_connect.html">xxfi_connect</A>) For each filter process helo/ehlo (<A HREF="xxfi_helo.html">xxfi_helo</A>) @@ -203,11 +205,21 @@ communication with the MTA happens. Filters are not terminated asynchronously (except by signals that can't be caught). In the case of <TT>Abort</TT> the -<A HREF="xxfi_abort.html">xxfi_abort</A> callback is invoked. +<A HREF="xxfi_abort.html">xxfi_abort</A> callback is usually invoked +if there is an active transaction. +However, if an invoked callback takes too long to execute +(the maximum time <TT>Abort</TT> waits is currently 5s) +<!-- XREF: MI_CHK_TIME --> +then the filter is simply terminated, i.e., +neither the +<A HREF="xxfi_abort.html">xxfi_abort</A> callback +nor the +<A HREF="xxfi_close.html">xxfi_close</A> callback +is invoked. <HR size="1"> <FONT size="-1"> -Copyright (c) 2000, 2001, 2003, 2006 Proofpoint, Inc. and its suppliers. +Copyright (c) 2000, 2001, 2003, 2006, 2018 Proofpoint, Inc. and its suppliers. All rights reserved. <BR> By using this file, you agree to the terms and conditions set diff --git a/libmilter/docs/sample.html b/libmilter/docs/sample.html index de8d58947a39..b470ae390eee 100644 --- a/libmilter/docs/sample.html +++ b/libmilter/docs/sample.html @@ -187,7 +187,7 @@ sfsistat ++argc; /* log this recipient */ - if (reject != NULL && rcptaddr != NULL && + if (reject != NULL && rcptaddr != NULL && (strcasecmp(rcptaddr, reject) == 0)) { if (fprintf(priv->mlfi_fp, "RCPT %s -- REJECTED\n", @@ -298,7 +298,7 @@ mlfi_cleanup(ctx, ok) return rstat; /* close the archive file */ - if (priv->mlfi_fp != NULL && fclose(priv->mlfi_fp) == EOF) + if (priv->mlfi_fp != NULL && fclose(priv->mlfi_fp) == EOF) { /* failed; we have to wait until later */ fprintf(stderr, "Couldn't close archive file %s: %s\n", diff --git a/libmilter/docs/smfi_addheader.html b/libmilter/docs/smfi_addheader.html index e58c8d713c60..fff4dc7fe6fe 100644 --- a/libmilter/docs/smfi_addheader.html +++ b/libmilter/docs/smfi_addheader.html @@ -32,6 +32,7 @@ Add a header to the current message. <TD>Adds a header to the current message.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -45,21 +46,21 @@ Add a header to the current message. </TD></TR> <TR valign="top"><TD>headerv</TD> <TD>The header value to be added, a non-NULL, null-terminated string. - This may be the empty string. + This may be the empty string. </TD></TR> </TABLE> </TD></TR> <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_addheader returns MI_FAILURE if: <UL><LI>headerf or headerv is NULL. <LI>Adding headers in the current connection state is invalid. <LI>Memory allocation fails. <LI>A network error occurs. - <LI>SMFIF_ADDHDRS was not set when <A href="smfi_register.html">smfi_register</A> was called. + <LI><A HREF="smfi_register.html#SMFIF_ADDHDRS">SMFIF_ADDHDRS</A> is not set. </UL> Otherwise, it returns MI_SUCCESS. </TD> @@ -67,14 +68,13 @@ Otherwise, it returns MI_SUCCESS. <!----------- Notes ----------> <TR align="left" valign=top> -<TH>NOTES</TH> +<TH>NOTES</TH> <TD> <UL><LI>smfi_addheader does not change a message's existing headers. To change a header's current value, use <A HREF="smfi_chgheader.html">smfi_chgheader</A>. - <LI>A filter which calls smfi_addheader must have set the SMFIF_ADDHDRS - flag in the smfiDesc_str passed to - <A href="smfi_register.html">smfi_register</A>. + <LI>A filter which calls smfi_addheader must have set the + <A HREF="smfi_register.html#SMFIF_ADDHDRS">SMFIF_ADDHDRS</A> flag. <LI>For smfi_addheader, filter order is important. <B>Later filters will see the header changes made by earlier ones.</B> <LI>Neither the name nor the value of the header is checked for @@ -101,7 +101,7 @@ To change a header's current value, use <!----------- Example code ----------> <TR> -<TH valign="top" align=left>EXAMPLE</TH> +<TH valign="top" align=left>EXAMPLE</TH> <TD> <PRE> diff --git a/libmilter/docs/smfi_addrcpt.html b/libmilter/docs/smfi_addrcpt.html index 42014bf1d821..81eecaf0069e 100644 --- a/libmilter/docs/smfi_addrcpt.html +++ b/libmilter/docs/smfi_addrcpt.html @@ -31,6 +31,7 @@ Add a recipient for the current message. <TD>Add a recipient to the message envelope.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -47,13 +48,13 @@ Add a recipient for the current message. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_addrcpt will fail and return MI_FAILURE if: <UL><LI>rcpt is NULL. <LI>Adding recipients in the current connection state is invalid. <LI>A network error occurs. - <LI>SMFIF_ADDRCPT was not set when <A href="smfi_register.html">smfi_register</A> was called. + <LI><A HREF="smfi_register.html#SMFIF_ADDRCPT">SMFIF_ADDRCPT</A> is not set. </UL> Otherwise, it will return MI_SUCCESS. </TD> @@ -61,11 +62,10 @@ Otherwise, it will return MI_SUCCESS. <!----------- Notes ----------> <TR align="left" valign=top> -<TH>NOTES</TH> +<TH>NOTES</TH> <TD> -A filter which calls smfi_addrcpt must have set the SMFIF_ADDRCPT flag -in the smfiDesc_str passed to -<A href="smfi_register.html">smfi_register</A>. +A filter which calls smfi_addrcpt must have set the +<A HREF="smfi_register.html#SMFIF_ADDRCPT">SMFIF_ADDRCPT</A> flag. </TD> </TR> diff --git a/libmilter/docs/smfi_addrcpt_par.html b/libmilter/docs/smfi_addrcpt_par.html index 0176e69e0617..9d72cd6ca82b 100644 --- a/libmilter/docs/smfi_addrcpt_par.html +++ b/libmilter/docs/smfi_addrcpt_par.html @@ -32,6 +32,7 @@ Add a recipient for the current message including ESMTP arguments. <TD>Add a recipient to the message envelope.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -51,14 +52,13 @@ Add a recipient for the current message including ESMTP arguments. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> -<TD>smfi_addrcpt will fail and return MI_FAILURE if: +<TD>smfi_addrcpt_par will fail and return MI_FAILURE if: <UL><LI>rcpt is NULL. <LI>Adding recipients in the current connection state is invalid. <LI>A network error occurs. - <LI>SMFIF_ADDRCPT_PAR was not set when - <A href="smfi_register.html">smfi_register</A> was called. + <LI><A HREF="smfi_register.html#SMFIF_ADDRCPT_PAR">SMFIF_ADDRCPT_PAR</A> is not set._PAR </UL> Otherwise, it will return MI_SUCCESS. </TD> @@ -66,11 +66,10 @@ Otherwise, it will return MI_SUCCESS. <!----------- Notes ----------> <TR align="left" valign=top> -<TH>NOTES</TH> +<TH>NOTES</TH> <TD> -A filter which calls smfi_addrcpt must have set the SMFIF_ADDRCPT_PAR flag -in the smfiDesc_str passed to -<A href="smfi_register.html">smfi_register</A>. +A filter which calls smfi_addrcpt_par must have set the +<A HREF="smfi_register.html#SMFIF_ADDRCPT_PAR">SMFIF_ADDRCPT_PAR</A> flag. </TD> </TR> diff --git a/libmilter/docs/smfi_chgfrom.html b/libmilter/docs/smfi_chgfrom.html index a107ee9ebebc..0cfe7b6fc800 100644 --- a/libmilter/docs/smfi_chgfrom.html +++ b/libmilter/docs/smfi_chgfrom.html @@ -32,6 +32,7 @@ Change the envelope sender (MAIL From) of the current message. <TD>Change the envelope sender (MAIL From) of the current message.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -51,13 +52,13 @@ Change the envelope sender (MAIL From) of the current message. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_chgfrom will fail and return MI_FAILURE if: <UL><LI>mail is NULL. <LI>Changing the sender in the current connection state is invalid. <LI>A network error occurs. - <LI>SMFIF_CHGFROM was not set when <A href="smfi_register.html">smfi_register</A> was called. + <LI><A HREF="smfi_register.html#SMFIF_CHGFROM">SMFIF_CHGFROM</A> is not set. </UL> Otherwise, it will return MI_SUCCESS. </TD> @@ -65,11 +66,10 @@ Otherwise, it will return MI_SUCCESS. <!----------- Notes ----------> <TR align="left" valign=top> -<TH>NOTES</TH> +<TH>NOTES</TH> <TD> -A filter which calls smfi_chgfrom must have set the SMFIF_CHGFROM flag -in the smfiDesc_str passed to -<A href="smfi_register.html">smfi_register</A>. +A filter which calls smfi_chgfrom must have set the +<A HREF="smfi_register.html#SMFIF_CHGFROM">SMFIF_CHGFROM</A> flag. <BR> Even though all ESMTP arguments could be set via this call, it does not make sense to do so for many of them, diff --git a/libmilter/docs/smfi_chgheader.html b/libmilter/docs/smfi_chgheader.html index b3004032e4b8..de132f442b5b 100644 --- a/libmilter/docs/smfi_chgheader.html +++ b/libmilter/docs/smfi_chgheader.html @@ -33,6 +33,7 @@ Change or delete a message header. <TD>Changes a header's value for the current message.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -55,7 +56,7 @@ Change or delete a message header. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD> smfi_chgheader will return MI_FAILURE if @@ -63,17 +64,18 @@ smfi_chgheader will return MI_FAILURE if <LI>Modifying headers in the current connection state is invalid. <LI>Memory allocation fails. <LI>A network error occurs. - <LI>SMFIF_CHGHDRS was not set when <A href="smfi_register.html">smfi_register</A> was called. + <LI><A HREF="smfi_register.html#SMFIF_CHGHDRS">SMFIF_CHGHDRS</A> is not set. </UL> Otherwise, it returns MI_SUCCESS. -</TR> +</TD></TR> <!----------- Notes ----------> <TR align="left" valign=top> -<TH>NOTES</TH> +<TH>NOTES</TH> <TD> <UL><LI>While smfi_chgheader may be used to add new headers, it is more efficient and far safer to use <A href="smfi_addheader.html">smfi_addheader</A>. - <LI>A filter which calls smfi_chgheader must have set the SMFIF_CHGHDRS flag in the smfiDesc_str passed to <A href="smfi_register.html">smfi_register</A>. + <LI>A filter which calls smfi_chgheader must have set the + <A HREF="smfi_register.html#SMFIF_CHGHDRS">SMFIF_CHGHDRS</A> flag. <LI>For smfi_chgheader, filter order is important. <B>Later filters will see the header changes made by earlier ones.</B> <LI>Neither the name nor the value of the header is checked for standards compliance. However, each line of the header must be under diff --git a/libmilter/docs/smfi_delrcpt.html b/libmilter/docs/smfi_delrcpt.html index ec1412bd3778..bd42a7319e56 100644 --- a/libmilter/docs/smfi_delrcpt.html +++ b/libmilter/docs/smfi_delrcpt.html @@ -31,6 +31,7 @@ Remove a recipient from the current message's envelope. <TD>smfi_delrcpt removes the named recipient from the current message's envelope.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -47,14 +48,14 @@ Remove a recipient from the current message's envelope. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_delrcpt will fail and return MI_FAILURE if: <UL> <LI>rcpt is NULL. <LI>Deleting recipients in the current connection state is invalid. <LI>A network error occurs. - <LI>SMFIF_DELRCPT was not set when <A href="smfi_register.html">smfi_register</A> was called. + <LI><A HREF="smfi_register.html#SMFIF_DELRCPT">SMFIF_DELRCPT</A> is not set. </UL> Otherwise, it will return MI_SUCCESS </TD> @@ -62,9 +63,13 @@ Otherwise, it will return MI_SUCCESS <!----------- Notes ----------> <TR align="left" valign=top> -<TH>NOTES</TH> +<TH>NOTES</TH> <TD> +<LI> The addresses to be removed must match exactly. For example, an address and its expanded form do not match. +<LI> +A filter which calls smfi_delrcpt must have set the +<A HREF="smfi_register.html#SMFIF_DELRCPT">SMFIF_DELRCPT</A> flag. </TD> </TR> diff --git a/libmilter/docs/smfi_getpriv.html b/libmilter/docs/smfi_getpriv.html index 783d6402ef45..5ed8a22c2c60 100644 --- a/libmilter/docs/smfi_getpriv.html +++ b/libmilter/docs/smfi_getpriv.html @@ -30,6 +30,7 @@ Get the connection-specific data pointer for this connection. <TD>None.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -43,7 +44,7 @@ Get the connection-specific data pointer for this connection. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_getpriv returns the private data pointer stored by a prior call to <A href="smfi_setpriv.html">smfi_setpriv</A>, or NULL if none has been set.</TD> </TR> diff --git a/libmilter/docs/smfi_getsymval.html b/libmilter/docs/smfi_getsymval.html index dff8dc638c84..7e3e4d559434 100644 --- a/libmilter/docs/smfi_getsymval.html +++ b/libmilter/docs/smfi_getsymval.html @@ -31,6 +31,7 @@ Get the value of a sendmail macro. <TD>None.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -51,14 +52,14 @@ Get the value of a sendmail macro. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_getsymval returns the value of the given macro as a null-terminated string, or NULL if the macro is not defined.</TD> </TR> <!----------- Notes ----------> <TR align="left" valign=top> -<TH><A name="notes">NOTES</A></TH> +<TH><A name="notes">NOTES</A></TH> <TD> By default, the following macros are valid in the given contexts: diff --git a/libmilter/docs/smfi_insheader.html b/libmilter/docs/smfi_insheader.html index 3f568864835c..7759dc90c1a5 100644 --- a/libmilter/docs/smfi_insheader.html +++ b/libmilter/docs/smfi_insheader.html @@ -33,6 +33,7 @@ Prepend a header to the current message. <TD>Prepends a header to the current message.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -49,21 +50,21 @@ Prepend a header to the current message. <TD>The header name, a non-NULL, null-terminated string. </TD></TR> <TR valign="top"><TD>headerv</TD> - <TD>The header value to be added, a non-NULL, null-terminated string. This may be the empty string. + <TD>The header value to be added, a non-NULL, null-terminated string. This may be the empty string. </TD></TR> </TABLE> </TD></TR> <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_insheader returns MI_FAILURE if: <UL><LI>headerf or headerv is NULL. <LI>Adding headers in the current connection state is invalid. <LI>Memory allocation fails. <LI>A network error occurs. - <LI>SMFIF_ADDHDRS was not set when <A href="smfi_register.html">smfi_register</A> was called. + <LI><A HREF="smfi_register.html#SMFIF_ADDHDRS">SMFIF_ADDHDRS</A> is not set. </UL> Otherwise, it returns MI_SUCCESS. </TD> @@ -71,15 +72,15 @@ Otherwise, it returns MI_SUCCESS. <!----------- Notes ----------> <TR align="left" valign=top> -<TH>NOTES</TH> +<TH>NOTES</TH> <TD> <UL> <LI>smfi_insheader does not change a message's existing headers. To change a header's current value, use <A HREF="smfi_chgheader.html">smfi_chgheader</A>. - <LI>A filter which calls smfi_insheader must have set the SMFIF_ADDHDRS - flag in the smfiDesc_str passed to - <A href="smfi_register.html">smfi_register</A>. + <LI>A filter which calls smfi_insheader must have set the + <A HREF="smfi_register.html#SMFIF_ADDHDRS">SMFIF_ADDHDRS</A> + flag. <LI>For smfi_insheader, filter order is important. <B>Later filters will see the header changes made by earlier ones.</B> <LI>A filter will receive <EM>only</EM> headers that have been sent @@ -122,7 +123,7 @@ Otherwise, it returns MI_SUCCESS. <!----------- Example code ----------> <TR> -<TH valign="top" align=left>EXAMPLE</TH> +<TH valign="top" align=left>EXAMPLE</TH> <TD> <PRE> diff --git a/libmilter/docs/smfi_main.html b/libmilter/docs/smfi_main.html index cb63f96bc5d0..87228fc166d0 100644 --- a/libmilter/docs/smfi_main.html +++ b/libmilter/docs/smfi_main.html @@ -29,10 +29,11 @@ Hand control to libmilter event loop. <TD>smfi_main hands control to the Milter event loop.</TD> </TR> </TABLE> +</TD></TR> <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_main will return MI_FAILURE if it fails to establish a connection. This may occur for any of a variety of reasons (e.g. invalid address passed to <A href="smfi_setconn.html">smfi_setconn</A>). The reason for the failure will be logged. Otherwise, smfi_main will return MI_SUCCESS.</TD> </TR> diff --git a/libmilter/docs/smfi_opensocket.html b/libmilter/docs/smfi_opensocket.html index d4f7e3a705ed..7b9e49df97af 100644 --- a/libmilter/docs/smfi_opensocket.html +++ b/libmilter/docs/smfi_opensocket.html @@ -34,13 +34,14 @@ but before calling <TT>smfi_main()</TT>. <TD>smfi_opensocket attempts to create the socket specified previously by a call to <TT>smfi_setconn()</TT> which will be the interface between MTAs and the filter. -This allows the calling application to ensure that the -socket can be created. +This allows the calling application to ensure that the socket can be created. If this is not called, -<TT>smfi_main()</TT> will do so implicitly. +<TT>smfi_main()</TT> will create the socket implicitly +(without removing a potentially existing UNIX domain socket). </TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -56,7 +57,7 @@ If this is not called, <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_opensocket will fail and return MI_FAILURE if: <UL> diff --git a/libmilter/docs/smfi_progress.html b/libmilter/docs/smfi_progress.html index 2b87b012422f..53205ad5dc31 100644 --- a/libmilter/docs/smfi_progress.html +++ b/libmilter/docs/smfi_progress.html @@ -31,6 +31,7 @@ Notify the MTA that an operation is still in progress. on a message, causing the MTA to re-start its timeouts.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -44,7 +45,7 @@ on a message, causing the MTA to re-start its timeouts.</TD> <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_progress will fail and return MI_FAILURE if: <UL> diff --git a/libmilter/docs/smfi_quarantine.html b/libmilter/docs/smfi_quarantine.html index b63da2d6c50f..6c954c44036e 100644 --- a/libmilter/docs/smfi_quarantine.html +++ b/libmilter/docs/smfi_quarantine.html @@ -31,6 +31,7 @@ Quarantine the message using the given reason. <TD>smfi_quarantine quarantines the message using the given reason.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -47,13 +48,13 @@ Quarantine the message using the given reason. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_quarantine will fail and return MI_FAILURE if: <UL> <LI>reason is NULL or empty. <LI>A network error occurs. - <LI>SMFIF_QUARANTINE was not set when <A href="smfi_register.html">smfi_register</A> was called. + <LI><A HREF="smfi_register.html#SMFIF_QUARANTINE">SMFIF_QUARANTINE</A> is not set. </UL> Otherwise, it will return MI_SUCCESS </TD> diff --git a/libmilter/docs/smfi_register.html b/libmilter/docs/smfi_register.html index 30ab75cae497..5c61beefc1a5 100644 --- a/libmilter/docs/smfi_register.html +++ b/libmilter/docs/smfi_register.html @@ -37,6 +37,7 @@ is obeyed. </TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -96,12 +97,12 @@ simply returning SMFIS_CONTINUE. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<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>memory allocation failed. <LI>incompatible version or illegal flags value. </UL> @@ -110,7 +111,7 @@ smfi_register may return MI_FAILURE for any of the following reasons: <!----------- Notes ----------> <TR align="left" valign=top> -<TH>NOTES</TH> +<TH><A NAME=Notes>NOTES</A></TH> <TD> <A NAME="flags">The xxfi_flags</A> @@ -120,7 +121,7 @@ the following values, describing the actions the filter may take: <TR valign="top" bgcolor="#dddddd"><TH align="left">Flag</TH><TH align="center">Description</TH></TR> <TR align="left" valign=top> <TD> - SMFIF_ADDHDRS + <A NAME="SMFIF_ADDHDRS">SMFIF_ADDHDRS</A> </TD> <TD> This filter may <A HREF="smfi_addheader.html">add headers</A>. @@ -128,7 +129,7 @@ the following values, describing the actions the filter may take: </TR> <TR align="left" valign=top> <TD> - SMFIF_CHGHDRS + <A NAME="SMFIF_CHGHDRS">SMFIF_CHGHDRS</A> </TD> <TD> This filter may @@ -137,7 +138,7 @@ the following values, describing the actions the filter may take: </TR> <TR align="left" valign=top> <TD VALIGN="TOP"> - SMFIF_CHGBODY + <A NAME="SMFIF_CHGBODY">SMFIF_CHGBODY</A> </TD> <TD> This filter may @@ -148,7 +149,7 @@ the following values, describing the actions the filter may take: </TR> <TR> <TD VALIGN="TOP"> - SMFIF_ADDRCPT + <A NAME="SMFIF_ADDRCPT">SMFIF_ADDRCPT</A> </TD> <TD> This filter may @@ -158,7 +159,7 @@ the following values, describing the actions the filter may take: </TR> <TR> <TD VALIGN="TOP"> - SMFIF_ADDRCPT_PAR + <A NAME="SMFIF_ADDRCPT_PAR">SMFIF_ADDRCPT_PAR</A> </TD> <TD> This filter may @@ -167,7 +168,7 @@ the following values, describing the actions the filter may take: </TR> <TR> <TD VALIGN="TOP"> - SMFIF_DELRCPT + <A NAME="SMFIF_DELRCPT">SMFIF_DELRCPT</A> </TD> <TD> This filter may @@ -176,7 +177,7 @@ the following values, describing the actions the filter may take: </TR> <TR> <TD VALIGN="TOP"> - SMFIF_QUARANTINE + <A NAME="SMFIF_QUARANTINE">SMFIF_QUARANTINE</A> </TD> <TD> This filter may @@ -186,7 +187,7 @@ the following values, describing the actions the filter may take: <TR> <TD VALIGN="TOP"> - SMFIF_CHGFROM + <A NAME="SMFIF_CHGFROM">SMFIF_CHGFROM</A> </TD> <TD> This filter may @@ -196,7 +197,7 @@ the following values, describing the actions the filter may take: <TR> <TD VALIGN="TOP"> - SMFIF_SETSYMLIST + <A NAME="SMFIF_SETSYMLIST">SMFIF_SETSYMLIST</A> </TD> <TD> This filter can diff --git a/libmilter/docs/smfi_replacebody.html b/libmilter/docs/smfi_replacebody.html index 4a5117964a33..0842298bc62c 100644 --- a/libmilter/docs/smfi_replacebody.html +++ b/libmilter/docs/smfi_replacebody.html @@ -29,12 +29,13 @@ Replace message-body data. </TR> <TR align="left" valign=top> <TH width="80">Effects</TH> -<TD>smfi_replacebody replaces the body of the current message. If called -more than once, subsequent calls result in data being appended to the new +<TD>smfi_replacebody replaces the body of the current message. If called +more than once, subsequent calls result in data being appended to the new body. </TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -54,14 +55,14 @@ body. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_replacebody fails and returns MI_FAILURE if: <UL> <LI>bodyp == NULL and bodylen > 0. <LI>Changing the body in the current connection state is invalid. <LI>A network error occurs. - <LI>SMFIF_CHGBODY was not set when <A href="smfi_register.html">smfi_register</A> was called. + <LI><A HREF="smfi_register.html#SMFIF_CHGBODY">SMFIF_CHGBODY</A> is not set. </UL> Otherwise, it will return MI_SUCCESS. </TD> @@ -69,12 +70,14 @@ Otherwise, it will return MI_SUCCESS. <!----------- Notes ----------> <TR align="left" valign=top> -<TH>NOTES</TH> +<TH>NOTES</TH> <TD> <UL> - <LI>Since the message body may be very large, setting SMFIF_CHGBODY may significantly affect filter performance. + <LI>Since the message body may be very large, calling smfi_replacebody may significantly affect filter performance. <LI>If a filter sets SMFIF_CHGBODY but does not call smfi_replacebody, the original body remains unchanged. <LI>For smfi_replacebody, filter order is important. <B>Later filters will see the new body contents created by earlier ones.</B> + <LI>A filter which calls smfi_replacebody must have set the + <A HREF="smfi_register.html#SMFIF_CHGBODY">SMFIF_CHGBODY</A> flag. </UL> </TD> </TR> diff --git a/libmilter/docs/smfi_setbacklog.html b/libmilter/docs/smfi_setbacklog.html index 961285555442..f025009db7ed 100644 --- a/libmilter/docs/smfi_setbacklog.html +++ b/libmilter/docs/smfi_setbacklog.html @@ -31,6 +31,7 @@ Set the filter's <CODE>listen(2)</CODE> backlog value. If smfi_setbacklog is not called, the operating system default is used.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -44,7 +45,7 @@ If smfi_setbacklog is not called, the operating system default is used.</TD> <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_setbacklog returns MI_FAILURE if obacklog is less than or equal to zero.</TD> diff --git a/libmilter/docs/smfi_setconn.html b/libmilter/docs/smfi_setconn.html index eba7c5b7e52e..8897f5aca5a7 100644 --- a/libmilter/docs/smfi_setconn.html +++ b/libmilter/docs/smfi_setconn.html @@ -30,14 +30,15 @@ Set the socket through which this filter should communicate with sendmail. <TD>Sets the socket through which the filter communicates with sendmail.</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>oconn</TD> - <TD>The address of the desired communication socket. - The address should be a NULL-terminated string in "proto:address" + <TD>The address of the desired communication socket. + The address should be a NULL-terminated string in "proto:address" format: <UL> <LI><CODE>{unix|local}:/path/to/file</CODE> -- A named pipe. @@ -50,7 +51,7 @@ Set the socket through which this filter should communicate with sendmail. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_setconn will not fail on an invalid address. The failure will only be detected in <A href="smfi_main.html">smfi_main</A>. @@ -60,7 +61,7 @@ due to a lack of memory. </TR> <TR> -<TH valign="top" align=left>NOTES</TH> +<TH valign="top" align=left>NOTES</TH> <TD> <UL> diff --git a/libmilter/docs/smfi_setdbg.html b/libmilter/docs/smfi_setdbg.html index 58d519935e20..e7498391105b 100644 --- a/libmilter/docs/smfi_setdbg.html +++ b/libmilter/docs/smfi_setdbg.html @@ -34,6 +34,7 @@ A level of zero turns off debugging. The greater the current, highest, useful value.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -47,7 +48,7 @@ the current, highest, useful value.</TD> <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_setdbg returns MI_SUCCESS by default. </TD> diff --git a/libmilter/docs/smfi_setmlreply.html b/libmilter/docs/smfi_setmlreply.html index e9118838fd39..3f36e5296430 100644 --- a/libmilter/docs/smfi_setmlreply.html +++ b/libmilter/docs/smfi_setmlreply.html @@ -38,6 +38,7 @@ This code will be used on subsequent error replies resulting from actions taken by this filter.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -65,7 +66,7 @@ taken by this filter.</TD> <!----------- Example ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD> For example, the code:<BR> <PRE> @@ -86,13 +87,13 @@ For example, the code:<BR> <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_setmlreply will fail and return MI_FAILURE if: <UL> <LI>The rcode or xcode argument is invalid. <LI>A memory-allocation failure occurs. - <LI>If any text line contains a carraige return or line feed. + <LI>If any text line contains a carriage return or line feed. <LI>The length of any text line is more than MAXREPLYLEN (980). <LI>More than 32 lines of text replies are given. </UL> @@ -102,7 +103,7 @@ Otherwise, it return MI_SUCCESS. <!----------- Notes ----------> <TR align="left" valign=top> -<TH>NOTES</TH> +<TH>NOTES</TH> <TD> <UL> <LI>Values passed to smfi_setmlreply are not checked for standards compliance. @@ -112,7 +113,7 @@ 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 <TT>printf(3)</TT>). -<LI>For details about reply codes and their meanings, please see RFC's +<LI>For details about reply codes and their meanings, please see RFC's <A href="http://www.rfc-editor.org/rfc/rfc821.txt">821</A>/ <A href="http://www.rfc-editor.org/rfc/rfc2821.txt">2821</A> and diff --git a/libmilter/docs/smfi_setpriv.html b/libmilter/docs/smfi_setpriv.html index 5b03456f47aa..a9cb37e598c9 100644 --- a/libmilter/docs/smfi_setpriv.html +++ b/libmilter/docs/smfi_setpriv.html @@ -31,6 +31,7 @@ Set the private data pointer for this connection. <TD>Sets the private data pointer for the context ctx.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -47,14 +48,14 @@ Set the private data pointer for this connection. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_setpriv returns MI_FAILURE if ctx is an invalid context. Otherwise, it returns MI_SUCCESS.</TD> </TR> <TR> -<TH valign="top" align=left>NOTES</TH> +<TH valign="top" align=left>NOTES</TH> <TD>There is only one private data pointer per connection; multiple calls to smfi_setpriv with different values will cause previous values diff --git a/libmilter/docs/smfi_setreply.html b/libmilter/docs/smfi_setreply.html index 21ec5a57d092..615567107a4a 100644 --- a/libmilter/docs/smfi_setreply.html +++ b/libmilter/docs/smfi_setreply.html @@ -31,11 +31,12 @@ other than xxfi_connect.</TD> </TR> <TR align="left" valign=top> <TH width="80">Effects</TH> -<TD>Directly set the SMTP error reply code for this connection. This code -will be used on subsequent error replies resulting from actions taken by +<TD>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.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -61,12 +62,14 @@ this filter.</TD> <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_setreply will fail and return MI_FAILURE if: <UL> <LI>The rcode or xcode argument is invalid. <LI>A memory-allocation failure occurs. + <LI>The length of any text line is more than MAXREPLYLEN (980). + <LI>The message argument contains a carriage return or line feed. </UL> Otherwise, it return MI_SUCCESS. </TD> @@ -74,7 +77,7 @@ Otherwise, it return MI_SUCCESS. <!----------- Notes ----------> <TR align="left" valign=top> -<TH>NOTES</TH> +<TH>NOTES</TH> <TD> <UL> <LI>Values passed to smfi_setreply are not checked for standards compliance. @@ -84,7 +87,7 @@ 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 <TT>printf(3)</TT>). -<LI>For details about reply codes and their meanings, please see RFC's +<LI>For details about reply codes and their meanings, please see RFC's <A href="http://www.rfc-editor.org/rfc/rfc821.txt">821</A>/ <A href="http://www.rfc-editor.org/rfc/rfc2821.txt">2821</A> and diff --git a/libmilter/docs/smfi_setsymlist.html b/libmilter/docs/smfi_setsymlist.html index c270d0b5647b..27bdd8a5f8ed 100644 --- a/libmilter/docs/smfi_setsymlist.html +++ b/libmilter/docs/smfi_setsymlist.html @@ -12,7 +12,7 @@ $Id: smfi_setsymlist.html,v 1.7 2013-11-22 20:51:39 ca Exp $ <PRE> #include <libmilter/mfapi.h> int smfi_setsymlist( - SMFICTX *ctx, + SMFICTX *ctx, int stage, char *macros ); @@ -37,6 +37,7 @@ milter wants to receive from the MTA. </TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -72,7 +73,7 @@ milter wants to receive from the MTA. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>MI_FAILURE is returned if <UL> @@ -88,7 +89,7 @@ Otherwise MI_SUCCESS is returned. <!----------- Notes ----------> <TR align="left" valign=top> -<TH>NOTES</TH> +<TH>NOTES</TH> <TD>There is an internal limit on the number of macros that can be set <!-- XREF: MAXFILTERMACROS --> diff --git a/libmilter/docs/smfi_settimeout.html b/libmilter/docs/smfi_settimeout.html index 35cd51003ae6..aa135618a9d0 100644 --- a/libmilter/docs/smfi_settimeout.html +++ b/libmilter/docs/smfi_settimeout.html @@ -33,6 +33,7 @@ If smfi_settimeout is not called, a default timeout of 7210 seconds is used. </TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -47,24 +48,21 @@ If smfi_settimeout is not called, a default timeout of 7210 seconds is used. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_settimeout always returns MI_SUCCESS.</TD> </TR> <!----------- Notes ----------> <TR> -<TH valign="top" align=left>NOTES</TH> +<TH valign="top" align=left>NOTES</TH> <TD> Decreasing the timeout is strongly discouraged and may break the communication with the MTA. Do <EM>not</EM> decrease this value without making sure that the MTA also uses lower timeouts for communication (with the milter and with the SMTP client). -</TR> -</TABLE> - - +</TD></TR> </TABLE> <HR size="1"> diff --git a/libmilter/docs/smfi_stop.html b/libmilter/docs/smfi_stop.html index aa725b9dbc25..c85a20d76ac5 100644 --- a/libmilter/docs/smfi_stop.html +++ b/libmilter/docs/smfi_stop.html @@ -36,6 +36,7 @@ which may then exit or warm-restart. </TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -49,7 +50,7 @@ which may then exit or warm-restart. <!----------- Return values ----------> <TR> -<TH valign="top" align=left>RETURN VALUES</TH> +<TH valign="top" align=left>RETURN VALUES</TH> <TD>smfi_stop always returns SMFI_CONTINUE. But note: <UL> diff --git a/libmilter/docs/smfi_version.html b/libmilter/docs/smfi_version.html index 64c4a4d8f8ac..f9b7bcb86b0c 100644 --- a/libmilter/docs/smfi_version.html +++ b/libmilter/docs/smfi_version.html @@ -32,6 +32,7 @@ Get the (runtime) version of libmilter. <TD>None.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH VALIGN="TOP" ALIGN=LEFT>ARGUMENTS</TH><TD> diff --git a/libmilter/docs/xxfi_abort.html b/libmilter/docs/xxfi_abort.html index 9ec8f4990737..4e20d0e18d52 100644 --- a/libmilter/docs/xxfi_abort.html +++ b/libmilter/docs/xxfi_abort.html @@ -30,6 +30,7 @@ Handle the current message's being aborted. <TD>Do nothing; return SMFIS_CONTINUE.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -43,7 +44,7 @@ Handle the current message's being aborted. <!----------- Notes ----------> <TR> -<TH valign="top" align=left>NOTES</TH> +<TH valign="top" align=left>NOTES</TH> <TD> <UL> <LI>xxfi_abort must reclaim any resources allocated on a per-message diff --git a/libmilter/docs/xxfi_body.html b/libmilter/docs/xxfi_body.html index 811035065874..511eeb3aae68 100644 --- a/libmilter/docs/xxfi_body.html +++ b/libmilter/docs/xxfi_body.html @@ -32,6 +32,7 @@ Handle a piece of a message's body. <TD>Do nothing; return SMFIS_CONTINUE.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -51,7 +52,7 @@ Handle a piece of a message's body. <!----------- Notes ----------> <TR> -<TH valign="top" align=left>NOTES</TH> +<TH valign="top" align=left>NOTES</TH> <TD> <UL> <LI>bodyp points to a sequence of bytes. @@ -65,7 +66,7 @@ to work as expected. significantly impact filter performance. <LI>End-of-lines are represented as received from SMTP (normally CR/LF). <LI>Later filters will see body changes made by earlier ones. -<LI>Message bodies may be sent in multiple chunks, with one call to +<LI>Message bodies may be sent in multiple chunks, with one call to xxfi_body per chunk. <LI>Return <A HREF="api.html#SMFIS_SKIP">SMFIS_SKIP</A> diff --git a/libmilter/docs/xxfi_close.html b/libmilter/docs/xxfi_close.html index b5cf2ff237ad..1999d0e3896b 100644 --- a/libmilter/docs/xxfi_close.html +++ b/libmilter/docs/xxfi_close.html @@ -30,6 +30,7 @@ The current connection is being closed. <TD>Do nothing; return SMFIS_CONTINUE.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -43,7 +44,7 @@ The current connection is being closed. <!----------- Notes ----------> <TR> -<TH valign="top" align=left>NOTES</TH> +<TH valign="top" align=left>NOTES</TH> <TD> <UL> <LI>xxfi_close may be called "out-of-order", i.e. before even the @@ -59,7 +60,7 @@ xxfi_close code. In particular, it is incorrect to assume the private context pointer will be something other than NULL in this callback. <LI>xxfi_close is called on close even if the previous mail -transaction was aborted. +transaction was aborted. <LI>xxfi_close is responsible for freeing any resources allocated on a per-connection basis. <LI>Since the connection is already closing, the return value is diff --git a/libmilter/docs/xxfi_connect.html b/libmilter/docs/xxfi_connect.html index 29a2c911153e..c84f9f281738 100644 --- a/libmilter/docs/xxfi_connect.html +++ b/libmilter/docs/xxfi_connect.html @@ -12,7 +12,7 @@ $Id: xxfi_connect.html,v 1.20 2013-11-22 20:51:39 ca Exp $ <PRE> #include <libmilter/mfapi.h> sfsistat (*xxfi_connect)( - SMFICTX *ctx, + SMFICTX *ctx, char *hostname, _SOCK_ADDR *hostaddr); </PRE> @@ -29,16 +29,18 @@ sfsistat (*xxfi_connect)( <TD>Do nothing; return SMFIS_CONTINUE.</TD> </TR> </TABLE> + <!-- -This callback function is invoked on each connection to the mail +This callback function is invoked on each connection to the mail filter program. The callback is to be implemented by the Milter application developers. The name of the callback can be any valid function name. The function pointer is to be assigned to the smfiDesc.xxfi_connect and the pointer to the smfiDesc structure is passed to smfi_register(). -</TD></TR> --> +</TD></TR> + <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> <TABLE border="1" cellspacing=0> @@ -103,7 +105,7 @@ is passed to smfi_register(). --> <!----------- Notes ----------> <TR> -<TH valign="top" align=left>NOTES</TH> +<TH valign="top" align=left>NOTES</TH> <TD>If an earlier filter rejects the connection in its xxfi_connect() routine, this filter's xxfi_connect() will not be called.</TD> </TR> diff --git a/libmilter/docs/xxfi_data.html b/libmilter/docs/xxfi_data.html index 7dedb4183097..f8b715b5675e 100644 --- a/libmilter/docs/xxfi_data.html +++ b/libmilter/docs/xxfi_data.html @@ -23,13 +23,14 @@ Handle the DATA command. <TABLE border="1" cellspacing=1 cellpadding=4> <TR align="left" valign=top> <TH width="80">Called When</TH> -<TD>xxfi_data is called when the client uses the DATA command. +<TD>xxfi_data is called when the client uses the DATA command.</TD> </TR> <TR align="left" valign=top> <TH>Default Behavior</TH> <TD>Do nothing; return SMFIS_CONTINUE.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -67,11 +68,11 @@ Handle the DATA command. </TD> </TR> </TABLE> -</TR> +</TD></TR> <!----------- Notes ----------> <TR> -<TH valign="top" align=left>NOTES</TH> +<TH valign="top" align=left>NOTES</TH> <TD>For more details on ESMTP responses, please see RFC <A href="http://www.rfc-editor.org/rfc/rfc1869.txt">1869</A>.</TD> </TR> diff --git a/libmilter/docs/xxfi_envfrom.html b/libmilter/docs/xxfi_envfrom.html index 24811e14a6c1..b553b4d9fd63 100644 --- a/libmilter/docs/xxfi_envfrom.html +++ b/libmilter/docs/xxfi_envfrom.html @@ -33,6 +33,7 @@ before xxfi_envrcpt.</TD> <TD>Do nothing; return SMFIS_CONTINUE.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -75,11 +76,11 @@ before xxfi_envrcpt.</TD> </TD> </TR> </TABLE> -</TR> +</TD></TR> <!----------- Notes ----------> <TR> -<TH valign="top" align=left>NOTES</TH> +<TH valign="top" align=left>NOTES</TH> <TD>For more details on ESMTP responses, please see RFC <A href="http://www.rfc-editor.org/rfc/rfc1869.txt">1869</A>.</TD> </TR> diff --git a/libmilter/docs/xxfi_envrcpt.html b/libmilter/docs/xxfi_envrcpt.html index 9503ab98c616..d15b70fdf187 100644 --- a/libmilter/docs/xxfi_envrcpt.html +++ b/libmilter/docs/xxfi_envrcpt.html @@ -31,6 +31,7 @@ Handle the envelope RCPT command. <TD>Do nothing; return SMFIS_CONTINUE.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -54,7 +55,7 @@ Handle the envelope RCPT command. <TR bgcolor="#dddddd"><TH>Return value</TH><TH>Description</TH></TR> <TR valign="top"> <TD>SMFIS_TEMPFAIL</TD> - <TD>Temporarily fail for this particular recipient; further recipients + <TD>Temporarily fail for this particular recipient; further recipients may still be sent. <A href="xxfi_abort.html">xxfi_abort</A> is not called. </TD> </TR> @@ -76,11 +77,11 @@ Handle the envelope RCPT command. </TD> </TR> </TABLE> -</TR> +</TD></TR> <!----------- Notes ----------> <TR> -<TH valign="top" align=left>NOTES</TH> +<TH valign="top" align=left>NOTES</TH> <TD>For more details on ESMTP responses, please see RFC <A href="http://www.rfc-editor.org/rfc/rfc1869.txt">1869</A>.</TD> </TR> diff --git a/libmilter/docs/xxfi_eoh.html b/libmilter/docs/xxfi_eoh.html index 33f5fc004983..4be41d758bc3 100644 --- a/libmilter/docs/xxfi_eoh.html +++ b/libmilter/docs/xxfi_eoh.html @@ -31,6 +31,7 @@ Handle the end of message headers. <TD>Do nothing; return SMFIS_CONTINUE.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> diff --git a/libmilter/docs/xxfi_eom.html b/libmilter/docs/xxfi_eom.html index d473777e4b13..9bf040c02ad4 100644 --- a/libmilter/docs/xxfi_eom.html +++ b/libmilter/docs/xxfi_eom.html @@ -30,6 +30,7 @@ End of a message. <TD>Do nothing; return SMFIS_CONTINUE.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -43,7 +44,7 @@ End of a message. <!----------- Notes ----------> <TR> -<TH valign="top" align=left>NOTES</TH> +<TH valign="top" align=left>NOTES</TH> <TD>A filter is required to make all its modifications to the message headers, body, and envelope in xxfi_eom. Modifications are made via the smfi_* routines. </TD> diff --git a/libmilter/docs/xxfi_header.html b/libmilter/docs/xxfi_header.html index 16e814b47c48..bccada7e524f 100644 --- a/libmilter/docs/xxfi_header.html +++ b/libmilter/docs/xxfi_header.html @@ -32,6 +32,7 @@ Handle a message header. <TD>Do nothing; return SMFIS_CONTINUE.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -55,7 +56,7 @@ Handle a message header. <!----------- Notes ----------> <TR> -<TH valign="top" align=left>NOTES</TH> +<TH valign="top" align=left>NOTES</TH> <TD> <UL> <LI>Starting with sendmail 8.14, spaces after the colon in a header @@ -90,7 +91,7 @@ it was: <LI>Later filters will see header changes/additions made by earlier ones. -<LI>For much more detail about header format, please see +<LI>For much more detail about header format, please see RFC <A href="http://www.rfc-editor.org/rfc/rfc822.html">822</A> and RFC <A href="http://www.rfc-editor.org/rfc/rfc2822.html">2822</A> diff --git a/libmilter/docs/xxfi_helo.html b/libmilter/docs/xxfi_helo.html index 716eb9290f17..8c4309cd5bf2 100644 --- a/libmilter/docs/xxfi_helo.html +++ b/libmilter/docs/xxfi_helo.html @@ -12,7 +12,7 @@ $Id: xxfi_helo.html,v 1.13 2013-11-22 20:51:39 ca Exp $ <PRE> #include <libmilter/mfapi.h> sfsistat (*xxfi_helo)( - SMFICTX *ctx, + SMFICTX *ctx, char *helohost ); </PRE> @@ -34,6 +34,7 @@ some restrictions can be imposed by the MTA configuration. <TD>Do nothing; return SMFIS_CONTINUE.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> diff --git a/libmilter/docs/xxfi_negotiate.html b/libmilter/docs/xxfi_negotiate.html index b0502f47a711..e858a39c0e98 100644 --- a/libmilter/docs/xxfi_negotiate.html +++ b/libmilter/docs/xxfi_negotiate.html @@ -13,7 +13,7 @@ $Id: xxfi_negotiate.html,v 1.24 2013-11-22 20:51:39 ca Exp $ #include <libmilter/mfapi.h> #include <libmilter/mfdef.h> sfsistat (*xxfi_negotiate)( - SMFICTX *ctx, + SMFICTX *ctx, unsigned long f0, unsigned long f1, unsigned long f2, @@ -36,6 +36,8 @@ sfsistat (*xxfi_negotiate)( <TD>Return SMFIS_ALL_OPTS to change nothing.</TD> </TR> </TABLE> +</TD></TR> + <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> <TABLE border="1" cellspacing=0> @@ -48,6 +50,7 @@ sfsistat (*xxfi_negotiate)( </TD></TR> <TR><TD>f1</TD> <TD>the protocol steps offered by the MTA. + </TD></TR> <TR><TD>f2</TD> <TD>for future extensions. </TD></TR> @@ -59,6 +62,7 @@ sfsistat (*xxfi_negotiate)( </TD></TR> <TR><TD>pf1</TD> <TD>the protocol steps requested by the milter. + </TD></TR> <TR><TD>pf2</TD> <TD>for future extensions. </TD></TR> @@ -101,11 +105,11 @@ as they will be ignored. </TD> </TR> </TABLE> -</TR> +</TD></TR> <!----------- Notes ----------> <TR> -<TH valign="top" align=left>NOTES</TH> +<TH valign="top" align=left>NOTES</TH> <TD>This function allows a milter to dynamically determine and request operations and actions during startup. In previous versions, the actions (f0) were fixed in the @@ -140,6 +144,11 @@ By setting this bit, a milter can request that the MTA should also send <CODE>RCPT</CODE> commands that have been rejected because the user is unknown (or similar reasons), but not those which have been rejected because of syntax errors etc. +<!-- +In order for this request to have effect, +sendmail must have been built with the compile time option +<TT>_FFR_MILTER_CHECK_REJECTIONS_TOO</TT>. +--> If a milter requests this protocol step, then it should check the macro <CODE>{rcpt_mailer}</CODE>: @@ -204,11 +213,12 @@ space to headers when they are added, inserted, or changed. <LI>The MTA can be instructed not to send information about various SMTP stages, these flags start with: <A NAME="SMFIP_NO"><CODE>SMFIP_NO*</CODE></A>. +Setting any of these flags affects all connections. <UL> <LI><A NAME="SMFIP_NOCONNECT"><CODE>SMFIP_NOCONNECT</CODE></A>: <A HREF="xxfi_connect.html">xxfi_connect()</A> <LI><A NAME="SMFIP_NOHELO"><CODE>SMFIP_NOHELO</CODE></A>: -<A HREF="xxfi_header.html">xxfi_header()</A> +<A HREF="xxfi_helo.html">xxfi_helo()</A> <LI><A NAME="SMFIP_NOMAIL"><CODE>SMFIP_NOMAIL</CODE></A>: <A HREF="xxfi_envfrom.html">xxfi_envfrom()</A> <LI><A NAME="SMFIP_NORCPT"><CODE>SMFIP_NORCPT</CODE></A>: diff --git a/libmilter/docs/xxfi_unknown.html b/libmilter/docs/xxfi_unknown.html index 38c1c3d47166..94e4f39d9592 100644 --- a/libmilter/docs/xxfi_unknown.html +++ b/libmilter/docs/xxfi_unknown.html @@ -25,13 +25,14 @@ Handle unknown and unimplemented SMTP commands. <TR align="left" valign=top> <TH width="80">Called When</TH> <TD>xxfi_unknown is called when the client uses an SMTP command -that is either unknown or not implemented by the MTA. +that is either unknown or not implemented by the MTA.</TD> </TR> <TR align="left" valign=top> <TH>Default Behavior</TH> <TD>Do nothing; return SMFIS_CONTINUE.</TD> </TR> </TABLE> +</TD></TR> <!----------- Arguments ----------> <TR><TH valign="top" align=left>ARGUMENTS</TH><TD> @@ -62,13 +63,13 @@ that is either unknown or not implemented by the MTA. </TD> </TR> </TABLE> -</TR> +</TD></TR> <!----------- Notes ----------> <TR> -<TH valign="top" align=left>NOTES</TH> +<TH valign="top" align=left>NOTES</TH> <TD>The SMTP command will always be rejected by the server, -it is only possible to return a different error code. +it is only possible to return a different error code.</TD> </TR> </TABLE> |