summaryrefslogtreecommitdiff
path: root/libmilter/docs
diff options
context:
space:
mode:
Diffstat (limited to 'libmilter/docs')
-rw-r--r--libmilter/docs/api.html71
-rw-r--r--libmilter/docs/design.html12
-rw-r--r--libmilter/docs/index.html2
-rw-r--r--libmilter/docs/installation.html4
-rw-r--r--libmilter/docs/overview.html16
-rw-r--r--libmilter/docs/sample.html4
-rw-r--r--libmilter/docs/smfi_addheader.html16
-rw-r--r--libmilter/docs/smfi_addrcpt.html12
-rw-r--r--libmilter/docs/smfi_addrcpt_par.html15
-rw-r--r--libmilter/docs/smfi_chgfrom.html12
-rw-r--r--libmilter/docs/smfi_chgheader.html12
-rw-r--r--libmilter/docs/smfi_delrcpt.html11
-rw-r--r--libmilter/docs/smfi_getpriv.html3
-rw-r--r--libmilter/docs/smfi_getsymval.html5
-rw-r--r--libmilter/docs/smfi_insheader.html17
-rw-r--r--libmilter/docs/smfi_main.html3
-rw-r--r--libmilter/docs/smfi_opensocket.html9
-rw-r--r--libmilter/docs/smfi_progress.html3
-rw-r--r--libmilter/docs/smfi_quarantine.html5
-rw-r--r--libmilter/docs/smfi_register.html25
-rw-r--r--libmilter/docs/smfi_replacebody.html15
-rw-r--r--libmilter/docs/smfi_setbacklog.html3
-rw-r--r--libmilter/docs/smfi_setconn.html9
-rw-r--r--libmilter/docs/smfi_setdbg.html3
-rw-r--r--libmilter/docs/smfi_setmlreply.html11
-rw-r--r--libmilter/docs/smfi_setpriv.html5
-rw-r--r--libmilter/docs/smfi_setreply.html13
-rw-r--r--libmilter/docs/smfi_setsymlist.html7
-rw-r--r--libmilter/docs/smfi_settimeout.html10
-rw-r--r--libmilter/docs/smfi_stop.html3
-rw-r--r--libmilter/docs/smfi_version.html1
-rw-r--r--libmilter/docs/xxfi_abort.html3
-rw-r--r--libmilter/docs/xxfi_body.html5
-rw-r--r--libmilter/docs/xxfi_close.html5
-rw-r--r--libmilter/docs/xxfi_connect.html10
-rw-r--r--libmilter/docs/xxfi_data.html7
-rw-r--r--libmilter/docs/xxfi_envfrom.html5
-rw-r--r--libmilter/docs/xxfi_envrcpt.html7
-rw-r--r--libmilter/docs/xxfi_eoh.html1
-rw-r--r--libmilter/docs/xxfi_eom.html3
-rw-r--r--libmilter/docs/xxfi_header.html5
-rw-r--r--libmilter/docs/xxfi_helo.html3
-rw-r--r--libmilter/docs/xxfi_negotiate.html18
-rw-r--r--libmilter/docs/xxfi_unknown.html9
44 files changed, 246 insertions, 172 deletions
diff --git a/libmilter/docs/api.html b/libmilter/docs/api.html
index b314a0f4e96d4..4a90e9a432e60 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 294f9a153d08c..3636fc8158f54 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 57d9ebc6d74d8..90df444f62658 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 91fe0d818a3f0..7405afd7f0149 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 78676d377a116..b88e451369650 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 de8d58947a398..b470ae390eee6 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 &amp;&amp; rcptaddr != NULL &amp;&amp;
(strcasecmp(rcptaddr, reject) == 0))
{
if (fprintf(priv-&gt;mlfi_fp, "RCPT %s -- REJECTED\n",
@@ -298,7 +298,7 @@ mlfi_cleanup(ctx, ok)
return rstat;
/* close the archive file */
- if (priv-&gt;mlfi_fp != NULL && fclose(priv-&gt;mlfi_fp) == EOF)
+ if (priv-&gt;mlfi_fp != NULL &amp;&amp; fclose(priv-&gt;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 e58c8d713c60a..fff4dc7fe6fe4 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 42014bf1d8210..81eecaf0069e5 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 0176e69e0617b..9d72cd6ca82bc 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 a107ee9ebebc0..0cfe7b6fc800d 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 b3004032e4b86..de132f442b5b8 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 ec1412bd37789..bd42a7319e563 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 783d6402ef45c..5ed8a22c2c604 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 dff8dc638c84a..7e3e4d5594345 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 3f568864835cd..7759dc90c1a55 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 cb63f96bc5d02..87228fc166d0e 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 d4f7e3a705ed0..7b9e49df97afe 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 2b87b012422f6..53205ad5dc311 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 b63da2d6c50f4..6c954c44036ec 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 30ab75cae4979..5c61beefc1a50 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 4a5117964a331..0842298bc62c1 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 &gt; 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 9612855554424..f025009db7ed5 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 eba7c5b7e52e3..8897f5aca5a7d 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 58d519935e204..e7498391105bc 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 e9118838fd394..3f36e52964308 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 5b03456f47aaa..a9cb37e598c90 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 21ec5a57d0927..615567107a4ab 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 c270d0b5647b9..27bdd8a5f8ede 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 &lt;libmilter/mfapi.h&gt;
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 35cd51003ae67..aa135618a9d07 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 aa725b9dbc251..c85a20d76ac56 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 64c4a4d8f8acb..f9b7bcb86b0ca 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 9ec8f49907377..4e20d0e18d520 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 8110350658741..511eeb3aae68c 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 b5cf2ff237ad8..1999d0e3896bd 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 29a2c911153e3..c84f9f2817386 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 &lt;libmilter/mfapi.h&gt;
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 7dedb4183097b..f8b715b5675e8 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 24811e14a6c11..b553b4d9fd638 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 9503ab98c6169..d15b70fdf1879 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 33f5fc004983d..4be41d758bc36 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 d473777e4b133..9bf040c02ad49 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 16e814b47c480..bccada7e524fd 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 716eb9290f177..8c4309cd5bf27 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 &lt;libmilter/mfapi.h&gt;
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 b0502f47a7115..e858a39c0e988 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 &lt;libmilter/mfapi.h&gt;
#include &lt;libmilter/mfdef.h&gt;
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 38c1c3d47166a..94e4f39d9592d 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>