diff options
Diffstat (limited to 'contrib/sendmail/libmilter/docs')
51 files changed, 0 insertions, 5742 deletions
diff --git a/contrib/sendmail/libmilter/docs/api.html b/contrib/sendmail/libmilter/docs/api.html deleted file mode 100644 index 4214df4dd87a1..0000000000000 --- a/contrib/sendmail/libmilter/docs/api.html +++ /dev/null @@ -1,320 +0,0 @@ -<HTML> -<HEAD><TITLE>Milter API</TITLE></HEAD> -<BODY> -<!-- -$Id: api.html,v 1.35 2006/11/30 23:09:23 ca Exp $ ---> -<H1>Milter API</H1> - -<H2>Contents</H2> -<UL> - <LI><A HREF="#LibraryControlFunctions">Library Control Functions</A> - <LI><A HREF="#DataAccessFunctions">Data Access Functions</A> - <LI><A HREF="#MessageModificationFunctions">Message Modification Functions</A> - <LI><A HREF="#Callbacks">Callbacks</A> - <LI><A HREF="#Miscellaneous">Miscellaneous</A> -</UL> - -<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 -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. - -<P> -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> -<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=2><TR BGCOLOR="#dddddd"><TH>Function</TH><TH>Description</TH></TR> - -<TR><TD><A HREF="smfi_opensocket.html">smfi_opensocket</A></TD><TD>Try to create the interface socket.</TD></TR> - -<TR><TD><A HREF="smfi_register.html">smfi_register</A></TD><TD>Register a filter.</TD></TR> - -<TR><TD><A HREF="smfi_setconn.html">smfi_setconn</A></TD><TD>Specify socket to use.</TD></TR> - -<TR><TD><A HREF="smfi_settimeout.html">smfi_settimeout</A></TD><TD>Set timeout.</TD></TR> - -<TR><TD><A HREF="smfi_setbacklog.html">smfi_setbacklog</A></TD><TD>Define the incoming <CODE>listen(2)</CODE> queue size.</TD></TR> - -<TR><TD><A HREF="smfi_setdbg.html">smfi_setdbg</A></TD><TD>Set the milter library debugging (tracing) level.</TD></TR> - -<TR><TD><A HREF="smfi_stop.html">smfi_stop</A></TD><TD>Cause an orderly shutdown.</TD></TR> - -<TR><TD><A HREF="smfi_main.html">smfi_main</A></TD><TD>Hand control to libmilter.</TD></TR> - -</TABLE> - -<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. -<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 -of a symbol.</TD></TR> - -<TR><TD><A HREF="smfi_getpriv.html">smfi_getpriv</A></TD><TD>Get the private data -pointer.</TD></TR> - -<TR><TD><A HREF="smfi_setpriv.html">smfi_setpriv</A></TD><TD>Set the private data -pointer.</TD></TR> - -<TR><TD><A HREF="smfi_setreply.html">smfi_setreply</A></TD><TD>Set the specific -reply code to be used.</TD></TR> - -<TR><TD><A HREF="smfi_setmlreply.html">smfi_setmlreply</A></TD><TD>Set the -specific multi-line reply to be used.</TD></TR> - -</TABLE> - -<H2><A NAME="MessageModificationFunctions">Message Modification Functions</A></H2> - -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. - -<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. - -<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, -<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> -<TR><TD><A HREF="smfi_addheader.html">smfi_addheader</A></TD><TD>Add a header to -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_insheader.html">smfi_insheader</A></TD><TD>Insert a -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> - -<TR><TD><A HREF="smfi_addrcpt.html">smfi_addrcpt</A></TD><TD>Add a recipient to -the envelope.</TD><TD>SMFIF_ADDRCPT</TD></TR> - -<TR><TD><A HREF="smfi_addrcpt_par.html">smfi_addrcpt_par</A></TD><TD>Add -a recipient including ESMTP parameter to the envelope. -</TD><TD>SMFIF_ADDRCPT_PAR</TD></TR> - -<TR><TD><A HREF="smfi_delrcpt.html">smfi_delrcpt</A></TD><TD>Delete a recipient -from the envelope.</TD><TD>SMFIF_DELRCPT</TD></TR> - -<TR><TD><A HREF="smfi_replacebody.html">smfi_replacebody</A></TD><TD>Replace the -body of the message.</TD><TD>SMFIF_CHGBODY</TD></TR> - -</TABLE> - -<H2>Other Message Handling Functions</H2> - -The following functions provide special case handling instructions for -milter or the MTA, without altering the content or status of the message. -<EM>They too 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. - -<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. - -<P> -<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=2><TR BGCOLOR="#dddddd"><TH>Function</TH><TH>Description</TH></TR> -<TR><TD><A HREF="smfi_progress.html">smfi_progress</A></TD><TD>Report operation in progress.</TD></TR> - -<TR><TD><A HREF="smfi_quarantine.html">smfi_quarantine</A></TD><TD>Quarantine a message.</TD></TR> - -</TABLE> - -<H2><A NAME="Callbacks">Callbacks</A></H2> - -The filter should implement one or more of the following callbacks, -which are registered via <A HREF="smfi_register.html">smfi_register</A>: - -<P> -<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=2><TR BGCOLOR="#dddddd"><TH>Function</TH><TH>Description</TH></TR> - -<TR><TD><A HREF="xxfi_connect.html">xxfi_connect</A></TD><TD>connection info</TD></TR> - -<TR><TD><A HREF="xxfi_helo.html">xxfi_helo</A></TD><TD>SMTP HELO/EHLO command</TD></TR> - -<TR><TD><A HREF="xxfi_envfrom.html">xxfi_envfrom</A></TD><TD>envelope sender</TD></TR> - -<TR><TD><A HREF="xxfi_envrcpt.html">xxfi_envrcpt</A></TD><TD>envelope recipient</TD></TR> - -<TR><TD><A HREF="xxfi_data.html">xxfi_data</A></TD><TD>DATA command</TD></TR> - -<TR><TD><A HREF="xxfi_unknown.html">xxfi_unknown</A></TD><TD>Unknown SMTP command</TD></TR> - -<TR><TD><A HREF="xxfi_header.html">xxfi_header</A></TD><TD>header</TD></TR> - -<TR><TD><A HREF="xxfi_eoh.html">xxfi_eoh</A></TD><TD>end of header</TD></TR> - -<TR><TD><A HREF="xxfi_body.html">xxfi_body</A></TD><TD>body block</TD></TR> - -<TR><TD><A HREF="xxfi_eom.html">xxfi_eom</A></TD><TD>end of message</TD></TR> - -<TR><TD><A HREF="xxfi_abort.html">xxfi_abort</A></TD><TD>message aborted</TD></TR> - -<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> - -</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. - -<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). -<A HREF="xxfi_envrcpt.html">xxfi_envrcpt</A> is recipient-oriented. -<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. - -<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>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 - <A HREF="xxfi_eom.html">xxfi_eom</A> or - <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> - </TR> - <TR valign="top"> - <TD>SMFIS_DISCARD</TD> - <TD>For a message- or recipient-oriented routine, accept this message, but silently discard it.<BR> - SMFIS_DISCARD should not be returned by a connection-oriented routine. - </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_ACCEPT</TD> - <TD>For a connection-oriented routine, accept this connection without further filter processing; call <A HREF="xxfi_close.html">xxfi_close</A>.<BR> - For a message- or recipient-oriented routine, accept this message without further filtering.<BR> - </TD> - </TR> - <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 recipient-oriented routine, only fail for the current recipient; continue message processing. - </TD> - </TR> - - <TR valign="top"> - <TD><A NAME="SMFIS_SKIP">SMFIS_SKIP</A></TD> - <TD>Skip further callbacks of the same type in this transaction. - Currently this return value is only allowed in - <A HREF="xxfi_body.html">xxfi_body()</A>. - It can be used if a milter has received sufficiently many - body chunks to make a decision, but still wants to invoke - message modification functions that are only allowed to be called from - <A HREF="xxfi_eom.html">xxfi_eom()</A>. - Note: the milter <EM>must</EM> - <A HREF="xxfi_negotiate.html">negotiate</A> - this behavior with the MTA, i.e., it must check whether - the protocol action - <A HREF="xxfi_negotiate.html#SMFIP_SKIP"><CODE>SMFIP_SKIP</CODE></A> - is available and if so, the milter must request it. - </TD> - </TR> - - <TR valign="top"> - <TD><A NAME="SMFIS_NOREPLY">SMFIS_NOREPLY</A></TD> - <TD>Do not send a reply back to the MTA. - The milter <EM>must</EM> - <A HREF="xxfi_negotiate.html">negotiate</A> - this behavior with the MTA, i.e., it must check whether - the appropriate protocol action - <A HREF="xxfi_negotiate.html#SMFIP_NR_"><CODE>SMFIP_NR_*</CODE></A> - is available and if so, the milter must request it. - If you set the - <A HREF="xxfi_negotiate.html#SMFIP_NR_"><CODE>SMFIP_NR_*</CODE></A> - protocol action for a callback, that callback <EM>must</EM> - always reply with - SMFIS_NOREPLY. - Using any other reply code is a violation of the API. - If in some cases your callback may return another value - (e.g., due to some resource shortages), then you - <EM>must not</EM> set - <A HREF="xxfi_negotiate.html#SMFIP_NR_"><CODE>SMFIP_NR_*</CODE></A> - and you must use - SMFIS_CONTINUE as the default return code. - (Alternatively you can try to delay reporting the problem to - a later callback for which - <A HREF="xxfi_negotiate.html#SMFIP_NR_"><CODE>SMFIP_NR_*</CODE></A> - is not set.) - </TD> - </TR> - -</TABLE> - -<H2><A NAME="Miscellaneous">Miscellaneous</A></H2> - -<P> -<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=2><TR BGCOLOR="#dddddd"><TH>Function</TH><TH>Description</TH></TR> - -<TR><TD><A HREF="smfi_version.html">smfi_version</A></TD><TD>libmilter (runtime) version info</TD></TR> - -<TR><TD><A HREF="smfi_setsymlist.html">smfi_setsymlist</A></TD><TD> -Set the list of macros that the milter wants to receive from the MTA -for a protocol stage. -</TD></TR> - -</TABLE> - -<P> -<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=2><TR BGCOLOR="#dddddd"><TH>Constant</TH><TH>Description</TH></TR> - -<TR><TD><A HREF="smfi_version.html">SMFI_VERSION</A></TD><TD>libmilter (compile time) version info</TD></TR> - -</TABLE> - - -<HR SIZE="1"> -<FONT SIZE="-1"> -Copyright (c) 2000, 2003, 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/design.html b/contrib/sendmail/libmilter/docs/design.html deleted file mode 100644 index f2e5f11d8e074..0000000000000 --- a/contrib/sendmail/libmilter/docs/design.html +++ /dev/null @@ -1,147 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Architecture</TITLE> -</HEAD> -<BODY> -<!-- -$Id: design.html,v 1.12 2006/08/08 20:55:57 ca Exp $ ---> - -<H1>Architecture</H1> - -<H2>Contents</H2> - -<UL> - <LI>Design Goals - <LI>Implementing Filtering Policies - <LI>MTA - Filter Communication -</UL> - -<H2>Goals</H2> - -The Sendmail Content Management API (Milter) provides an interface for -third-party software to validate and modify messages as they pass -through the mail transport system. Filters can process messages' -connection (IP) information, envelope protocol elements, message -headers, and/or message body contents, and modify a message's -recipients, headers, and body. The MTA configuration file specifies -which filters are to be applied, and in what order, allowing an -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. -However, as will be seen in the example, many filtering applications -can be written with relatively little protocol knowledge. - -<P> -Given these expectations, the API is designed to achieve the following -goals: - -<OL> - <LI>Safety/security. - Filter processes should not need to run as root - (of course, they can if required, but that is a local issue); - this will simplify coding - and limit the impact of security flaws in the filter program. -<P> - <LI>Reliability. - Coding failures in a Milter process that cause that process - to hang or core-dump - should not stop mail delivery. - Faced with such a failure, - sendmail should use a default mechanism, - either behaving as if the filter were not present - or as if a required resource were unavailable. - The latter failure mode will generally have sendmail return - a 4xx SMTP code (although in later phases of the SMTP protocol - it may cause the mail to be queued for later processing). -<P> - <LI>Simplicity. - The API should make implementation of a new filter - no more difficult than absolutely necessary. - Subgoals include: - <UL> - <LI>Encourage good thread practice - by defining thread-clean interfaces including local data hooks. - <LI>Provide all interfaces required - while avoiding unnecessary pedanticism. - </UL> -<P> - <LI>Performance. - Simple filters should not seriously impact overall MTA performance. -</OL> - -<H2>Implementing Filtering Policies</H2> - -Milter is designed to allow a server administrator to combine -third-party filters to implement a desired mail filtering policy. For -example, if a site wished to scan incoming mail for viruses on several -platforms, eliminate unsolicited commercial email, and append a mandated -footer to selected incoming messages, the administrator could configure -the MTA to filter messages first through a server based anti-virus -engine, then via a large-scale spam-catching service, and finally -append the desired footer if the message still met requisite criteria. -Any of these filters could be added or changed independently. - -<P> -Thus the site administrator, not the filter writer, controls the -overall mail filtering environment. In particular, he/she must decide -which filters are run, in what order they are run, and how they -communicate with the MTA. These parameters, as well as the -actions to be taken if a filter becomes unavailable, are selectable -during MTA configuration. <A href="installation.html">Further -details</A> are available later in this document. - -<H2>MTA - Filter communication</H2> - -Filters run as separate processes, outside of the sendmail address -space. The benefits of this are threefold: - -<OL> - <LI>The filter need not run with "root" permissions, thereby - avoiding a large family of potential security problems.</LI> - - <LI>Failures in a particular filter will not affect the MTA or - other filters.</LI> - - <LI>The filter can potentially have higher performance because of - the parallelism inherent in multiple processes.</LI> -</OL> - -<P> -Each filter may communicate with multiple MTAs at the same time over -local or remote connections, using multiple threads of execution. -<A HREF="#figure-1">Figure 1</A> illustrates a possible network of -communication channels between a site's filters, its MTAs, and other -MTAs on the network: -</P> -<DIV align="center"> -<A name="figure-1"><IMG src="figure1.jpg" ALT=""></A><BR> -<B>Figure 1: A set of MTA's interacting with a set of filters.</B> -</DIV> -<P> -The Milter library (libmilter) implements the communication protocol. -It accepts connections from various MTAs, passes the relevant data to -the filter through callbacks, then makes appropriate responses based -on return codes. A filter may also send data to the MTA as a result -of library calls. <A href="#figure-2">Figure 2</A> shows a single -filter process processing messages from two MTAs: -</P> -<DIV align="center"> -<IMG src="figure2.jpg" ALT=""><BR> -<B>Figure 2: A filter handling simultaneous requests from two MTA's.</B> -</DIV> -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/figure1.fig b/contrib/sendmail/libmilter/docs/figure1.fig deleted file mode 100644 index e0cbdc8e8aa24..0000000000000 --- a/contrib/sendmail/libmilter/docs/figure1.fig +++ /dev/null @@ -1,56 +0,0 @@ -#FIG 3.2 -Landscape -Center -Inches -Letter -100.00 -Single --2 -1200 2 -6 975 225 5025 3375 -6 1500 1275 2700 2025 -2 2 0 2 1 7 50 0 -1 0.000 0 0 7 0 0 5 - 1650 1425 2550 1425 2550 1875 1650 1875 1650 1425 -4 0 1 50 0 0 20 0.0000 4 195 645 1800 1725 MTA\001 --6 -6 1950 2625 3150 3375 -2 2 0 2 4 7 50 0 -1 0.000 0 0 7 0 0 5 - 2100 2775 3000 2775 3000 3225 2100 3225 2100 2775 -4 0 4 50 0 0 20 0.0000 4 195 645 2250 3075 MTA\001 --6 -6 1050 225 2250 975 -2 2 0 2 14 7 50 0 -1 0.000 0 0 7 0 0 5 - 1200 375 2100 375 2100 825 1200 825 1200 375 -4 0 14 50 0 0 20 0.0000 4 195 645 1350 675 MTA\001 --6 -2 1 0 2 1 7 50 0 -1 0.000 0 0 7 0 0 2 - 2550 1575 3750 2625 -2 1 0 2 1 7 50 0 -1 0.000 0 0 7 0 0 2 - 2550 1575 3750 1575 -2 1 0 2 1 7 50 0 -1 0.000 0 0 7 0 0 2 - 2550 1575 3750 825 -2 1 0 2 4 7 50 0 -1 0.000 0 0 7 0 0 2 - 3000 2925 3750 2625 -2 1 0 2 14 7 50 0 -1 0.000 0 0 7 0 0 2 - 2100 525 3750 825 -2 1 0 2 14 7 50 0 -1 0.000 0 0 7 0 0 2 - 2100 525 3750 2625 -2 1 0 4 0 7 50 0 -1 0.000 0 0 7 0 0 2 - 1050 3075 2100 3075 -2 1 0 4 0 7 50 0 -1 0.000 0 0 7 0 0 2 - 1050 1725 1650 1725 -2 1 0 4 0 7 50 0 -1 0.000 0 0 7 0 0 2 - 1050 675 1200 675 -2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 - 3750 2475 4950 2475 4950 2925 3750 2925 3750 2475 -2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 - 3750 1425 4950 1425 4950 1875 3750 1875 3750 1425 -2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 - 3750 525 4950 525 4950 975 3750 975 3750 525 -4 0 0 50 0 1 20 0.0000 4 210 795 3900 2775 Filter 3\001 -4 0 0 50 0 1 20 0.0000 4 210 795 3900 1725 Filter 2\001 -4 0 0 50 0 1 20 0.0000 4 210 795 3900 825 Filter 1\001 --6 -2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 - 300 525 1050 525 1050 3225 300 3225 300 525 -4 0 0 50 0 2 24 1.5708 4 255 1950 825 2850 INTERNET\001 diff --git a/contrib/sendmail/libmilter/docs/figure1.jpg b/contrib/sendmail/libmilter/docs/figure1.jpg Binary files differdeleted file mode 100644 index 1a5f1dec386a9..0000000000000 --- a/contrib/sendmail/libmilter/docs/figure1.jpg +++ /dev/null diff --git a/contrib/sendmail/libmilter/docs/figure1.ps b/contrib/sendmail/libmilter/docs/figure1.ps deleted file mode 100644 index ae317607e4d22..0000000000000 --- a/contrib/sendmail/libmilter/docs/figure1.ps +++ /dev/null @@ -1,173 +0,0 @@ -%!PS-Adobe-2.0 -%%Title: figure1.fig -%%Creator: fig2dev Version 3.2.3 Patchlevel -%%CreationDate: Tue Jun 6 14:00:04 2000 -%%For: sean@host232.Sendmail.COM (Sean O'rourke,5400) -%%Orientation: Landscape -%%Pages: 1 -%%BoundingBox: 0 0 612 792 -%%BeginSetup -%%IncludeFeature: *PageSize Letter -%%EndSetup -%%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save -newpath 0 792 moveto 0 0 lineto 612 0 lineto 612 792 lineto closepath clip newpath -198.0 238.0 translate - 90 rotate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -%%Page: 1 1 -10 setmiterlimit - 0.06000 0.06000 sc -%%Page: 1 1 -/Times-Bold ff 360.00 scf sf -825 2850 m -gs 1 -1 sc 90.0 rot (INTERNET) col0 sh gr -/Times-Roman ff 300.00 scf sf -1800 1725 m -gs 1 -1 sc (MTA) col1 sh gr -% Polyline -15.000 slw -n 2100 2775 m 3000 2775 l 3000 3225 l 2100 3225 l - cp gs col4 s gr -/Times-Roman ff 300.00 scf sf -2250 3075 m -gs 1 -1 sc (MTA) col4 sh gr -% Polyline -n 1200 375 m 2100 375 l 2100 825 l 1200 825 l - cp gs col14 s gr -/Times-Roman ff 300.00 scf sf -1350 675 m -gs 1 -1 sc (MTA) col14 sh gr -% Polyline -n 2550 1575 m - 3750 2625 l gs col1 s gr -% Polyline -n 2550 1575 m - 3750 1575 l gs col1 s gr -% Polyline -n 2550 1575 m - 3750 825 l gs col1 s gr -% Polyline -n 3000 2925 m - 3750 2625 l gs col4 s gr -% Polyline -n 2100 525 m - 3750 825 l gs col14 s gr -% Polyline -n 2100 525 m - 3750 2625 l gs col14 s gr -% Polyline -45.000 slw -n 1050 3075 m - 2100 3075 l gs col0 s gr -% Polyline -n 1050 1725 m - 1650 1725 l gs col0 s gr -% Polyline -n 1050 675 m - 1200 675 l gs col0 s gr -% Polyline -15.000 slw -n 3750 2475 m 4950 2475 l 4950 2925 l 3750 2925 l - cp gs col0 s gr -% Polyline -n 3750 1425 m 4950 1425 l 4950 1875 l 3750 1875 l - cp gs col0 s gr -% Polyline -n 3750 525 m 4950 525 l 4950 975 l 3750 975 l - cp gs col0 s gr -/Times-Italic ff 300.00 scf sf -3900 2775 m -gs 1 -1 sc (Filter 3) col0 sh gr -/Times-Italic ff 300.00 scf sf -3900 1725 m -gs 1 -1 sc (Filter 2) col0 sh gr -/Times-Italic ff 300.00 scf sf -3900 825 m -gs 1 -1 sc (Filter 1) col0 sh gr -% Polyline -7.500 slw -n 300 525 m 1050 525 l 1050 3225 l 300 3225 l - cp gs col0 s gr -% Polyline -15.000 slw -n 1650 1425 m 2550 1425 l 2550 1875 l 1650 1875 l - cp gs col1 s gr -$F2psEnd -rs -showpage diff --git a/contrib/sendmail/libmilter/docs/figure2.fig b/contrib/sendmail/libmilter/docs/figure2.fig deleted file mode 100644 index c93bfe3d5e588..0000000000000 --- a/contrib/sendmail/libmilter/docs/figure2.fig +++ /dev/null @@ -1,67 +0,0 @@ -#FIG 3.2 -Landscape -Center -Inches -Letter -100.00 -Single --2 -1200 2 -5 1 0 1 0 7 50 0 -1 0.000 0 0 1 0 2981.250 1200.000 2700 1050 3300 1200 2700 1350 - 1 1 1.00 60.00 120.00 -6 4200 900 6450 1350 -2 2 0 1 1 7 50 0 -1 0.000 0 0 7 0 0 5 - 4200 900 6450 900 6450 1350 4200 1350 4200 900 -4 0 1 50 0 0 16 0.0000 4 195 2040 4350 1200 xxfi_header callback\001 --6 -6 4200 2250 6450 2700 -2 2 0 1 4 7 50 0 -1 0.000 0 0 7 0 0 5 - 4200 2250 6450 2250 6450 2700 4200 2700 4200 2250 -4 0 4 50 0 0 16 0.0000 4 195 2040 4350 2550 xxfi_header callback\001 --6 -6 600 2100 1800 2850 -2 2 0 2 4 7 50 0 -1 0.000 0 0 7 0 0 5 - 750 2250 1650 2250 1650 2700 750 2700 750 2250 -4 0 4 50 0 0 20 0.0000 4 195 645 900 2550 MTA\001 --6 -6 600 750 1800 1500 -2 2 0 2 1 7 50 0 -1 0.000 0 0 7 0 0 5 - 750 900 1650 900 1650 1350 750 1350 750 900 -4 0 1 50 0 0 20 0.0000 4 195 645 900 1200 MTA\001 --6 -2 1 0 2 1 7 50 0 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 4200 1200 3600 1200 -2 1 0 2 1 7 50 0 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3450 900 4050 900 -2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 - 2400 300 6600 300 6600 3300 2400 3300 2400 300 -2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 - 2550 750 3450 750 3450 2700 2550 2700 2550 750 -2 1 0 2 4 7 50 0 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 3450 2700 4050 2700 -2 1 0 2 4 7 50 0 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 4200 2400 3600 2400 -2 1 0 2 4 7 50 0 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 1650 2700 2250 2700 -2 1 0 2 4 7 50 0 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 2400 2400 1800 2400 -2 1 0 2 1 7 50 0 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 1650 900 2250 900 -2 1 0 2 1 7 50 0 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 2400 1200 1800 1200 -4 0 0 50 0 0 20 0.0000 4 195 630 3900 600 Filter\001 -4 0 4 50 0 0 12 0.0000 4 180 1620 3450 3000 callback (arguments)\001 -4 0 4 50 0 0 12 0.0000 4 180 1575 3900 1950 optional library calls,\001 -4 0 4 50 0 0 12 0.0000 4 135 855 3900 2175 return code\001 -4 0 4 50 0 0 12 0.0000 4 135 780 1500 2100 responses\001 -4 0 0 50 0 0 16 0.0000 4 165 645 2700 2085 Milter\001 -4 0 0 50 0 0 16 0.0000 4 225 675 2700 2400 library\001 -4 0 4 50 0 0 12 0.0000 4 135 510 1500 3000 header\001 diff --git a/contrib/sendmail/libmilter/docs/figure2.jpg b/contrib/sendmail/libmilter/docs/figure2.jpg Binary files differdeleted file mode 100644 index 8b11485cde9d2..0000000000000 --- a/contrib/sendmail/libmilter/docs/figure2.jpg +++ /dev/null diff --git a/contrib/sendmail/libmilter/docs/figure2.ps b/contrib/sendmail/libmilter/docs/figure2.ps deleted file mode 100644 index 861a193c6f0aa..0000000000000 --- a/contrib/sendmail/libmilter/docs/figure2.ps +++ /dev/null @@ -1,242 +0,0 @@ -%!PS-Adobe-2.0 -%%Title: figure2.fig -%%Creator: fig2dev Version 3.2.3 Patchlevel -%%CreationDate: Tue Jun 6 13:57:47 2000 -%%For: sean@host232.Sendmail.COM (Sean O'rourke,5400) -%%Orientation: Landscape -%%Pages: 1 -%%BoundingBox: 0 0 612 792 -%%BeginSetup -%%IncludeFeature: *PageSize Letter -%%EndSetup -%%Magnification: 1.5000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save -newpath 0 792 moveto 0 0 lineto 612 0 lineto 612 792 lineto closepath clip newpath -144.0 65.5 translate - 90 rotate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -%%Page: 1 1 -10 setmiterlimit - 0.09000 0.09000 sc -%%Page: 1 1 -/Times-Roman ff 180.00 scf sf -1500 3000 m -gs 1 -1 sc (header) col4 sh gr -/Times-Roman ff 240.00 scf sf -4350 1200 m -gs 1 -1 sc (xxfi_header callback) col1 sh gr -% Polyline -7.500 slw -n 4200 2250 m 6450 2250 l 6450 2700 l 4200 2700 l - cp gs col4 s gr -/Times-Roman ff 240.00 scf sf -4350 2550 m -gs 1 -1 sc (xxfi_header callback) col4 sh gr -% Polyline -15.000 slw -n 750 2250 m 1650 2250 l 1650 2700 l 750 2700 l - cp gs col4 s gr -/Times-Roman ff 300.00 scf sf -900 2550 m -gs 1 -1 sc (MTA) col4 sh gr -% Polyline -n 750 900 m 1650 900 l 1650 1350 l 750 1350 l - cp gs col1 s gr -/Times-Roman ff 300.00 scf sf -900 1200 m -gs 1 -1 sc (MTA) col1 sh gr -% Arc -7.500 slw -gs clippath -2713 1319 m 2667 1357 l 2761 1475 l 2710 1363 l 2808 1437 l cp -eoclip -n 2981.2 1200.0 318.8 -151.9 151.9 arc -gs col0 s gr - gr - -% arrowhead -n 2808 1437 m 2710 1363 l 2761 1475 l 2808 1437 l cp gs 0.00 setgray ef gr col0 s -% Polyline -15.000 slw -gs clippath -3585 1140 m 3585 1260 l 3872 1260 l 3632 1200 l 3872 1140 l cp -eoclip -n 4200 1200 m - 3600 1200 l gs col1 s gr gr - -% arrowhead -n 3872 1140 m 3632 1200 l 3872 1260 l 3872 1140 l cp gs col1 1.00 shd ef gr col1 s -% Polyline -gs clippath -4065 960 m 4065 840 l 3778 840 l 4018 900 l 3778 960 l cp -eoclip -n 3450 900 m - 4050 900 l gs col1 s gr gr - -% arrowhead -n 3778 960 m 4018 900 l 3778 840 l 3778 960 l cp gs col1 1.00 shd ef gr col1 s -% Polyline -n 2400 300 m 6600 300 l 6600 3300 l 2400 3300 l - cp gs col0 s gr -% Polyline -7.500 slw -n 2550 750 m 3450 750 l 3450 2700 l 2550 2700 l - cp gs col0 s gr -% Polyline -15.000 slw -gs clippath -4065 2760 m 4065 2640 l 3778 2640 l 4018 2700 l 3778 2760 l cp -eoclip -n 3450 2700 m - 4050 2700 l gs col4 s gr gr - -% arrowhead -n 3778 2760 m 4018 2700 l 3778 2640 l 3778 2760 l cp gs col4 1.00 shd ef gr col4 s -% Polyline -gs clippath -3585 2340 m 3585 2460 l 3872 2460 l 3632 2400 l 3872 2340 l cp -eoclip -n 4200 2400 m - 3600 2400 l gs col4 s gr gr - -% arrowhead -n 3872 2340 m 3632 2400 l 3872 2460 l 3872 2340 l cp gs col4 1.00 shd ef gr col4 s -% Polyline -gs clippath -2265 2760 m 2265 2640 l 1978 2640 l 2218 2700 l 1978 2760 l cp -eoclip -n 1650 2700 m - 2250 2700 l gs col4 s gr gr - -% arrowhead -n 1978 2760 m 2218 2700 l 1978 2640 l 1978 2760 l cp gs col4 1.00 shd ef gr col4 s -% Polyline -gs clippath -1785 2340 m 1785 2460 l 2072 2460 l 1832 2400 l 2072 2340 l cp -eoclip -n 2400 2400 m - 1800 2400 l gs col4 s gr gr - -% arrowhead -n 2072 2340 m 1832 2400 l 2072 2460 l 2072 2340 l cp gs col4 1.00 shd ef gr col4 s -% Polyline -gs clippath -2265 960 m 2265 840 l 1978 840 l 2218 900 l 1978 960 l cp -eoclip -n 1650 900 m - 2250 900 l gs col1 s gr gr - -% arrowhead -n 1978 960 m 2218 900 l 1978 840 l 1978 960 l cp gs col1 1.00 shd ef gr col1 s -% Polyline -gs clippath -1785 1140 m 1785 1260 l 2072 1260 l 1832 1200 l 2072 1140 l cp -eoclip -n 2400 1200 m - 1800 1200 l gs col1 s gr gr - -% arrowhead -n 2072 1140 m 1832 1200 l 2072 1260 l 2072 1140 l cp gs col1 1.00 shd ef gr col1 s -/Times-Roman ff 300.00 scf sf -3900 600 m -gs 1 -1 sc (Filter) col0 sh gr -/Times-Roman ff 180.00 scf sf -3450 3000 m -gs 1 -1 sc (callback \(arguments\)) col4 sh gr -/Times-Roman ff 180.00 scf sf -3900 1950 m -gs 1 -1 sc (optional library calls,) col4 sh gr -/Times-Roman ff 180.00 scf sf -3900 2175 m -gs 1 -1 sc (return code) col4 sh gr -/Times-Roman ff 180.00 scf sf -1500 2100 m -gs 1 -1 sc (responses) col4 sh gr -/Times-Roman ff 240.00 scf sf -2700 2085 m -gs 1 -1 sc (Milter) col0 sh gr -/Times-Roman ff 240.00 scf sf -2700 2400 m -gs 1 -1 sc (library) col0 sh gr -% Polyline -7.500 slw -n 4200 900 m 6450 900 l 6450 1350 l 4200 1350 l - cp gs col1 s gr -$F2psEnd -rs -showpage diff --git a/contrib/sendmail/libmilter/docs/index.html b/contrib/sendmail/libmilter/docs/index.html deleted file mode 100644 index 517d2f6315d77..0000000000000 --- a/contrib/sendmail/libmilter/docs/index.html +++ /dev/null @@ -1,92 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Filtering Mail with Sendmail</TITLE> -</HEAD> -<BODY> -<!-- -$Id: index.html,v 1.13 2006/08/08 20:55:57 ca Exp $ ---> - -<H1>Filtering Mail with Sendmail</H1> - -<!-- -<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. ---> - -<H2>Introduction</H2> - -<P> -Sendmail's Content Management API (milter) provides third-party -programs to access mail messages as they are being processed by the -Mail Transfer Agent (MTA), allowing them to examine and modify message -content and meta-information. Filtering policies implemented by -Milter-conformant filters may then be centrally configured and -composed in an end-user's MTA configuration file. - -<P> -Possible uses for filters include spam rejection, virus -filtering, and content control. In general, Milter seeks to address -site-wide filtering concerns in a scalable way. Individual users' mail -filtering needs (e.g. sorting messages by subject) are left to -client-level programs such as <A href="http://www.procmail.org">Procmail</A>. - -<P> -This document is a technical introduction intended for those -interested in developing Milter filters. It includes: -<UL> -<LI>A description of Milter's design goals. - -<LI>An explanation of Milter application architecture, including -interactions between the support library and user code, and between -filters and the MTA. - -<LI>A specification of the C application programming interface. -<LI>An example of a simple Milter filter. -</UL> - -<H2>Contents</H2> - -<UL> -<LI><A href="design.html">Architecture</A> -<UL> - <LI>Design Goals - <LI>Implementing Filtering Policies - <LI>MTA - Filter communication -</UL> -<LI><A href="overview.html">Technical Overview</A> -<UL> - <LI>Initialization - <LI>Control flow - <LI>Multithreading - <LI>Resource Management - <LI>Signal Handling -</UL> -<LI><A href="api.html">API Documentation</A> -<UL> - <LI>Library Control Functions - <LI>Data Access Functions - <LI>Message Modification Functions - <LI>Callbacks -</UL> -<LI><A href="installation.html">Installation and Configuration</A> -<UL> - <LI>Compiling and Installing Your Filter - <LI>Configuring Sendmail -</UL> -<LI><A href="sample.html">A Sample Filter</A> -<!-- <LI><A href="other.html">Other Sources of Information</A> --> -</UL> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2001, 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/installation.html b/contrib/sendmail/libmilter/docs/installation.html deleted file mode 100644 index 07142e9c412b5..0000000000000 --- a/contrib/sendmail/libmilter/docs/installation.html +++ /dev/null @@ -1,165 +0,0 @@ -<HTML> -<HEAD><TITLE>Installation and Configuration</TITLE> -</HEAD> -<BODY> -<!-- -$Id: installation.html,v 1.23 2006/08/31 17:16:03 ca Exp $ ---> -<H1>Installation</H1> -<H2>Contents</H2> -<UL> - <LI><A href="#compile">Compiling and Installing Your Filter</A> - <LI><A href="#config">Configuring Sendmail</A> -</UL> - -<H2><A name="compile">Compiling and Installing Your Filter</A></H2> - -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). - - <LI>Make sure libmilter.a is in your library path, and link your - application with it (e.g. "-lmilter"). - - <LI>Compile with pthreads, either by using -pthread for gcc, or - linking with a pthreads support library (-lpthread). -</UL> -Your compile command line will look like -<PRE> -cc -I/path/to/include -I/path/to/sendmail -c myfile.c -</PRE> -and your linking command line will look something like -<PRE> -cc -o myfilter [object-files] -L[library-location] -lmilter -pthread -</PRE> - -<H2><A name="config">Configuring Sendmail</A></H2> - -If you use a sendmail version older than 8.13 please see -the instructions for your version. -The default compilation options for sendmail enable support -for milters since 8.13. - -<P> -Next, you must add the desired filters to your sendmail configuration -(.mc) file. -Mail filters have three equates: -The required <CODE>S=</CODE> equate specifies the socket where -sendmail should look for the filter; the optional <CODE>F=</CODE> and -<CODE>T=</CODE> equates specify flags and timeouts, respectively. -All equates names, equate field names, and flag values are case sensitive. - -<P> -The current flags (<CODE>F=</CODE>) are: -<P> -<TABLE cellspacing="1" cellpadding=4 border=1> -<TR bgcolor="#dddddd" align=left valign=top> -<TH>Flag</TH> <TH align="center">Meaning</TH> -</TR> -<TR align="left" valign=top> -<TD>R</TD> <TD>Reject connection if filter unavailable</TD> -</TR> -<TR align="left" valign=top> -<TD>T</TD> <TD>Temporary fail connection if filter unavailable</TD> -</TR> -</TABLE> - -If a filter is unavailable or unresponsive and no flags have been -specified, the MTA will continue normal handling of the current -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. -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 -designating the units ("s" for seconds, "m" for minutes). -The fields have the following meanings: -<P> -<TABLE cellspacing="1" cellpadding=4 border=1> -<TR bgcolor="#dddddd" align=left valign=top> -<TH>Flag</TH> <TH align="center">Meaning</TH> -</TR> -<TR align="left" valign=top> -<TD>C</TD> <TD>Timeout for connecting to a filter. If set to 0, the - system's <CODE>connect(2)</CODE> timeout will be used. - Default: 5m</TD> -</TR> -<TR align="left" valign=top> -<TD>S</TD> <TD>Timeout for sending information from the MTA to a - filter. Default: 10s</TD> -</TR> -<TR align="left" valign=top> -<TD>R</TD> <TD>Timeout for reading reply from the filter. Default: 10s</TD> -</TR> -<TR align="left" valign=top> -<TD>E</TD> <TD>Overall timeout between sending end-of-message to - filter and waiting for the final acknowledgment. Default: 5m</TD> -</TR> -</TABLE> - -<P> -The following sendmail.mc example specifies three filters. -The first two rendezvous on Unix-domain sockets in the /var/run directory; -the third uses an IP socket on port 999. -<PRE> - INPUT_MAIL_FILTER(`filter1', `S=unix:/var/run/f1.sock, F=R') - INPUT_MAIL_FILTER(`filter2', `S=unix:/var/run/f2.sock, F=T, T=S:1s;R:1s;E:5m') - INPUT_MAIL_FILTER(`filter3', `S=inet:999@localhost, T=C:2m') - - define(`confINPUT_MAIL_FILTERS', `filter2,filter1,filter3') -<HR width="30%"> - m4 ../m4/cf.m4 myconfig.mc > myconfig.cf -</PRE> -By default, the filters would be run in the order declared, -i.e. "filter1, filter2, filter3"; however, since -<CODE>confINPUT_MAIL_FILTERS</CODE> is defined, the filters will be -run "filter2, filter1, filter3". -Also note that a filter can be defined -without adding it to the input filter list by using -MAIL_FILTER() instead of INPUT_MAIL_FILTER(). - -<P> -The above macros will result in the following lines being added to -your .cf file: -<PRE> - Xfilter1, S=unix:/var/run/f1.sock, F=R - Xfilter2, S=unix:/var/run/f2.sock, F=T, T=S:1s;R:1s;E:5m - Xfilter3, S=inet:999@localhost, T=C:2m - - O InputMailFilters=filter2,filter1,filter3 -</PRE> -<P> -Finally, the sendmail macros accessible via -<A HREF="smfi_getsymval.html">smfi_getsymval</A> can be configured by -defining the following m4 variables (or cf options): -<TABLE cellspacing="1" cellpadding=4 border=1> -<TR bgcolor="#dddddd" align=left valign=top> -<TH align="center">In .mc file</TH> <TH align="center">In .cf file</TH> -<TH align="center">Default Value</TH> -</TR> -<TR><TD>confMILTER_MACROS_CONNECT</TD><TD>Milter.macros.connect</TD> -<TD><CODE>j, _, {daemon_name}, {if_name}, {if_addr}</CODE></TD></TR> -<TR><TD>confMILTER_MACROS_HELO</TD><TD>Milter.macros.helo</TD> -<TD><CODE>{tls_version}, {cipher}, {cipher_bits}, {cert_subject}, -{cert_issuer}</CODE></TD></TR> -<TR><TD>confMILTER_MACROS_ENVFROM</TD><TD>Milter.macros.envfrom</TD> -<TD><CODE>i, {auth_type}, {auth_authen}, {auth_ssf}, {auth_author}, -{mail_mailer}, {mail_host}, {mail_addr}</CODE></TD></TR> -<TR><TD>confMILTER_MACROS_ENVRCPT</TD><TD>Milter.macros.envrcpt</TD> -<TD><CODE>{rcpt_mailer}, {rcpt_host}, {rcpt_addr}</CODE></TD></TR> -</TABLE> -For information about available macros and their meanings, please -consult the sendmail documentation. -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000-2003, 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/other.html b/contrib/sendmail/libmilter/docs/other.html deleted file mode 100644 index c33b5368d0bc4..0000000000000 --- a/contrib/sendmail/libmilter/docs/other.html +++ /dev/null @@ -1,18 +0,0 @@ -<HTML> -<HEAD><TITLE>Other Resources</TITLE> -</HEAD> -<BODY> -<!-- -$Id: other.html,v 1.6 2006/08/08 20:55:57 ca Exp $ ---> -FAQ? Mailing list? More sample filters? -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/overview.html b/contrib/sendmail/libmilter/docs/overview.html deleted file mode 100644 index b7e80dfdbed70..0000000000000 --- a/contrib/sendmail/libmilter/docs/overview.html +++ /dev/null @@ -1,215 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Technical Overview</TITLE> -</HEAD> -<BODY> -<!-- -$Id: overview.html,v 1.19 2006/12/21 18:23:47 ca Exp $ ---> - -<H1>Technical Overview</H1> - -<H2>Contents</H2> - -<UL> - <LI><A HREF="#Initialization">Initialization</A> - <LI><A HREF="#ControlFlow">Control Flow</A> - <LI><A HREF="#Multithreading">Multithreading</A> - <LI><A HREF="#ResourceManagement">Resource Management</A> - <LI><A HREF="#SignalHandling">Signal Handling</A> -</UL> - -<H2><A NAME="Initialization">Initialization</A></H2> - -In addition to its own initialization, -libmilter expects a filter to initialize several parameters -before calling <A HREF="smfi_main.html">smfi_main</A>: -<UL> - <LI>The callbacks the filter wishes to be called, and the types of - message modification it intends to perform (required, see - <A HREF="smfi_register.html">smfi_register</A>). - - <LI>The socket address to be used when communicating with the MTA - (required, see <A HREF="smfi_setconn.html">smfi_setconn</A>). - - <LI>The number of seconds to wait for MTA connections before - timing out (optional, see - <A HREF="smfi_settimeout.html">smfi_settimeout</A>). -</UL> -<P> -If the filter fails to initialize libmilter, -or if one or more of the parameters it has passed are invalid, -a subsequent call to smfi_main will fail. - -<H2><A NAME="ControlFlow">Control Flow</A></H2> - -<P> -The following pseudocode describes the filtering process from the -perspective of a set of <CODE>N</CODE> MTA's, -each corresponding to a connection. -Callbacks are shown beside the processing stages in which they are invoked; -if no callbacks are defined for a particular stage, -that stage may be bypassed. -Though it is not shown, -processing may be aborted at any time during a message, -in which case the -<A HREF="xxfi_abort.html">xxfi_abort</A> callback is invoked and control -returns to <CODE>MESSAGE</CODE>. -<P> -<PRE> -For each of N connections -{ - For each filter - process connection/helo (<A HREF="xxfi_connect.html">xxfi_connect</A>, <A HREF="xxfi_helo.html">xxfi_helo</A>) -MESSAGE:For each message in this connection (sequentially) - { - For each filter - process sender (<A HREF="xxfi_envfrom.html">xxfi_envfrom</A>) - For each recipient - { - For each filter - process recipient (<A HREF="xxfi_envrcpt.html">xxfi_envrcpt</A>) - } - For each filter - { - process DATA (<A HREF="xxfi_data.html">xxfi_data</A>) - For each header - process header (<A HREF="xxfi_header.html">xxfi_header</A>) - process end of headers (<A HREF="xxfi_eoh.html">xxfi_eoh</A>) - For each body block - process this body block (<A HREF="xxfi_body.html">xxfi_body</A>) - process end of message (<A HREF="xxfi_eom.html">xxfi_eom</A>) - } - } - For each filter - process end of connection (<A HREF="xxfi_close.html">xxfi_close</A>) -} -</PRE> - -<P>Note: Filters are contacted in order defined in config file.</P> - -<P> -To write a filter, a vendor supplies callbacks to process relevant -parts of a message transaction. -The library then controls all sequencing, threading, -and protocol exchange with the MTA. -<A HREF="#figure-3">Figure 3</A> outlines control flow for a filter -process, showing where different callbacks are invoked. -</P> - -<DIV ALIGN="center"><A NAME="figure-3"></A> -<TABLE border=1 cellspacing=0 cellpadding=2 width="70%"> -<TR bgcolor="#dddddd"><TH>SMTP Commands</TH><TH>Milter Callbacks</TH></TR> -<TR><TD>(open SMTP connection)</TD><TD>xxfi_connect</TD></TR> -<TR><TD>HELO ...</TD><TD>xxfi_helo</TD></TR> -<TR><TD>MAIL From: ...</TD><TD>xxfi_envfrom</TD></TR> -<TR><TD>RCPT To: ...</TD><TD>xxfi_envrcpt</TD></TR> -<TR><TD>[more RCPTs]</TD><TD>[xxfi_envrcpt]</TD></TR> -<TR><TD>DATA</TD><TD>xxfi_data</TD></TR> -<TR><TD>Header: ...</TD><TD>xxfi_header</TD></TR> -<TR><TD>[more headers]</TD><TD>[xxfi_header]</TD></TR> -<TR><TD> </TD><TD>xxfi_eoh</TD></TR> -<TR><TD>body... </TD><TD>xxfi_body</TD></TR> -<TR><TD>[more body...]</TD><TD>[xxfi_body]</TD></TR> -<TR><TD>.</TD><TD>xxfi_eom</TD></TR> -<TR><TD>QUIT</TD><TD>xxfi_close</TD></TR> -<TR><TD>(close SMTP connection)</TD><TD> </TD></TR> -</TABLE> -<B>Figure 3: Milter callbacks related to an SMTP transaction.</B> -</DIV> - -<P> -Note that although only a single message is shown above, multiple -messages may be sent in a single connection. -Note also that a message or connection may be aborted by -either the remote host or the MTA -at any point during the SMTP transaction. -f this occurs during a message (between the MAIL command and the final "."), -the filter's -<A HREF="xxfi_abort.html">xxfi_abort</A> routine will be called. -<A HREF="xxfi_close.html">xxfi_close</A> is called any time the -connection closes. - -<H2><A NAME="Multithreading">Multithreading</A></H2> - -<P> -A single filter process may handle any number of connections -simultaneously. -All filtering callbacks must therefore be reentrant, -and use some appropriate external synchronization methods to access -global data. -Furthermore, since there is not a one-to-one correspondence -between threads and connections -(N connections mapped onto M threads, M <= N), -connection-specific data must be accessed -through the handles provided by the Milter library. -The programmer cannot rely on library-supplied thread-specific data blocks -(e.g., <CODE>pthread_getspecific(3)</CODE>) to store connection-specific data. -See the API documentation for -<A HREF="smfi_setpriv.html">smfi_setpriv</A> and -<A HREF="smfi_getpriv.html">smfi_getpriv</A> for details. - -<H2><A NAME="ResourceManagement">Resource Management</A></H2> - -Since filters are likely to be long-lived, -and to handle many connections, -proper deallocation of per-connection resources is important. -The lifetime of a connection is bracketed by calls to the -callbacks <A HREF="xxfi_connect.html">xxfi_connect</A> and -<A HREF="xxfi_close.html">xxfi_close</A>. -Therefore connection-specific -resources (accessed via <A HREF="smfi_getpriv.html">smfi_getpriv</A> -and <A HREF="smfi_setpriv.html">smfi_setpriv</A>) may be allocated in -<A HREF="xxfi_connect.html">xxfi_connect</A>, -and should be freed in -<A HREF="xxfi_close.html">xxfi_close</A>. -For further information see -the <A HREF="api.html#conn-msg">discussion</A> of message- versus -connection-oriented routines. -In particular, -note that there is only one connection-specific data pointer per connection. -<P> - -Each message is bracketed by calls to -<A HREF="xxfi_envfrom.html">xxfi_envfrom</A> and -<A HREF="xxfi_eom.html">xxfi_eom</A> (or -<A HREF="xxfi_abort.html">xxfi_abort</A>), -implying that message-specific resources can be allocated -and reclaimed in these routines. -Since the messages in a connection are processed sequentially by each filter, -there will be only one active message associated with a given -connection and filter (and connection-private data block). -These resources must still be accessed through -<A HREF="smfi_getpriv.html">smfi_getpriv</A> and -<A HREF="smfi_setpriv.html">smfi_setpriv</A>, -and must be reclaimed in -<A HREF="xxfi_abort.html">xxfi_abort</A>. - -<H2><A NAME="SignalHandling">Signal Handling</A></H2> - -libmilter takes care of signal handling, -the filters are not influenced directly by signals. -There are basically two types of signal handlers: - -<OL> -<LI><TT>Stop</TT>: no new connections from the MTA will be accepted, -but existing connections are allowed to continue. -<LI><TT>Abort</TT>: all filters will be stopped as soon as the next -communication with the MTA happens. -</OL> - -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. - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2001, 2003, 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/sample.html b/contrib/sendmail/libmilter/docs/sample.html deleted file mode 100644 index 48e25c5979692..0000000000000 --- a/contrib/sendmail/libmilter/docs/sample.html +++ /dev/null @@ -1,537 +0,0 @@ -<HTML> -<HEAD><TITLE>A Sample Filter</TITLE></HEAD> -<BODY> -<!-- -$Id: sample.html,v 1.22 2006/10/09 23:14:51 ca Exp $ ---> -<H1>A Sample Filter</H1> - -The following sample logs each message to a separate temporary file, -adds a recipient given with the -a flag, -and rejects a disallowed recipient address given with the -r flag. -It recognizes the following options: -<P> -<CENTER> -<TABLE border="1" cellpadding=2 cellspacing=1> -<TR><TD><CODE>-p port</CODE></TD><TD>The port through which the MTA will connect to the filter.</TD></TR> -<TR><TD><CODE>-t sec</CODE></TD><TD>The timeout value.</TD></TR> -<TR><TD><CODE>-r addr</CODE></TD><TD>A recipient to reject.</TD></TR> -<TR><TD><CODE>-a addr</CODE></TD><TD>A recipient to add.</TD></TR> -</TABLE> -</CENTER> -<HR> -<PRE> -#include <sys/types.h> -#include <sys/stat.h> -#include <errno.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <sysexits.h> -#include <unistd.h> - -#include "libmilter/mfapi.h" - -#ifndef bool -# define bool int -# define TRUE 1 -# define FALSE 0 -#endif /* ! bool */ - - -struct mlfiPriv -{ - char *mlfi_fname; - char *mlfi_connectfrom; - char *mlfi_helofrom; - FILE *mlfi_fp; -}; - -#define MLFIPRIV ((struct mlfiPriv *) <A href="smfi_getpriv.html">smfi_getpriv</A>(ctx)) - -extern sfsistat mlfi_cleanup(SMFICTX *, bool); - -/* recipients to add and reject (set with -a and -r options) */ -char *add = NULL; -char *reject = NULL; - -sfsistat -<A href="xxfi_connect.html">mlfi_connect</A>(ctx, hostname, hostaddr) - SMFICTX *ctx; - char *hostname; - _SOCK_ADDR *hostaddr; -{ - struct mlfiPriv *priv; - char *ident; - - /* allocate some private memory */ - priv = malloc(sizeof *priv); - if (priv == NULL) - { - /* can't accept this message right now */ - return SMFIS_TEMPFAIL; - } - memset(priv, '\0', sizeof *priv); - - /* save the private data */ - <A href="smfi_setpriv.html">smfi_setpriv</A>(ctx, priv); - - ident = <A href="smfi_getsymval.html">smfi_getsymval</A>(ctx, "_"); - if (ident == NULL) - ident = "???"; - if ((priv->mlfi_connectfrom = strdup(ident)) == NULL) - { - (void) mlfi_cleanup(ctx, FALSE); - return SMFIS_TEMPFAIL; - } - - /* continue processing */ - return SMFIS_CONTINUE; -} - -sfsistat -<A href="xxfi_helo.html">mlfi_helo</A>(ctx, helohost) - SMFICTX *ctx; - char *helohost; -{ - size_t len; - char *tls; - char *buf; - struct mlfiPriv *priv = MLFIPRIV; - - tls = <A href="smfi_getsymval.html">smfi_getsymval</A>(ctx, "{tls_version}"); - if (tls == NULL) - tls = "No TLS"; - if (helohost == NULL) - helohost = "???"; - len = strlen(tls) + strlen(helohost) + 3; - if ((buf = (char*) malloc(len)) == NULL) - { - (void) mlfi_cleanup(ctx, FALSE); - return SMFIS_TEMPFAIL; - } - snprintf(buf, len, "%s, %s", helohost, tls); - if (priv->mlfi_helofrom != NULL) - free(priv->mlfi_helofrom); - priv->mlfi_helofrom = buf; - - /* continue processing */ - return SMFIS_CONTINUE; -} - -sfsistat -<A href="xxfi_envfrom.html">mlfi_envfrom</A>(ctx, argv) - SMFICTX *ctx; - char **argv; -{ - int fd = -1; - int argc = 0; - struct mlfiPriv *priv = MLFIPRIV; - char *mailaddr = <A href="smfi_getsymval.html">smfi_getsymval</A>(ctx, "{mail_addr}"); - - /* open a file to store this message */ - if ((priv->mlfi_fname = strdup("/tmp/msg.XXXXXX")) == NULL) - { - (void) mlfi_cleanup(ctx, FALSE); - return SMFIS_TEMPFAIL; - } - - if ((fd = mkstemp(priv->mlfi_fname)) == -1) - { - (void) mlfi_cleanup(ctx, FALSE); - return SMFIS_TEMPFAIL; - } - - if ((priv->mlfi_fp = fdopen(fd, "w+")) == NULL) - { - (void) close(fd); - (void) mlfi_cleanup(ctx, FALSE); - return SMFIS_TEMPFAIL; - } - - /* count the arguments */ - while (*argv++ != NULL) - ++argc; - - /* log the connection information we stored earlier: */ - if (fprintf(priv->mlfi_fp, "Connect from %s (%s)\n\n", - priv->mlfi_helofrom, priv->mlfi_connectfrom) == EOF) - { - (void) mlfi_cleanup(ctx, FALSE); - return SMFIS_TEMPFAIL; - } - /* log the sender */ - if (fprintf(priv->mlfi_fp, "FROM %s (%d argument%s)\n", - mailaddr ? mailaddr : "???", argc, - (argc == 1) ? "" : "s") == EOF) - { - (void) mlfi_cleanup(ctx, FALSE); - return SMFIS_TEMPFAIL; - } - - /* continue processing */ - return SMFIS_CONTINUE; -} - -sfsistat -<A href="xxfi_envrcpt.html">mlfi_envrcpt</A>(ctx, argv) - SMFICTX *ctx; - char **argv; -{ - struct mlfiPriv *priv = MLFIPRIV; - char *rcptaddr = <A href="smfi_getsymval.html">smfi_getsymval</A>(ctx, "{rcpt_addr}"); - int argc = 0; - - /* count the arguments */ - while (*argv++ != NULL) - ++argc; - - /* log this recipient */ - if (reject != NULL && rcptaddr != NULL && - (strcasecmp(rcptaddr, reject) == 0)) - { - if (fprintf(priv->mlfi_fp, "RCPT %s -- REJECTED\n", - rcptaddr) == EOF) - { - (void) mlfi_cleanup(ctx, FALSE); - return SMFIS_TEMPFAIL; - } - return SMFIS_REJECT; - } - if (fprintf(priv->mlfi_fp, "RCPT %s (%d argument%s)\n", - rcptaddr ? rcptaddr : "???", argc, - (argc == 1) ? "" : "s") == EOF) - { - (void) mlfi_cleanup(ctx, FALSE); - return SMFIS_TEMPFAIL; - } - - /* continue processing */ - return SMFIS_CONTINUE; -} - -sfsistat -<A href="xxfi_header.html">mlfi_header</A>(ctx, headerf, headerv) - SMFICTX *ctx; - char *headerf; - unsigned char *headerv; -{ - /* write the header to the log file */ - if (fprintf(MLFIPRIV->mlfi_fp, "%s: %s\n", headerf, headerv) == EOF) - { - (void) mlfi_cleanup(ctx, FALSE); - return SMFIS_TEMPFAIL; - } - - /* continue processing */ - return SMFIS_CONTINUE; -} - -sfsistat -<A href="xxfi_eoh.html">mlfi_eoh</A>(ctx) - SMFICTX *ctx; -{ - /* output the blank line between the header and the body */ - if (fprintf(MLFIPRIV->mlfi_fp, "\n") == EOF) - { - (void) mlfi_cleanup(ctx, FALSE); - return SMFIS_TEMPFAIL; - } - - /* continue processing */ - return SMFIS_CONTINUE; -} - -sfsistat -<A href="xxfi_body.html">mlfi_body</A>(ctx, bodyp, bodylen) - SMFICTX *ctx; - unsigned char *bodyp; - size_t bodylen; -{ - struct mlfiPriv *priv = MLFIPRIV; - - /* output body block to log file */ - if (fwrite(bodyp, bodylen, 1, priv->mlfi_fp) != 1) - { - /* write failed */ - fprintf(stderr, "Couldn't write file %s: %s\n", - priv->mlfi_fname, strerror(errno)); - (void) mlfi_cleanup(ctx, FALSE); - return SMFIS_TEMPFAIL; - } - - /* continue processing */ - return SMFIS_CONTINUE; -} - -sfsistat -<A href="xxfi_eom.html">mlfi_eom</A>(ctx) - SMFICTX *ctx; -{ - bool ok = TRUE; - - /* change recipients, if requested */ - if (add != NULL) - ok = (<A href="smfi_addrcpt.html">smfi_addrcpt</A>(ctx, add) == MI_SUCCESS); - return mlfi_cleanup(ctx, ok); -} - -sfsistat -<A href="xxfi_abort.html">mlfi_abort</A>(ctx) - SMFICTX *ctx; -{ - return mlfi_cleanup(ctx, FALSE); -} - -sfsistat -mlfi_cleanup(ctx, ok) - SMFICTX *ctx; - bool ok; -{ - sfsistat rstat = SMFIS_CONTINUE; - struct mlfiPriv *priv = MLFIPRIV; - char *p; - char host[512]; - char hbuf[1024]; - - if (priv == NULL) - return rstat; - - /* close the archive file */ - 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", - priv->mlfi_fname, strerror(errno)); - rstat = SMFIS_TEMPFAIL; - (void) unlink(priv->mlfi_fname); - } - else if (ok) - { - /* add a header to the message announcing our presence */ - if (gethostname(host, sizeof host) < 0) - snprintf(host, sizeof host, "localhost"); - p = strrchr(priv->mlfi_fname, '/'); - if (p == NULL) - p = priv->mlfi_fname; - else - p++; - snprintf(hbuf, sizeof hbuf, "%s@%s", p, host); - if (<A href="smfi_addheader.html">smfi_addheader</A>(ctx, "X-Archived", hbuf) != MI_SUCCESS) - { - /* failed; we have to wait until later */ - fprintf(stderr, - "Couldn't add header: X-Archived: %s\n", - hbuf); - ok = FALSE; - rstat = SMFIS_TEMPFAIL; - (void) unlink(priv->mlfi_fname); - } - } - else - { - /* message was aborted -- delete the archive file */ - fprintf(stderr, "Message aborted. Removing %s\n", - priv->mlfi_fname); - rstat = SMFIS_TEMPFAIL; - (void) unlink(priv->mlfi_fname); - } - - /* release private memory */ - if (priv->mlfi_fname != NULL) - free(priv->mlfi_fname); - - /* return status */ - return rstat; -} - -sfsistat -<A href="xxfi_close.html">mlfi_close</A>(ctx) - SMFICTX *ctx; -{ - struct mlfiPriv *priv = MLFIPRIV; - - if (priv == NULL) - return SMFIS_CONTINUE; - if (priv->mlfi_connectfrom != NULL) - free(priv->mlfi_connectfrom); - if (priv->mlfi_helofrom != NULL) - free(priv->mlfi_helofrom); - free(priv); - <A href="smfi_setpriv.html">smfi_setpriv</A>(ctx, NULL); - return SMFIS_CONTINUE; -} - -sfsistat -<A href="xxfi_unknown.html">mlfi_unknown</A>(ctx, cmd) - SMFICTX *ctx; - char *cmd; -{ - return SMFIS_CONTINUE; -} - -sfsistat -<A href="xxfi_data.html">mlfi_data</A>(ctx) - SMFICTX *ctx; -{ - return SMFIS_CONTINUE; -} - -sfsistat -<A href="xxfi_negotiate.html">mlfi_negotiate</A>(ctx, f0, f1, f2, f3, pf0, pf1, pf2, pf3) - SMFICTX *ctx; - unsigned long f0; - unsigned long f1; - unsigned long f2; - unsigned long f3; - unsigned long *pf0; - unsigned long *pf1; - unsigned long *pf2; - unsigned long *pf3; -{ - return SMFIS_ALL_OPTS; -} - -struct smfiDesc smfilter = -{ - "SampleFilter", /* filter name */ - SMFI_VERSION, /* version code -- do not change */ - SMFIF_ADDHDRS|SMFIF_ADDRCPT, - /* flags */ - <A href="xxfi_connect.html">mlfi_connect</A>, /* connection info filter */ - <A href="xxfi_helo.html">mlfi_helo</A>, /* SMTP HELO command filter */ - <A href="xxfi_envfrom.html">mlfi_envfrom</A>, /* envelope sender filter */ - <A href="xxfi_envrcpt.html">mlfi_envrcpt</A>, /* envelope recipient filter */ - <A href="xxfi_header.html">mlfi_header</A>, /* header filter */ - <A href="xxfi_eoh.html">mlfi_eoh</A>, /* end of header */ - <A href="xxfi_body.html">mlfi_body</A>, /* body block filter */ - <A href="xxfi_eom.html">mlfi_eom</A>, /* end of message */ - <A href="xxfi_abort.html">mlfi_abort</A>, /* message aborted */ - <A href="xxfi_close.html">mlfi_close</A>, /* connection cleanup */ - <A href="xxfi_unknown.html">mlfi_unknown</A>, /* unknown SMTP commands */ - <A href="xxfi_data.html">mlfi_data</A>, /* DATA command */ - <A href="xxfi_negotiate.html">mlfi_negotiate</A> /* Once, at the start of each SMTP connection */ -}; - -static void -usage(prog) - char *prog; -{ - fprintf(stderr, - "Usage: %s -p socket-addr [-t timeout] [-r reject-addr] [-a add-addr]\n", - prog); -} - -int -main(argc, argv) - int argc; - char **argv; -{ - bool setconn = FALSE; - int c; - const char *args = "p:t:r:a:h"; - extern char *optarg; - - /* Process command line options */ - while ((c = getopt(argc, argv, args)) != -1) - { - switch (c) - { - case 'p': - if (optarg == NULL || *optarg == '\0') - { - (void) fprintf(stderr, "Illegal conn: %s\n", - optarg); - exit(EX_USAGE); - } - if (<A href="smfi_setconn.html">smfi_setconn</A>(optarg) == MI_FAILURE) - { - (void) fprintf(stderr, - "smfi_setconn failed\n"); - exit(EX_SOFTWARE); - } - - /* - ** If we're using a local socket, make sure it - ** doesn't already exist. Don't ever run this - ** code as root!! - */ - - if (strncasecmp(optarg, "unix:", 5) == 0) - unlink(optarg + 5); - else if (strncasecmp(optarg, "local:", 6) == 0) - unlink(optarg + 6); - setconn = TRUE; - break; - - case 't': - if (optarg == NULL || *optarg == '\0') - { - (void) fprintf(stderr, "Illegal timeout: %s\n", - optarg); - exit(EX_USAGE); - } - if (<A href="smfi_settimeout.html">smfi_settimeout</A>(atoi(optarg)) == MI_FAILURE) - { - (void) fprintf(stderr, - "smfi_settimeout failed\n"); - exit(EX_SOFTWARE); - } - break; - - case 'r': - if (optarg == NULL) - { - (void) fprintf(stderr, - "Illegal reject rcpt: %s\n", - optarg); - exit(EX_USAGE); - } - reject = optarg; - break; - - case 'a': - if (optarg == NULL) - { - (void) fprintf(stderr, - "Illegal add rcpt: %s\n", - optarg); - exit(EX_USAGE); - } - add = optarg; - smfilter.xxfi_flags |= SMFIF_ADDRCPT; - break; - - case 'h': - default: - usage(argv[0]); - exit(EX_USAGE); - } - } - if (!setconn) - { - fprintf(stderr, "%s: Missing required -p argument\n", argv[0]); - usage(argv[0]); - exit(EX_USAGE); - } - if (<A href="smfi_register.html">smfi_register</A>(smfilter) == MI_FAILURE) - { - fprintf(stderr, "smfi_register failed\n"); - exit(EX_UNAVAILABLE); - } - return <A href="smfi_main.html">smfi_main</A>(); -} - -/* eof */ - -</PRE> -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000-2004, 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_addheader.html b/contrib/sendmail/libmilter/docs/smfi_addheader.html deleted file mode 100644 index d068f9fdb9344..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_addheader.html +++ /dev/null @@ -1,126 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_addheader</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_addheader.html,v 1.19 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_addheader</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_addheader( - SMFICTX *ctx, - char *headerf, - char *headerv -); -</PRE> -Add a header to the current message. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>Called only from <A href="xxfi_eom.html">xxfi_eom</A>.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>Adds a header to the current message.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>headerf</TD> - <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></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<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. -</UL> -Otherwise, it returns MI_SUCCESS. -</TD> -</TR> - -<!----------- Notes ----------> -<TR align="left" valign=top> -<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>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 - standards compliance. - However, each line of the header must be under 2048 characters - and should be under 998 characters. - If longer headers are needed, make them multi-line. - To make a multi-line header, - insert a line feed (ASCII 0x0a, or <TT>\n</TT> in C) - followed by at least one whitespace character - such as a space (ASCII 0x20) or tab (ASCII 0x09, or <TT>\t</TT> in C). - The line feed should NOT be preceded by a carriage return (ASCII 0x0d); - the MTA will add this automatically. - <B>It is the filter writer's responsibility to ensure that no standards - are violated.</B> - <LI>The MTA adds a leading space to an added header value. -</UL> -</TD> -</TR> - -<!----------- Example code ----------> -<TR> -<TH valign="top" align=left>EXAMPLE</TH> - -<TD> - <PRE> - int ret; - SMFICTX *ctx; - - ... - - ret = smfi_addheader(ctx, "Content-Type", - "multipart/mixed;\n\tboundary=\"foobar\""); - </PRE> -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000-2003, 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_addrcpt.html b/contrib/sendmail/libmilter/docs/smfi_addrcpt.html deleted file mode 100644 index cf997e570d07a..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_addrcpt.html +++ /dev/null @@ -1,83 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_addrcpt</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_addrcpt.html,v 1.11 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_addrcpt</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_addrcpt( - SMFICTX *ctx, - char *rcpt -); -</PRE> -Add a recipient for the current message. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>Called only from <A href="xxfi_eom.html">xxfi_eom</A>.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>Add a recipient to the message envelope.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>rcpt</TD> - <TD>The new recipient's address. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<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. -</UL> -Otherwise, it will return MI_SUCCESS. -</TD> -</TR> - -<!----------- Notes ----------> -<TR align="left" valign=top> -<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>. -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_addrcpt_par.html b/contrib/sendmail/libmilter/docs/smfi_addrcpt_par.html deleted file mode 100644 index 776b02ceab6a8..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_addrcpt_par.html +++ /dev/null @@ -1,88 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_addrcpt_par</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_addrcpt_par.html,v 1.4 2007/03/19 16:38:02 ca Exp $ ---> -<H1>smfi_addrcpt_par</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_addrcpt_par( - SMFICTX *ctx, - char *rcpt, - char *args -); -</PRE> -Add a recipient for the current message including ESMTP arguments. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>Called only from <A href="xxfi_eom.html">xxfi_eom</A>.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>Add a recipient to the message envelope.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>rcpt</TD> - <TD>The new recipient's address. - </TD></TR> - <TR valign="top"><TD>args</TD> - <TD>The new recipient's ESMTP parameters. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<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_PAR was not set when - <A href="smfi_register.html">smfi_register</A> was called. -</UL> -Otherwise, it will return MI_SUCCESS. -</TD> -</TR> - -<!----------- Notes ----------> -<TR align="left" valign=top> -<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>. -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_chgfrom.html b/contrib/sendmail/libmilter/docs/smfi_chgfrom.html deleted file mode 100644 index e8249e0f0eb8e..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_chgfrom.html +++ /dev/null @@ -1,94 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_chgfrom</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_chgfrom.html,v 1.3 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_chgfrom</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_chgfrom( - SMFICTX *ctx, - const char *mail, - char *args -); -</PRE> -Change the envelope sender (MAIL From) of the current message. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>Called only from <A href="xxfi_eom.html">xxfi_eom</A>.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>Change the envelope sender (MAIL From) of the current message.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>mail</TD> - <TD>The new sender address. - </TD></TR> - <TR valign="top"><TD>args</TD> - <TD>ESMTP arguments. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<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. -</UL> -Otherwise, it will return MI_SUCCESS. -</TD> -</TR> - -<!----------- Notes ----------> -<TR align="left" valign=top> -<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>. -<BR> -Even though all ESMTP arguments could be set via this call, -it does not make sense to do so for many of them, -e.g., SIZE and BODY. -Setting those may cause problems, proper care must be taken. -Moreover, there is no feedback from the MTA to the milter -whether the call was successful. -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_chgheader.html b/contrib/sendmail/libmilter/docs/smfi_chgheader.html deleted file mode 100644 index 0701a3671aaf4..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_chgheader.html +++ /dev/null @@ -1,120 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_chgheader</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_chgheader.html,v 1.17 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_chgheader</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_chgheader( - SMFICTX *ctx, - char *headerf, - mi_int32 hdridx, - char *headerv -); -</PRE> -Change or delete a message header. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>Called only from <A href="xxfi_eom.html">xxfi_eom</A>.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>Changes a header's value for the current message.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>headerf</TD> - <TD>The header name, a non-NULL, null-terminated string. - </TD></TR> - <TR valign="top"><TD>hdridx</TD> - <TD>Header index value (1-based). A hdridx value of 1 will modify the first occurrence of a header named headerf. If hdridx is greater than the number of times headerf appears, a new copy of headerf will be added. - </TD></TR> - <TR valign="top"><TD>headerv</TD> - <TD>The new value of the given header. headerv == NULL implies that the header should be deleted. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<TH valign="top" align=left>RETURN VALUES</TH> - -<TD> -smfi_chgheader will return MI_FAILURE if -<UL><LI>headerf is NULL - <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. -</UL> -Otherwise, it returns MI_SUCCESS. -</TR> - -<!----------- Notes ----------> -<TR align="left" valign=top> -<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>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 - 2048 characters and should be under 998 characters. If longer headers - are needed, make them multi-line. To make a multi-line header, insert - a line feed (ASCII 0x0a, or <TT>\n</TT> in C) followed by at least - one whitespace character such as a space (ASCII 0x20) or tab (ASCII 0x09, - or <TT>\t</TT> in C). The line feed should NOT be preceded by a - carriage return (ASCII 0x0d); the MTA will add this automatically. - <B>It is the filter writer's responsibility to ensure that no standards - are violated.</B> -</UL> -</TD> -</TR> - -<!----------- Example code ----------> -<TR> -<TH valign="top" align=left>EXAMPLE</TH> - -<TD> - <PRE> - int ret; - SMFICTX *ctx; - - ... - - ret = smfi_chgheader(ctx, "Content-Type", 1, - "multipart/mixed;\n\tboundary=\"foobar\""); - </PRE> -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000-2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_delrcpt.html b/contrib/sendmail/libmilter/docs/smfi_delrcpt.html deleted file mode 100644 index c43dcd6f4a44b..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_delrcpt.html +++ /dev/null @@ -1,82 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_delrcpt</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_delrcpt.html,v 1.11 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_delrcpt</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_delrcpt( - SMFICTX *ctx; - char *rcpt; -); -</PRE> -Remove a recipient from the current message's envelope. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>Called only from <A href="xxfi_eom.html">xxfi_eom</A>.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>smfi_delrcpt removes the named recipient from the current message's envelope.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>rcpt</TD> - <TD>The recipient address to be removed, a non-NULL, null-terminated string. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<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. -</UL> -Otherwise, it will return MI_SUCCESS -</TD> -</TR> - -<!----------- Notes ----------> -<TR align="left" valign=top> -<TH>NOTES</TH> -<TD> -The addresses to be removed must match exactly. For example, an address and its expanded form do not match. -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_getpriv.html b/contrib/sendmail/libmilter/docs/smfi_getpriv.html deleted file mode 100644 index 9584b9ee90d42..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_getpriv.html +++ /dev/null @@ -1,62 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_getpriv</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_getpriv.html,v 1.9 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_getpriv</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -void* smfi_getpriv( - SMFICTX *ctx -); -</PRE> -Get the connection-specific data pointer for this connection. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>smfi_getpriv may be called in any of the xxfi_* callbacks.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>None.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<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> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_getsymval.html b/contrib/sendmail/libmilter/docs/smfi_getsymval.html deleted file mode 100644 index 671dbfa575a49..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_getsymval.html +++ /dev/null @@ -1,105 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_getsymval</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_getsymval.html,v 1.15 2007/03/19 16:49:11 ca Exp $ ---> -<H1>smfi_getsymval</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -char* smfi_getsymval( - SMFICTX *ctx, - char *symname -); -</PRE> -Get the value of a sendmail macro. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>smfi_getsymval may be called from within any of the xxfi_* callbacks. Which macros are defined will depend on when it is called.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>None.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>The opaque context structure. - </TD></TR> - <TR valign="top"><TD>symname</TD> - <TD>The name of a sendmail macro. - Single letter macros can optionally be enclosed in braces ("{" and "}"), - longer macro names must be enclosed in braces, just as in a - <TT>sendmail.cf</TT> file. - <A href="#notes">See below</A> for default macros. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<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> -<TD> -By default, the following macros are valid in the given contexts: - -<TABLE border="1" cellspacing=0> -<TR bgcolor="#dddddd"><TH>Sent With</TH><TH>Macros</TH></TR> -<TR><TD>xxfi_connect</TD> <TD>daemon_name, if_name, if_addr, j, _</TD></TR> -<TR><TD>xxfi_helo</TD> <TD>tls_version, cipher, cipher_bits, cert_subject, cert_issuer</TD></TR> -<TR><TD>xxfi_envfrom</TD> <TD>i, auth_type, auth_authen, auth_ssf, auth_author, - mail_mailer, mail_host, mail_addr</TD></TR> -<TR><TD>xxfi_envrcpt</TD> <TD>rcpt_mailer, rcpt_host, rcpt_addr</TD></TR> - -<TR><TD>xxfi_data</TD> <TD>(none)</TD></TR> -<TR><TD>xxfi_eoh</TD> <TD>(none)</TD></TR> -<TR><TD>xxfi_eom</TD> <TD>msg_id</TD></TR> -</TABLE> -<P> -All macros stay in effect from the point they are received -until the end of the connection for the first two sets, -the end of the message for the third (xxfi_envfrom) and last (xxfi_eom), -and just for each recipient for xxfi_envrcpt. -<P> -The macro list can be changed using the confMILTER_MACROS_* options in -sendmail.mc. -The scopes of such macros will be determined by when they are set by sendmail. -For descriptions of macros' values, -please see the -"Sendmail Installation and Operation Guide" -provided with your sendmail distribution. - -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2002-2003, 2007 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_insheader.html b/contrib/sendmail/libmilter/docs/smfi_insheader.html deleted file mode 100644 index a4ba77f33d4fb..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_insheader.html +++ /dev/null @@ -1,145 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_insheader</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_insheader.html,v 1.9 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_insheader</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_insheader( - SMFICTX *ctx, - int hdridx, - char *headerf, - char *headerv -); -</PRE> -Prepend a header to the current message. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>Called only from <A href="xxfi_eom.html">xxfi_eom</A>.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>Prepends a header to the current message.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>hdridx</TD> - <TD>The location in the internal header list where this header should - be inserted; 0 makes it the topmost header, etc. - </TD></TR> - <TR valign="top"><TD>headerf</TD> - <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></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<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. -</UL> -Otherwise, it returns MI_SUCCESS. -</TD> -</TR> - -<!----------- Notes ----------> -<TR align="left" valign=top> -<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>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 - by the SMTP client and those header modifications by earlier filters. - It will <EM>not</EM> receive the headers that are inserted by sendmail - itself. - This makes the header insertion position highly dependent on - the headers that exist in the incoming message - and those that are configured to be added by sendmail. - For example, sendmail will always add a - <CODE>Received:</CODE> header to the beginning of the headers. - Setting <CODE>hdridx</CODE> to 0 will actually insert the header - before this <CODE>Received:</CODE> header. - However, later filters can be easily confused as they receive - the added header, but not the <CODE>Received:</CODE> header, - thus making it hard to insert a header at a fixed position. - <LI>If hdridx is a number larger than the number of headers in the message, - the header will simply be appended. - <LI>Neither the name nor the value of the header is checked for - standards compliance. - However, each line of the header must be under 2048 characters - and should be under 998 characters. - If longer headers are needed, make them multi-line. - To make a multi-line header, - insert a line feed (ASCII 0x0a, or <TT>\n</TT> in C) - followed by at least one whitespace character - such as a space (ASCII 0x20) or tab (ASCII 0x09, or <TT>\t</TT> in C). - The line feed should NOT be preceded by a carriage return (ASCII 0x0d); - the MTA will add this automatically. - <B>It is the filter writer's responsibility to ensure that no standards - are violated.</B> -</UL> -</TD> -</TR> - -<!----------- Example code ----------> -<TR> -<TH valign="top" align=left>EXAMPLE</TH> - -<TD> - <PRE> - int ret; - SMFICTX *ctx; - - ... - - ret = smfi_insheader(ctx, 0, "First", "See me?"); - </PRE> -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2004, 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_main.html b/contrib/sendmail/libmilter/docs/smfi_main.html deleted file mode 100644 index a749386512d13..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_main.html +++ /dev/null @@ -1,51 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_main</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_main.html,v 1.9 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_main</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_main( -); -</PRE> -Hand control to libmilter event loop. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>smfi_main is called after a filter's initialization is complete.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>smfi_main hands control to the Milter event loop.</TD> -</TR> -</TABLE> - -<!----------- Return values ----------> -<TR> -<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> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_opensocket.html b/contrib/sendmail/libmilter/docs/smfi_opensocket.html deleted file mode 100644 index 151af07a91ae0..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_opensocket.html +++ /dev/null @@ -1,78 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_opensocket</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_opensocket.html,v 1.6 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_opensocket</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_opensocket( - bool rmsocket -); -</PRE> -Attempt to create the interface socket MTAs will use to connect to the -filter. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>Called only from program mainline, before calling -<TT>smfi_main()</TT>.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<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. If this is not called, <TT>smfi_main()</TT> will -do so implicitly. </TD> -</TR> -</TABLE> - -<!----------- 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>rmsocket</TD> - <TD>A flag indicating whether or not the library should try to - remove any existing UNIX domain socket before trying to create - a new one. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<TH valign="top" align=left>RETURN VALUES</TH> - -<TD>smfi_opensocket will fail and return MI_FAILURE if: -<UL> - <LI>The interface socket could not be created for any reason. - <LI><TT>rmsocket</TT> was <TT>true</TT>, and either the socket could - not be examined, or exists and could not be removed. - <LI><TT>smfi_setconn()</TT> has not been called. -</UL> -Otherwise, it will return MI_SUCCESS -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_progress.html b/contrib/sendmail/libmilter/docs/smfi_progress.html deleted file mode 100644 index 801bdf335fda2..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_progress.html +++ /dev/null @@ -1,68 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_progress</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_progress.html,v 1.5 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_progress</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_progress( - SMFICTX *ctx; -); -</PRE> -Notify the MTA that an operation is still in progress. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>Called only from <A href="xxfi_eom.html">xxfi_eom</A>.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>smfi_progress notifies the MTA that the filter is still working -on a message, causing the MTA to re-start its timeouts.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<TH valign="top" align=left>RETURN VALUES</TH> - -<TD>smfi_progress will fail and return MI_FAILURE if: -<UL> - <LI>A network error occurs. -</UL> -Otherwise, it will return MI_SUCCESS -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_quarantine.html b/contrib/sendmail/libmilter/docs/smfi_quarantine.html deleted file mode 100644 index 656a480d01222..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_quarantine.html +++ /dev/null @@ -1,73 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_quarantine</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_quarantine.html,v 1.5 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_quarantine</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_quarantine( - SMFICTX *ctx; - char *reason; -); -</PRE> -Quarantine the message using the given reason. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>Called only from <A href="xxfi_eom.html">xxfi_eom</A>.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>smfi_quarantine quarantines the message using the given reason.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>reason</TD> - <TD>The quarantine reason, a non-NULL and non-empty null-terminated string. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<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. -</UL> -Otherwise, it will return MI_SUCCESS -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2002-2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_register.html b/contrib/sendmail/libmilter/docs/smfi_register.html deleted file mode 100644 index 1a359188f8e84..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_register.html +++ /dev/null @@ -1,224 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_register</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_register.html,v 1.18 2006/12/20 18:37:11 ca Exp $ ---> -<H1>smfi_register</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_register( - smfiDesc descr -); -</PRE> -Register a set of filter callbacks. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=1> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>smfi_register must be called before smfi_main</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>smfi_register creates a filter using the information given in the -smfiDesc argument. -Multiple (successful) calls to smfi_register within a -single process are not allowed, -i.e., only one filter can be successfully registered. -Note, however, that the library may not check whether this restriction -is obeyed. -</TD> -</TR> -</TABLE> - -<!----------- 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>descr</TD> - <TD> -A filter descriptor of type smfiDesc describing the filter's functions. -<A NAME="smfiDesc">The structure</A> has the following members: -<PRE> -struct smfiDesc -{ - char *xxfi_name; /* filter name */ - int xxfi_version; /* version code -- do not change */ - unsigned long xxfi_flags; /* <A href="#flags">flags</A> */ - - /* connection info filter */ - sfsistat (*<A href="xxfi_connect.html">xxfi_connect</A>)(SMFICTX *, char *, _SOCK_ADDR *); - /* SMTP HELO command filter */ - sfsistat (*<A href="xxfi_helo.html">xxfi_helo</A>)(SMFICTX *, char *); - /* envelope sender filter */ - sfsistat (*<A href="xxfi_envfrom.html">xxfi_envfrom</A>)(SMFICTX *, char **); - /* envelope recipient filter */ - sfsistat (*<A href="xxfi_envrcpt.html">xxfi_envrcpt</A>)(SMFICTX *, char **); - /* header filter */ - sfsistat (*<A href="xxfi_header.html">xxfi_header</A>)(SMFICTX *, char *, char *); - /* end of header */ - sfsistat (*<A href="xxfi_eoh.html">xxfi_eoh</A>)(SMFICTX *); - /* body block */ - sfsistat (*<A href="xxfi_body.html">xxfi_body</A>)(SMFICTX *, unsigned char *, size_t); - /* end of message */ - sfsistat (*<A href="xxfi_eom.html">xxfi_eom</A>)(SMFICTX *); - /* message aborted */ - sfsistat (*<A href="xxfi_abort.html">xxfi_abort</A>)(SMFICTX *); - /* connection cleanup */ - sfsistat (*<A href="xxfi_close.html">xxfi_close</A>)(SMFICTX *); - - /* any unrecognized or unimplemented command filter */ - sfsistat (*xxfi_unknown)(SMFICTX *, const char *); - - /* SMTP DATA command filter */ - sfsistat (*xxfi_data)(SMFICTX *); - - /* negotiation callback */ - sfsistat (*<A HREF="xxfi_negotiate.html">xxfi_negotiate</A>)(SMFICTX *, - unsigned long, unsigned long, unsigned long, unsigned long, - unsigned long *, unsigned long *, unsigned long *, unsigned long *); -}; -</PRE> - -A NULL value for any callback function indicates that the filter -does not wish to process the given type of information, -simply returning SMFIS_CONTINUE. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<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>incompatible version or illegal flags value. -</UL> - -</TD> -</TR> - -<!----------- Notes ----------> -<TR align="left" valign=top> -<TH>NOTES</TH> -<TD> - -<A NAME="flags">The xxfi_flags</A> -field should contain the bitwise OR of zero or more of -the following values, describing the actions the filter may take: -<TABLE BORDER CELLPADDING="1" cellspacing=1> -<TR valign="top" bgcolor="#dddddd"><TH align="left">Flag</TH><TH align="center">Description</TH></TR> - <TR align="left" valign=top> - <TD> - SMFIF_ADDHDRS - </TD> - <TD> - This filter may <A HREF="smfi_addheader.html">add headers</A>. - </TD> - </TR> - <TR align="left" valign=top> - <TD> - SMFIF_CHGHDRS - </TD> - <TD> - This filter may - <A HREF="smfi_chgheader.html">change and/or delete headers</A>. - </TD> - </TR> - <TR align="left" valign=top> - <TD VALIGN="TOP"> - SMFIF_CHGBODY - </TD> - <TD> - This filter may - <A HREF="smfi_replacebody.html">replace the body</A> during filtering. - This may have significant performance impact - if other filters do body filtering after this filter. - </TD> - </TR> - <TR> - <TD VALIGN="TOP"> - SMFIF_ADDRCPT - </TD> - <TD> - This filter may - <A HREF="smfi_addrcpt.html">add recipients</A> - to the message. - </TD> - </TR> - <TR> - <TD VALIGN="TOP"> - SMFIF_ADDRCPT_PAR - </TD> - <TD> - This filter may - <A HREF="smfi_addrcpt_par.html">add recipients including ESMTP args</A>. - </TD> - </TR> - <TR> - <TD VALIGN="TOP"> - SMFIF_DELRCPT - </TD> - <TD> - This filter may - <A HREF="smfi_delrcpt.html">remove recipients</A> from the message. - </TD> - </TR> - <TR> - <TD VALIGN="TOP"> - SMFIF_QUARANTINE - </TD> - <TD> - This filter may - <A HREF="smfi_quarantine.html">quarantine</A> a message. - </TD> - </TR> - - <TR> - <TD VALIGN="TOP"> - SMFIF_CHGFROM - </TD> - <TD> - This filter may - <A HREF="smfi_chgfrom.html">change the envelope sender</A> (MAIL). - </TD> - </TR> - - <TR> - <TD VALIGN="TOP"> - SMFIF_SETSYMLIST - </TD> - <TD> - This filter can - <A HREF="smfi_setsymlist.html">send a set of symbols (macros)</A> - that it wants. - </TD> - </TR> - -</TABLE> - -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000-2001, 2003, 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_replacebody.html b/contrib/sendmail/libmilter/docs/smfi_replacebody.html deleted file mode 100644 index bc8d5ac673e16..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_replacebody.html +++ /dev/null @@ -1,93 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_replacebody</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_replacebody.html,v 1.15 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_replacebody</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_replacebody( - SMFICTX *ctx, - unsigned char *bodyp, - int bodylen -); -</PRE> -Replace message-body data. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>Called only from <A href="xxfi_eom.html">xxfi_eom</A>. smfi_replacebody may be called more than once.</TD> -</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 -body. -</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>bodyp</TD> - <TD>A pointer to the start of the new body data, which does not have to be null-terminated. If bodyp is NULL, it is treated as having length == 0. Body data should be in CR/LF form. - </TD></TR> - <TR valign="top"><TD>bodylen</TD> - <TD>The number of data bytes pointed to by bodyp. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<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. -</UL> -Otherwise, it will return MI_SUCCESS. -</TD> -</TR> - -<!----------- Notes ----------> -<TR align="left" valign=top> -<TH>NOTES</TH> -<TD> -<UL> - <LI>Since the message body may be very large, setting SMFIF_CHGBODY 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> -</UL> -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000-2001, 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_setbacklog.html b/contrib/sendmail/libmilter/docs/smfi_setbacklog.html deleted file mode 100644 index 8353cac269dbc..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_setbacklog.html +++ /dev/null @@ -1,64 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_setbacklog</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_setbacklog.html,v 1.6 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_setbacklog</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_setbacklog( - int obacklog -); -</PRE> -Set the filter's <CODE>listen(2)</CODE> backlog value. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>smfi_setbacklog should only be called before <A href="smfi_main.html">smfi_main</A>.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>Sets the incoming socket backlog used by <CODE>listen(2)</CODE>. -If smfi_setbacklog is not called, the operating system default is used.</TD> -</TR> -</TABLE> - -<!----------- 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>obacklog</TD> - <TD>The number of incoming connections to allow in the listen queue. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<TH valign="top" align=left>RETURN VALUES</TH> - -<TD>smfi_setbacklog returns MI_FAILURE if obacklog is less than or equal -to zero.</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2002-2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_setconn.html b/contrib/sendmail/libmilter/docs/smfi_setconn.html deleted file mode 100644 index 70a510e3ea1d5..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_setconn.html +++ /dev/null @@ -1,93 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_setconn</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_setconn.html,v 1.17 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_setconn</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_setconn( - char *oconn; -); -</PRE> -Set the socket through which this filter should communicate with sendmail. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>smfi_setconn must be called once before <A href="smfi_main.html">smfi_main</A>.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>Sets the socket through which the filter communicates with sendmail.</TD> -</TR> -</TABLE> - -<!----------- 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" - format: - <UL> - <LI><CODE>{unix|local}:/path/to/file</CODE> -- A named pipe. - <LI><CODE>inet:port@{hostname|ip-address}</CODE> -- An IPV4 socket. - <LI><CODE>inet6:port@{hostname|ip-address}</CODE> -- An IPV6 socket. - </UL> - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<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>. -Nevertheless, smfi_setconn may fail for other reasons, e.g., -due to a lack of memory. -</TD> -</TR> - -<TR> -<TH valign="top" align=left>NOTES</TH> - -<TD> -<UL> - <LI>If possible, filters should not run as root when communicating - over unix/local domain sockets. - <LI>Unix/local sockets should have their permissions set to - 0600 (read/write permission only for the socket's owner) or - 0660 (read/write permission for the socket's owner and group) - which is useful if the sendmail RunAsUser option is used. - The permissions for a unix/local domain socket are determined as - usual by <CODE>umask</CODE>, which should be set to 007 or 077. - Note some operating systems (e.g, Solaris) don't use the - permissions of the socket. On those systems, place the socket in a - protected directory. -</UL> -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_setdbg.html b/contrib/sendmail/libmilter/docs/smfi_setdbg.html deleted file mode 100644 index e001d3f7bb1df..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_setdbg.html +++ /dev/null @@ -1,67 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_setdbg</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_setdbg.html,v 1.3 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_setdbg</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_setdbg( - int level; -); -</PRE> -Set the debugging (tracing) level for the milter library. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>Called from any any routine at any time.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>smfi_setdbg sets the milter library's internal debugging level -to a new level so that code details may be traced. -A level of zero turns off debugging. The greater -(more positive) the level the more detailed the debugging. Six is -the current, highest, useful value.</TD> -</TR> -</TABLE> - -<!----------- 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>level</TD> - <TD>The new debugging level - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<TH valign="top" align=left>RETURN VALUES</TH> - -<TD>smfi_setdbg returns MI_SUCCESS by default. -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_setmlreply.html b/contrib/sendmail/libmilter/docs/smfi_setmlreply.html deleted file mode 100644 index b01bacf9b5b4a..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_setmlreply.html +++ /dev/null @@ -1,145 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_setmlreply</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_setmlreply.html,v 1.4 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_setmlreply</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_setmlreply( - SMFICTX *ctx, - char *rcode, - char *xcode, - ... -); -</PRE> -Set the default SMTP error reply code to a multi-line response. Only 4XX -and 5XX replies are accepted. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>smfi_setmlreply may be called from any of the xxfi_ callbacks -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 to the given -lines after the xcode. The list of arguments must be NULL terminated. -This code will be used on subsequent error replies resulting from actions -taken by this filter.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>rcode</TD> - <TD>The three-digit (RFC 821/2821) SMTP reply code, as a - null-terminated string. rcode cannot be NULL, and must be a valid - 4XX or 5XX reply code. - </TD></TR> - <TR valign="top"><TD>xcode</TD> - <TD>The extended (RFC 1893/2034) reply code. If xcode is NULL, no - extended code is used. Otherwise, xcode must conform to RFC 1893/2034. - </TD></TR> - <TR valign="top"><TD>...</TD> - <TD>The remainder of the arguments are single lines of text, up to - 32 arguments, which will be used as the text part of the SMTP - reply. The list must be NULL terminated. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Example ----------> -<TR> -<TH valign="top" align=left>RETURN VALUES</TH> -<TD> -For example, the code:<BR> -<PRE> - ret = smfi_setmlreply(ctx, "550", "5.7.0", - "Spammer access rejected", - "Please see our policy at:", - "http://www.example.com/spampolicy.html", - NULL); -</PRE> -<BR>would give the SMTP response:<BR> -<PRE> -550-5.7.0 Spammer access rejected -550-5.7.0 Please see our policy at: -550 5.7.0 http://www.example.com/spampolicy.html -</PRE> -</TD> -</TR> - -<!----------- Return values ----------> -<TR> -<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>The length of any text line is more than MAXREPLYLEN (980). - <LI>More than 32 lines of text replies are given. -</UL> -Otherwise, it return MI_SUCCESS. -</TD> -</TR> - -<!----------- Notes ----------> -<TR align="left" valign=top> -<TH>NOTES</TH> -<TD> -<UL> -<LI>Values passed to smfi_setmlreply are not checked for standards compliance. -<LI>The message parameter should contain only printable characters, -other characters may lead to undefined behavior. -For example, CR or LF will cause the call to fail, -single '%' characters will cause the text to be ignored -(if there really should be a '%' in the string, -use '%%' just like for <TT>printf(3)</TT>). -<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 -<A href="http://www.rfc-editor.org/rfc/rfc1893.txt">1893</A>/ -<A href="http://www.rfc-editor.org/rfc/rfc2034.txt">2034</A>. -<LI>If the reply code (rcode) given is a '4XX' code but SMFI_REJECT is used -for the message, the custom reply is not used. -<LI>Similarly, if the reply code (rcode) given is a '5XX' code but -SMFI_TEMPFAIL is used for the message, the custom reply is not used. -<BR> -Note: in neither of the last two cases an error is returned to the milter, -libmilter silently ignores the reply code. -<LI>If the milter returns SMFI_TEMPFAIL and sets the reply code to '421', -then the SMTP server will terminate the SMTP session with a 421 error code. -</UL> -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2002-2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_setpriv.html b/contrib/sendmail/libmilter/docs/smfi_setpriv.html deleted file mode 100644 index 1c287ebb10d65..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_setpriv.html +++ /dev/null @@ -1,80 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_setpriv</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_setpriv.html,v 1.11 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_setpriv</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_setpriv( - SMFICTX *ctx, - void *privatedata -); -</PRE> -Set the private data pointer for this connection. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>smfi_setpriv may be called in any of the xxfi_* callbacks.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>Sets the private data pointer for the context ctx.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>privatedata</TD> - <TD>Pointer to private data. This value will be returned by subsequent calls to <A href="smfi_getpriv.html">smfi_getpriv</A> using ctx. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<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> - -<TD>There is only one private data pointer per connection; multiple -calls to smfi_setpriv with different values will cause previous values -to be lost. -<P> -Before a filter terminates it should release the private data -and set the pointer to NULL. -</TD> - -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000-2001, 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_setreply.html b/contrib/sendmail/libmilter/docs/smfi_setreply.html deleted file mode 100644 index d857815993de8..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_setreply.html +++ /dev/null @@ -1,117 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_setreply</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_setreply.html,v 1.17 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_setreply</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_setreply( - SMFICTX *ctx, - char *rcode, - char *xcode, - char *message -); -</PRE> -Set the default SMTP error reply code. Only 4XX and 5XX replies are accepted. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>smfi_setreply may be called from any of the xxfi_ callbacks -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 -this filter.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>rcode</TD> - <TD>The three-digit (RFC 821/2821) SMTP reply code, as a - null-terminated string. rcode cannot be NULL, and must be a valid - 4XX or 5XX reply code. - </TD></TR> - <TR valign="top"><TD>xcode</TD> - <TD>The extended (RFC 1893/2034) reply code. If xcode is NULL, no - extended code is used. Otherwise, xcode must conform to RFC 1893/2034. - </TD></TR> - <TR valign="top"><TD>message</TD> - <TD>The text part of the SMTP reply. If message is NULL, an empty message is used. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<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. -</UL> -Otherwise, it return MI_SUCCESS. -</TD> -</TR> - -<!----------- Notes ----------> -<TR align="left" valign=top> -<TH>NOTES</TH> -<TD> -<UL> -<LI>Values passed to smfi_setreply are not checked for standards compliance. -<LI>The message parameter should contain only printable characters, -other characters may lead to undefined behavior. -For example, CR or LF will cause the call to fail, -single '%' characters will cause the text to be ignored -(if there really should be a '%' in the string, -use '%%' just like for <TT>printf(3)</TT>). -<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 -<A href="http://www.rfc-editor.org/rfc/rfc1893.txt">1893</A>/ -<A href="http://www.rfc-editor.org/rfc/rfc2034.txt">2034</A>. -<LI>If the reply code (rcode) given is a '4XX' code but SMFI_REJECT is used -for the message, the custom reply is not used. -<LI>Similarly, if the reply code (rcode) given is a '5XX' code but -SMFI_TEMPFAIL is used for the message, the custom reply is not used. -<BR> -Note: in neither of the last two cases an error is returned to the milter, -libmilter silently ignores the reply code. -<LI>If the milter returns SMFI_TEMPFAIL and sets the reply code to '421', -then the SMTP server will terminate the SMTP session with a 421 error code. -</UL> -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2002-2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_setsymlist.html b/contrib/sendmail/libmilter/docs/smfi_setsymlist.html deleted file mode 100644 index 7e8edff6c68f5..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_setsymlist.html +++ /dev/null @@ -1,107 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_setsymlist</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_setsymlist.html,v 1.5 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_setsymlist</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_setsymlist( - SMFICTX *ctx, - int stage, - char *macros -); -</PRE> -Set the list of macros that the milter wants to receive from the MTA -for a protocol stage. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>This function must only be called during -<A HREF="xxfi_negotiate.html">xxfi_negotiate()</A>. -</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>This function can be used to override the list of macros that the -milter wants to receive from the MTA. -</TD> -</TR> -</TABLE> - -<!----------- 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><TD>ctx</TD> - <TD>the opaque context structure. - </TD></TR> - - <TR><TD>stage</TD> - <TD>the protocol stage during which the macro list should be used. - See the file - <CODE>include/libmilter/mfapi.h</CODE> for legal values, - look for the C macros with the prefix - <CODE>SMFIM_</CODE>. - Available protocol stages are at least - the initial connection, HELO/EHLO, MAIL, RCPT, DATA, - end of header, and - the end of a message. - </TD></TR> - - <TR><TD>macros</TD> - <TD>list of macros (separated by space). - Example: "{rcpt_mailer} {rcpt_host}" - </TD></TR> - - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<TH valign="top" align=left>RETURN VALUES</TH> - -<TD>MI_FAILURE is returned if -<UL> -<LI>there is not enough free memory to make a copy of the macro list, -<LI><CODE>macros</CODE> is <CODE>NULL</CODE> or empty, -<LI><CODE>stage</CODE> is not a valid protocol stage, -<LI>the macro list for -<CODE>stage</CODE> has been set before. -</UL> -Otherwise MI_SUCCESS is returned. -</TD> -</TR> - -<!----------- Notes ----------> -<TR align="left" valign=top> -<TH>NOTES</TH> -<TD>There is an internal limit on the number of macros that can be -set (currently 5), -however, this limit is not enforced by libmilter, only by the MTA, -but a possible violation of this restriction is not communicated back to -the milter.</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_settimeout.html b/contrib/sendmail/libmilter/docs/smfi_settimeout.html deleted file mode 100644 index 97d41cb1dd655..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_settimeout.html +++ /dev/null @@ -1,66 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_settimeout</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_settimeout.html,v 1.14 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_settimeout</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_settimeout( - int otimeout -); -</PRE> -Set the filter's I/O timeout value. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>smfi_settimeout should only be called before <A href="smfi_main.html">smfi_main</A>.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>Sets the number of seconds libmilter will wait -for an MTA communication (read or write) before timing out. -If smfi_settimeout is not called, a default timeout of 7210 seconds is used. -</TD> -</TR> -</TABLE> - -<!----------- 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>otimeout</TD> - <TD>The number of seconds to wait before timing out (> 0). - Zero means no wait, <B>not</B> "wait forever". - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<TH valign="top" align=left>RETURN VALUES</TH> - -<TD>smfi_settimeout always returns MI_SUCCESS.</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2002-2003, 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_stop.html b/contrib/sendmail/libmilter/docs/smfi_stop.html deleted file mode 100644 index 87ecdb2717528..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_stop.html +++ /dev/null @@ -1,74 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_stop</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_stop.html,v 1.6 2006/12/21 18:30:35 ca Exp $ ---> -<H1>smfi_stop</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_stop(void); -</PRE> -Shutdown the milter. -No connections will be accepted after this call. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>Called from any of the <A href="api.html#Callbacks">Callback</A> routines -or any error-handling routines at any time.</TD> -</TR> -<TR align="left" valign=top> -<TH width="80">Effects</TH> -<TD>The smfi_stop routine prevents that new connections -will be accepted, -however, it does not wait for existing connections (threads) to terminate. -It will cause -<A href="smfi_main.html">smfi_main</A> to return to the calling program, -which may then exit or warm-restart. -</TD> -</TR> -</TABLE> - -<!----------- 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>void</TD> - <TD>Takes no arguement. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<TH valign="top" align=left>RETURN VALUES</TH> - -<TD>smfi_stop always returns SMFI_CONTINUE. But note: -<UL> - <LI>Another internal routine may already have asked the milter to abort. - <LI>Another routine may already have asked the milter to stop. - <LI>There is no way to cancel the stop process once it has begun. -</UL> -</TD> -</TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2003, 2005 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/smfi_version.html b/contrib/sendmail/libmilter/docs/smfi_version.html deleted file mode 100644 index 3c1fc0520a231..0000000000000 --- a/contrib/sendmail/libmilter/docs/smfi_version.html +++ /dev/null @@ -1,86 +0,0 @@ -<HTML> -<HEAD><TITLE>smfi_version()</TITLE></HEAD> -<BODY> -<!-- -$Id: smfi_version.html,v 1.5 2007/03/22 17:30:57 ca Exp $ ---> -<H1>smfi_version()</H1> - -<TABLE BORDER="0" CELLSPACING=4 CELLPADDING=4> -<!---------- Synopsis -----------> -<TR><TH VALIGN="TOP" ALIGN=LEFT WIDTH=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -int smfi_version( - unsigned int *pmajor, - unsigned int *pminor, - unsigned int *ppl -); -</PRE> -Get the (runtime) version of libmilter. -</TD></TR> - -<!----------- Description ----------> -<TR><TH VALIGN="TOP" ALIGN=LEFT>DESCRIPTION</TH><TD> -<TABLE BORDER="1" CELLSPACING=1 CELLPADDING=4> -<TR ALIGN="LEFT" VALIGN=TOP> -<TH WIDTH="80">Called When</TH> -<TD>smfi_version may be called at any time.</TD> -</TR> -<TR ALIGN="LEFT" VALIGN=TOP> -<TH WIDTH="80">Effects</TH> -<TD>None.</TD> -</TR> -</TABLE> - -<!----------- 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>pmajor</TD> - <TD>Pointer to an unsigned int variable to store major version number. - </TD></TR> - <TR VALIGN="TOP"><TD>pminor</TD> - <TD>Pointer to an unsigned int variable to store minor version number. - </TD></TR> - <TR VALIGN="TOP"><TD>ppl</TD> - <TD>Pointer to an unsigned int variable to store patch level number. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<TH VALIGN="TOP" ALIGN=LEFT>RETURN VALUES</TH> -<TD>smfi_version returns MI_SUCCESS.</TD> -</TR> - -</TABLE> - -Note: the compile time version of libmilter is available in the macro -<CODE>SMFI_VERSION</CODE>. -A milter can check this macro to determine which functions to use -(at compile time via C preprocessor statements). -Using this macro and the -<CODE>smfi_version()</CODE> -function, -a milter can determine at runtime whether it has been (dynamically) -linked against the expected libmilter version. -To extract the major and minor version as well as the current patch level -from this macro, the macros -<CODE>SM_LM_VRS_MAJOR(v)</CODE>, -<CODE>SM_LM_VRS_MINOR(v)</CODE>, and -<CODE>SM_LM_VRS_PLVL(v)</CODE> -can be used, respectively. - - -<HR SIZE="1"> -<FONT SIZE="-1"> -Copyright (c) 2006, 2007 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/xxfi_abort.html b/contrib/sendmail/libmilter/docs/xxfi_abort.html deleted file mode 100644 index 0664dc107e49b..0000000000000 --- a/contrib/sendmail/libmilter/docs/xxfi_abort.html +++ /dev/null @@ -1,83 +0,0 @@ -<HTML> -<HEAD><TITLE>xxfi_abort</TITLE></HEAD> -<BODY> -<!-- -$Id: xxfi_abort.html,v 1.12 2006/12/21 18:30:35 ca Exp $ ---> -<H1>xxfi_abort</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -sfsistat (*xxfi_abort)( - SMFICTX *ctx -); -</PRE> -Handle the current message's being aborted. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>xxfi_abort may be called at any time during message processing (i.e. between some message-oriented routine and <A href="xxfi_eom.html">xxfi_eom</A>).</TD> -</TR> -<TR align="left" valign=top> -<TH>Default Behavior</TH> -<TD>Do nothing; return SMFIS_CONTINUE.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Notes ----------> -<TR> -<TH valign="top" align=left>NOTES</TH> -<TD> -<UL> -<LI>xxfi_abort must reclaim any resources allocated on a per-message -basis, and must be tolerant of being called between any two -message-oriented callbacks. - -<LI>Calls to xxfi_abort and <A href="xxfi_eom.html">xxfi_eom</A> are -mutually exclusive. - -<LI>xxfi_abort is not responsible for reclaiming connection-specific -data, since <A href="xxfi_close.html">xxfi_close</A> is always called -when a connection is closed. - -<LI>Since the current message is already being aborted, the return -value is currently ignored. - -<LI>xxfi_abort is only called if the message is aborted outside the -filter's control <B>and</B> the filter has not completed its -message-oriented processing. For example, if a filter has already -returned SMFIS_ACCEPT, SMFIS_REJECT, or SMFIS_DISCARD from a -message-oriented routine, xxfi_abort will not be called even if the -message is later aborted outside its control. -</UL> -</TD> -</TR> -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/xxfi_body.html b/contrib/sendmail/libmilter/docs/xxfi_body.html deleted file mode 100644 index 0a5f0f3da7ca3..0000000000000 --- a/contrib/sendmail/libmilter/docs/xxfi_body.html +++ /dev/null @@ -1,97 +0,0 @@ -<HTML> -<HEAD><TITLE>xxfi_body</TITLE></HEAD> -<BODY> -<!-- -$Id: xxfi_body.html,v 1.17 2007/03/26 20:12:46 ca Exp $ ---> -<H1>xxfi_body</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -sfsistat (*xxfi_body)( - SMFICTX *ctx, - unsigned char *bodyp, - size_t len -); -</PRE> -Handle a piece of a message's body. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>xxfi_body is called zero or more times between xxfi_eoh and xxfi_eom.</TD> -</TR> -<TR align="left" valign=top> -<TH>Default Behavior</TH> -<TD>Do nothing; return SMFIS_CONTINUE.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>bodyp</TD> - <TD>Pointer to the start of this block of body data. bodyp is not valid outside this call to xxfi_body. - </TD></TR> - <TR valign="top"><TD>len</TD> - <TD>The amount of data pointed to by bodyp. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Notes ----------> -<TR> -<TH valign="top" align=left>NOTES</TH> -<TD> -<UL> -<LI>bodyp points to a sequence of bytes. -It is <EM>not</EM> a C string (a sequence of characters that is terminated by '\0'). -Therefore, do not use the usual C string functions like <CODE>strlen(3)</CODE> -on this byte block. -Moreover, the byte sequence may contain '\0' characters inside the block. -Hence even if a trailing '\0' is added, C string functions may still fail -to work as expected. -<LI>Since message bodies can be very large, defining xxfi_body can -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 - xxfi_body per chunk. -<LI>Return -<A HREF="api.html#SMFIS_SKIP">SMFIS_SKIP</A> -if a milter has received sufficiently many -body chunks to make a decision, -but still wants to invoke -message modification functions that are only allowed to be called from -<A HREF="xxfi_eom.html">xxfi_eom()</A>. -Note: the milter <EM>must</EM> -<A HREF="xxfi_negotiate.html">negotiate</A> -this behavior with the MTA, i.e., it must check whether -the protocol action -<A HREF="xxfi_negotiate.html#SMFIP_SKIP"><CODE>SMFIP_SKIP</CODE></A> -is available and if so, the milter must request it. -</UL> -</TD> -</TR> -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000-2003, 2007 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/xxfi_close.html b/contrib/sendmail/libmilter/docs/xxfi_close.html deleted file mode 100644 index 2c2ae778f0da4..0000000000000 --- a/contrib/sendmail/libmilter/docs/xxfi_close.html +++ /dev/null @@ -1,81 +0,0 @@ -<HTML> -<HEAD><TITLE>xxfi_close</TITLE></HEAD> -<BODY> -<!-- -$Id: xxfi_close.html,v 1.13 2006/12/21 18:30:35 ca Exp $ ---> -<H1>xxfi_close</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -sfsistat (*xxfi_close)( - SMFICTX *ctx -); -</PRE> -The current connection is being closed. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>xxfi_close is always called once at the end of each connection.</TD> -</TR> -<TR align="left" valign=top> -<TH>Default Behavior</TH> -<TD>Do nothing; return SMFIS_CONTINUE.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Notes ----------> -<TR> -<TH valign="top" align=left>NOTES</TH> -<TD> -<UL> -<LI>xxfi_close may be called "out-of-order", i.e. before even the -xxfi_connect is called. -After a connection is established by the MTA to the filter, -if the MTA decides this connection's traffic will be discarded -(e.g. via an access_db result), no data will be passed to the -filter from the MTA until the client closes down. -At that time, xxfi_close is called. -It can therefore be the only callback ever used for a given connection, -and developers should anticipate this possibility when crafting their -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. -<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 -currently ignored. -</UL> -</TD> -</TR> -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003, 2004 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/xxfi_connect.html b/contrib/sendmail/libmilter/docs/xxfi_connect.html deleted file mode 100644 index 87d5eeb0b53ca..0000000000000 --- a/contrib/sendmail/libmilter/docs/xxfi_connect.html +++ /dev/null @@ -1,121 +0,0 @@ -<HTML> -<HEAD><TITLE>xxfi_connect</TITLE></HEAD> -<BODY> -<!-- -$Id: xxfi_connect.html,v 1.19 2007/01/15 22:24:45 ca Exp $ ---> -<H1>xxfi_connect</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -sfsistat (*xxfi_connect)( - SMFICTX *ctx, - char *hostname, - _SOCK_ADDR *hostaddr); -</PRE> -</TD></TR> -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR> -<TH valign="top" align=left width=80>Called When</TH> -<TD>Once, at the start of each SMTP connection.</TD> -</TR> -<TR> -<TH valign="top" align=left width=80>Default Behavior</TH> -<TD>Do nothing; return SMFIS_CONTINUE.</TD> -</TR> -</TABLE> -<!-- -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> ---> -<!----------- 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><TD>ctx</TD> - <TD>the opaque context structure. - </TD></TR> - <TR><TD>hostname</TD> - <TD>the host name of the message sender, as determined by a - reverse lookup on the host address. - If the reverse lookup fails - or if none of the IP addresses of the resolved host name - matches the original IP address, - hostname will contain the message sender's IP - address enclosed in square brackets (e.g. `[a.b.c.d]'). - If the SMTP connection is made via stdin the value is - <CODE>localhost</CODE>. - </TD></TR> - <TR><TD>hostaddr</TD> - <TD>the host address, - as determined by a <CODE>getpeername(2)</CODE> call on the SMTP socket. - NULL if the type is not supported in the current version or if - the SMTP connection is made via stdin. - </TD></TR> - </TABLE> -</TD></TR> -<!----------- Return values ----------> -<!-- -<TR> -<TH valign="top" align=left>SPECIAL RETURN VALUES</TH> -<TD><TABLE border="1" cellspacing=0> - <TR bgcolor="#dddddd"><TH>Return value</TH><TH>Description</TH></TR> - <TR valign="top"> - <TD>SMFIS_ACCEPT</TD> - <TD>Accept all commands and messages from this client without any - further contact with the filter. </TD> - </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_CONTINUE</TD> - <TD>Continue normal processing. </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_DISCARD</TD> - <TD>Undefined behaviour; do not use. </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_TEMPFAIL</TD> - <TD>Reject all commands and messages from this client with a - temporary failure reply code. - If also used in conjunction with <CODE>smfi_setreply()</CODE> - to set a reply whose SMTP code is 421, - the MTA will drop the connection immediately. </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_REJECT</TD> - <TD>Reject all commands and messages from this client with a - permanent failure reply code. </TD> - </TR> -</TABLE> -</TR> ---> -<!----------- Notes ----------> -<TR> -<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> -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000-2001, 2003, 2007 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/xxfi_data.html b/contrib/sendmail/libmilter/docs/xxfi_data.html deleted file mode 100644 index 2633ee5f0f56b..0000000000000 --- a/contrib/sendmail/libmilter/docs/xxfi_data.html +++ /dev/null @@ -1,89 +0,0 @@ -<HTML> -<HEAD><TITLE>xxfi_data</TITLE></HEAD> -<BODY> -<!-- -$Id: xxfi_data.html,v 1.4 2007/01/25 01:00:20 ca Exp $ ---> -<H1>xxfi_data</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -sfsistat (*xxfi_data)( - SMFICTX *ctx -); -</PRE> -Handle the DATA command. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<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. -</TR> -<TR align="left" valign=top> -<TH>Default Behavior</TH> -<TD>Do nothing; return SMFIS_CONTINUE.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<TH valign="top" align=left>SPECIAL RETURN VALUES</TH> -<TD><TABLE border="1" cellspacing=0> - <TR bgcolor="#dddddd"><TH>Return value</TH><TH>Description</TH></TR> - <TR valign="top"> - <TD>SMFIS_TEMPFAIL</TD> - <TD>Reject this message with a temporary error. - </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_REJECT</TD> - <TD>Reject this message. - </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_DISCARD</TD> - <TD>Accept and silently discard this message. - </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_ACCEPT</TD> - <TD>Accept this message. - </TD> - </TR> -</TABLE> -</TR> - -<!----------- Notes ----------> -<TR> -<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> -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/xxfi_envfrom.html b/contrib/sendmail/libmilter/docs/xxfi_envfrom.html deleted file mode 100644 index 6ae88cff6fc07..0000000000000 --- a/contrib/sendmail/libmilter/docs/xxfi_envfrom.html +++ /dev/null @@ -1,97 +0,0 @@ -<HTML> -<HEAD><TITLE>xxfi_envfrom</TITLE></HEAD> -<BODY> -<!-- -$Id: xxfi_envfrom.html,v 1.14 2007/01/25 01:00:20 ca Exp $ ---> -<H1>xxfi_envfrom</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -sfsistat (*xxfi_envfrom)( - SMFICTX *ctx, - char **argv -); -</PRE> -Handle the MAIL (envelope sender) command. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>xxfi_envfrom is called once at the beginning of each message -(MAIL command), -before xxfi_envrcpt.</TD> -</TR> -<TR align="left" valign=top> -<TH>Default Behavior</TH> -<TD>Do nothing; return SMFIS_CONTINUE.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>argv</TD> - <TD>Null-terminated SMTP command arguments; - argv[0] is guaranteed to be the sender address. - Later arguments are the ESMTP arguments. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<TH valign="top" align=left>SPECIAL RETURN VALUES</TH> -<TD><TABLE border="1" cellspacing=0> - <TR bgcolor="#dddddd"><TH>Return value</TH><TH>Description</TH></TR> - <TR valign="top"> - <TD>SMFIS_TEMPFAIL</TD> - <TD>Reject this sender and message with a temporary error; a new sender (and hence a new message) may subsequently be specified. <A href="xxfi_abort.html">xxfi_abort</A> is not called. - </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_REJECT</TD> - <TD>Reject this sender and message; a new sender/message may be specified. <A href="xxfi_abort.html">xxfi_abort</A> is not called. - </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_DISCARD</TD> - <TD>Accept and silently discard this message. <A href="xxfi_abort.html">xxfi_abort</A> is not called. - </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_ACCEPT</TD> - <TD>Accept this message. <A href="xxfi_abort.html">xxfi_abort</A> is not called. - </TD> - </TR> -</TABLE> -</TR> - -<!----------- Notes ----------> -<TR> -<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> -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003, 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/xxfi_envrcpt.html b/contrib/sendmail/libmilter/docs/xxfi_envrcpt.html deleted file mode 100644 index 9fb4ce873a8d3..0000000000000 --- a/contrib/sendmail/libmilter/docs/xxfi_envrcpt.html +++ /dev/null @@ -1,97 +0,0 @@ -<HTML> -<HEAD><TITLE>xxfi_envrcpt</TITLE></HEAD> -<BODY> -<!-- -$Id: xxfi_envrcpt.html,v 1.15 2007/01/25 01:00:20 ca Exp $ ---> -<H1>xxfi_envrcpt</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -sfsistat (*xxfi_envrcpt)( - SMFICTX *ctx, - char **argv -); -</PRE> -Handle the envelope RCPT command. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>xxfi_envrcpt is called once per recipient, hence one or more times per message, immediately after xxfi_envfrom.</TD> -</TR> -<TR align="left" valign=top> -<TH>Default Behavior</TH> -<TD>Do nothing; return SMFIS_CONTINUE.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>argv</TD> - <TD>Null-terminated SMTP command arguments; - argv[0] is guaranteed to be the recipient address. - Later arguments are the ESMTP arguments. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<TH valign="top" align=left>SPECIAL RETURN VALUES</TH> -<TD><TABLE border="1" cellspacing=0> - <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 - may still be sent. <A href="xxfi_abort.html">xxfi_abort</A> is not called. - </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_REJECT</TD> - <TD>Reject this particular recipient; further recipients may still be sent. - <A href="xxfi_abort.html">xxfi_abort</A> is not called. - </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_DISCARD</TD> - <TD>Accept and discard the message. <A href="xxfi_abort.html">xxfi_abort</A> will be called. - </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_ACCEPT</TD> - <TD>Accept recipient. <A href="xxfi_abort.html">xxfi_abort</A> will not be called. - </TD> - </TR> -</TABLE> -</TR> - -<!----------- Notes ----------> -<TR> -<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> -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/xxfi_eoh.html b/contrib/sendmail/libmilter/docs/xxfi_eoh.html deleted file mode 100644 index 2a74e7af57c5d..0000000000000 --- a/contrib/sendmail/libmilter/docs/xxfi_eoh.html +++ /dev/null @@ -1,56 +0,0 @@ -<HTML> -<HEAD><TITLE>xxfi_eoh</TITLE></HEAD> -<BODY> -<!-- -$Id: xxfi_eoh.html,v 1.11 2006/12/21 18:30:35 ca Exp $ ---> -<H1>xxfi_eoh</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -sfsistat (*xxfi_eoh)( - SMFICTX *ctx -); -</PRE> -Handle the end of message headers. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>xxfi_eoh is called once after all headers have been sent and processed. -</TD> -</TR> -<TR align="left" valign=top> -<TH>Default Behavior</TH> -<TD>Do nothing; return SMFIS_CONTINUE.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - </TABLE> -</TD></TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/xxfi_eom.html b/contrib/sendmail/libmilter/docs/xxfi_eom.html deleted file mode 100644 index b5aee8b856b5e..0000000000000 --- a/contrib/sendmail/libmilter/docs/xxfi_eom.html +++ /dev/null @@ -1,62 +0,0 @@ -<HTML> -<HEAD><TITLE>xxfi_eom</TITLE></HEAD> -<BODY> -<!-- -$Id: xxfi_eom.html,v 1.12 2006/12/21 18:30:36 ca Exp $ ---> -<H1>xxfi_eom</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -sfsistat (*xxfi_eom)( - SMFICTX *ctx -); -</PRE> -End of a message. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>xxfi_eom is called once after all calls to <A href="xxfi_body.html">xxfi_body</A> for a given message.</TD> -</TR> -<TR align="left" valign=top> -<TH>Default Behavior</TH> -<TD>Do nothing; return SMFIS_CONTINUE.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Notes ----------> -<TR> -<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> -</TR> -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/xxfi_header.html b/contrib/sendmail/libmilter/docs/xxfi_header.html deleted file mode 100644 index 8a5462fc3ff4b..0000000000000 --- a/contrib/sendmail/libmilter/docs/xxfi_header.html +++ /dev/null @@ -1,111 +0,0 @@ -<HTML> -<HEAD><TITLE>xxfi_header</TITLE></HEAD> -<BODY> -<!-- -$Id: xxfi_header.html,v 1.17 2006/12/21 18:30:36 ca Exp $ ---> -<H1>xxfi_header</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -sfsistat (*xxfi_header)( - SMFICTX *ctx, - char *headerf, - char *headerv -); -</PRE> -Handle a message header. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> -<TD>xxfi_header is called once for each message header.</TD> -</TR> -<TR align="left" valign=top> -<TH>Default Behavior</TH> -<TD>Do nothing; return SMFIS_CONTINUE.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>headerf</TD> - <TD> Header field name. - </TD></TR> - <TR valign="top"><TD>headerv</TD> - <TD>Header field value. - The content of the header may include folded white space, - i.e., multiple lines with following white space - where lines are separated by LF (not CR/LF). - The trailing line terminator (CR/LF) is removed. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Notes ----------> -<TR> -<TH valign="top" align=left>NOTES</TH> -<TD> -<UL> -<LI>Starting with sendmail 8.14, spaces after the colon in a header -field are preserved if requested using the flag -<A HREF="xxfi_negotiate.html#SMFIP_HDR_LEADSPC"><CODE>SMFIP_HDR_LEADSPC</CODE></A>. -That is, the header - -<PRE> -From: sender <f@example.com> -To: user <t@example.com> -Subject:no -</PRE> - -will be sent to a milter as - -<PRE> -"From", " sender <f@example.com>" -"To", " user <t@example.com>" -"Subject", "no" -</PRE> - -while previously -(or without the flag -<A HREF="xxfi_negotiate.html#SMFIP_HDR_LEADSPC"><CODE>SMFIP_HDR_LEADSPC</CODE></A>) -it was: - -<PRE> -"From", "sender <f@example.com>" -"To", "user <t@example.com>" -"Subject", "no" -</PRE> - - -<LI>Later filters will see header changes/additions made by earlier ones. -<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> -</UL> -</TD> -</TR> -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003, 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/xxfi_helo.html b/contrib/sendmail/libmilter/docs/xxfi_helo.html deleted file mode 100644 index 613cb1949a2b4..0000000000000 --- a/contrib/sendmail/libmilter/docs/xxfi_helo.html +++ /dev/null @@ -1,64 +0,0 @@ -<HTML> -<HEAD><TITLE>xxfi_helo</TITLE></HEAD> -<BODY> -<!-- -$Id: xxfi_helo.html,v 1.12 2006/12/21 18:30:36 ca Exp $ ---> -<H1>xxfi_helo</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -sfsistat (*xxfi_helo)( - SMFICTX *ctx, - char *helohost -); -</PRE> -Handle the HELO/EHLO command. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR align="left" valign=top> -<TH width="80">Called When</TH> <TD>xxfi_helo is called whenever the client -sends a HELO/EHLO command. -It may therefore be called several times or even not at all; -some restrictions can be imposed by the MTA configuration. -</TD> -</TR> -<TR align="left" valign=top> -<TH>Default Behavior</TH> -<TD>Do nothing; return SMFIS_CONTINUE.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>helohost</TD> - <TD>Value passed to HELO/EHLO command, which should be - the domain name of the sending host (but is, in practice, - anything the sending host wants to send). - </TD></TR> - </TABLE> -</TD></TR> - -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2000, 2003, 2005 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/xxfi_negotiate.html b/contrib/sendmail/libmilter/docs/xxfi_negotiate.html deleted file mode 100644 index 0f69f70791f1d..0000000000000 --- a/contrib/sendmail/libmilter/docs/xxfi_negotiate.html +++ /dev/null @@ -1,277 +0,0 @@ -<HTML> -<HEAD><TITLE>xxfi_negotiate</TITLE></HEAD> -<BODY> -<!-- -$Id: xxfi_negotiate.html,v 1.23 2006/12/20 18:57:08 ca Exp $ ---> -<H1>xxfi_negotiate</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -#include <libmilter/mfdef.h> -sfsistat (*xxfi_negotiate)( - SMFICTX *ctx, - unsigned long f0, - unsigned long f1, - unsigned long f2, - unsigned long f3, - unsigned long *pf0, - unsigned long *pf1, - unsigned long *pf2, - unsigned long *pf3); -</PRE> -</TD></TR> -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<TR> -<TH valign="top" align=left width=80>Called When</TH> -<TD>Once, at the start of each SMTP connection.</TD> -</TR> -<TR> -<TH valign="top" align=left width=80>Default Behavior</TH> -<TD>Return SMFIS_ALL_OPTS to change nothing.</TD> -</TR> -</TABLE> -<!----------- 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><TD>ctx</TD> - <TD>the opaque context structure. - </TD></TR> - <TR><TD>f0</TD> - <TD>the actions offered by the MTA. - </TD></TR> - <TR><TD>f1</TD> - <TD>the protocol steps offered by the MTA. - <TR><TD>f2</TD> - <TD>for future extensions. - </TD></TR> - <TR><TD>f3</TD> - <TD>for future extensions. - </TD></TR> - <TR><TD>pf0</TD> - <TD>the actions requested by the milter. - </TD></TR> - <TR><TD>pf1</TD> - <TD>the protocol steps requested by the milter. - <TR><TD>pf2</TD> - <TD>for future extensions. - </TD></TR> - <TR><TD>pf3</TD> - <TD>for future extensions. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<TH valign="top" align=left>SPECIAL RETURN VALUES</TH> -<TD><TABLE border="1" cellspacing=0> - <TR bgcolor="#dddddd"><TH>Return value</TH><TH>Description</TH></TR> - <TR valign="top"> - <TD>SMFIS_ALL_OPTS</TD> - <TD> -If a milter just wants to inspect the available protocol steps -and actions, then it can return -SMFIS_ALL_OPTS -and the MTA will make all protocol steps and actions available -to the milter. -In this case, no values should be assigned to the output parameters -<CODE>pf0</CODE> - <CODE>pf3</CODE> -as they will be ignored. - </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_REJECT</TD> - <TD>Milter startup fails and it will not be contacted again -(for the current connection). - </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_CONTINUE</TD> - <TD>Continue processing. - In this case the milter <EM>must</EM> set all output parameters - <CODE>pf0</CODE> - <CODE>pf3</CODE>. - See below for an explanation how to set those output parameters. - </TD> - </TR> -</TABLE> -</TR> - -<!----------- Notes ----------> -<TR> -<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 -<A HREF="smfi_register.html#flags">flags</A> field of the -<A HREF="smfi_register.html#smfiDesc">smfiDesc</A> -structure -and the protocol steps (f1) were implicitly derived by checking whether -a callback was defined. -Due to the extensions in the new milter version, -such a static selection will not work if a milter requires -new actions that are not available when talking to an older MTA. -Hence in the negotiation callback a milter can determine -which operations are available and dynamically select -those which it needs and which are offered. -If some operations are not available, the milter may either fall back -to an older mode or abort the session and ask the user to upgrade. - -<!-- -<P> -The protocol steps are defined in -<CODE>include/libmilter/mfdef.h</CODE>: -the macros start with -<CODE>SMFIP_</CODE>. ---> - -<P> -Protocol steps -(<CODE>f1</CODE>, <CODE>*pf1</CODE>): -<UL> -<LI><A NAME="SMFIP_RCPT_REJ"><CODE>SMFIP_RCPT_REJ</CODE></A>: -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. -If a milter requests this protocol step, -then it should check the macro -<CODE>{rcpt_mailer}</CODE>: -if that is set to -<CODE>error</CODE>, -then the recipient will be rejected by the MTA. -Usually the macros -<CODE>{rcpt_host}</CODE> and <CODE>{rcpt_addr}</CODE> -will contain an enhanced status code and an error text -in that case, respectively. - -<LI><A NAME="SMFIP_SKIP"><CODE>SMFIP_SKIP</CODE></A> -indicates that the MTA understand the -<A HREF="api.html#SMFIS_SKIP">SMFIS_SKIP</A> -return code. - -<LI><A NAME="SMFIP_NR_"><CODE>SMFIP_NR_*</CODE></A> -indicates that the MTA understand the -<A HREF="api.html#SMFIS_NOREPLY">SMFIS_NOREPLY</A> -return code. -There are flags for various protocol stages: - -<UL> - -<LI><A NAME="SMFIP_NR_CONN"><CODE>SMFIP_NR_CONN</CODE></A>: -<A HREF="xxfi_connect.html">xxfi_connect()</A> - -<LI><A NAME="SMFIP_NR_HELO"><CODE>SMFIP_NR_HELO</CODE></A>: -<A HREF="xxfi_helo.html">xxfi_helo()</A> - -<LI><A NAME="SMFIP_NR_MAIL"><CODE>SMFIP_NR_MAIL</CODE></A>: -<A HREF="xxfi_envfrom.html">xxfi_envfrom()</A> - -<LI><A NAME="SMFIP_NR_RCPT"><CODE>SMFIP_NR_RCPT</CODE></A>: -<A HREF="xxfi_envrcpt.html">xxfi_envrcpt()</A> - -<LI><A NAME="SMFIP_NR_DATA"><CODE>SMFIP_NR_DATA</CODE></A>: -<A HREF="xxfi_data.html">xxfi_data()</A> - -<LI><A NAME="SMFIP_NR_UNKN"><CODE>SMFIP_NR_UNKN</CODE></A>: -<A HREF="xxfi_unknown.html">xxfi_unknown()</A> - -<LI><A NAME="SMFIP_NR_EOH"><CODE>SMFIP_NR_EOH</CODE></A>: -<A HREF="xxfi_eoh.html">xxfi_eoh()</A> - -<LI><A NAME="SMFIP_NR_BODY"><CODE>SMFIP_NR_BODY</CODE></A>: -<A HREF="xxfi_body.html">xxfi_body()</A> - -<LI><A NAME="SMFIP_NR_HDR"><CODE>SMFIP_NR_HDR</CODE></A>: -<A HREF="xxfi_header.html">xxfi_header()</A> - -</UL> - -<LI><A NAME="SMFIP_HDR_LEADSPC"><CODE>SMFIP_HDR_LEADSPC</CODE></A> -indicates that the MTA can send header values with leading space intact. -If this protocol step is requested, then the MTA will also not add a leading -space to headers when they are added, inserted, or changed. - -<!-- -:'a,.s;^#define \(SMFIP_NO[A-Z]*\)[ ].*;<LI><A NAME="\1"><CODE>\1</CODE></A>:; ---> -<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>. -<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> -<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>: -<A HREF="xxfi_envrcpt.html">xxfi_envrcpt()</A> -<LI><A NAME="SMFIP_NOBODY"><CODE>SMFIP_NOBODY</CODE></A>: -<A HREF="xxfi_body.html">xxfi_body()</A> -<LI><A NAME="SMFIP_NOHDRS"><CODE>SMFIP_NOHDRS</CODE></A>: -<A HREF="xxfi_header.html">xxfi_header()</A> -<LI><A NAME="SMFIP_NOEOH"><CODE>SMFIP_NOEOH</CODE></A>: -<A HREF="xxfi_eoh.html">xxfi_eoh()</A> -<LI><A NAME="SMFIP_NOUNKNOWN"><CODE>SMFIP_NOUNKNOWN</CODE></A>: -<A HREF="xxfi_unknown.html">xxfi_unknown()</A> -<LI><A NAME="SMFIP_NODATA"><CODE>SMFIP_NODATA</CODE></A>: -<A HREF="xxfi_data.html">xxfi_data()</A> -</UL> - -For each of these xxfi_* callbacks that a milter does not use -the corresponding flag <EM>should</EM> be set in -<CODE>*pf1</CODE>. - -</UL> - -<P> -The available actions -(<CODE>f0</CODE>, <CODE>*pf0</CODE>) -are -<!-- -defined in -<CODE>include/libmilter/mfapi.h</CODE>: -the macros start with -<CODE>SMFIF_</CODE>; -these are ---> -described -<A HREF="smfi_register.html#flags">elsewhere (xxfi_flags)</A>. - -<P> -If a milter returns SMFIS_CONTINUE, then it <EM>must</EM> -set the desired actions and protocol steps -via the (output) parameters -<CODE>pf0</CODE> -and -<CODE>pf1</CODE> -(which correspond to -<CODE>f0</CODE> -and -<CODE>f1</CODE>, respectively). -The (output) parameters -<CODE>pf2</CODE> and -<CODE>pf3</CODE> -should be set to 0 for compatibility with future versions. - -</TD> -</TR> -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> diff --git a/contrib/sendmail/libmilter/docs/xxfi_unknown.html b/contrib/sendmail/libmilter/docs/xxfi_unknown.html deleted file mode 100644 index 0455dfdfdee08..0000000000000 --- a/contrib/sendmail/libmilter/docs/xxfi_unknown.html +++ /dev/null @@ -1,84 +0,0 @@ -<HTML> -<HEAD><TITLE>xxfi_unknown</TITLE></HEAD> -<BODY> -<!-- -$Id: xxfi_unknown.html,v 1.4 2007/04/23 16:30:42 ca Exp $ ---> -<H1>xxfi_unknown</H1> - -<TABLE border="0" cellspacing=4 cellpadding=4> -<!---------- Synopsis -----------> -<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD> -<PRE> -#include <libmilter/mfapi.h> -sfsistat (*xxfi_unknown)( - SMFICTX *ctx, - const char *arg -); -</PRE> -Handle unknown and unimplemented SMTP commands. -</TD></TR> - -<!----------- Description ----------> -<TR><TH valign="top" align=left>DESCRIPTION</TH><TD> -<TABLE border="1" cellspacing=1 cellpadding=4> -<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. -</TR> -<TR align="left" valign=top> -<TH>Default Behavior</TH> -<TD>Do nothing; return SMFIS_CONTINUE.</TD> -</TR> -</TABLE> - -<!----------- 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>ctx</TD> - <TD>Opaque context structure. - </TD></TR> - <TR valign="top"><TD>arg</TD> - <TD>SMTP command including all arguments. - </TD></TR> - </TABLE> -</TD></TR> - -<!----------- Return values ----------> -<TR> -<TH valign="top" align=left>SPECIAL RETURN VALUES</TH> -<TD><TABLE border="1" cellspacing=0> - <TR bgcolor="#dddddd"><TH>Return value</TH><TH>Description</TH></TR> - <TR valign="top"> - <TD>SMFIS_TEMPFAIL</TD> - <TD>Reject this command with a temporary error. - </TD> - </TR> - <TR valign="top"> - <TD>SMFIS_REJECT</TD> - <TD>Reject this command. - </TD> - </TR> -</TABLE> -</TR> - -<!----------- Notes ----------> -<TR> -<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. -</TR> -</TABLE> - -<HR size="1"> -<FONT size="-1"> -Copyright (c) 2006 Sendmail, Inc. and its suppliers. -All rights reserved. -<BR> -By using this file, you agree to the terms and conditions set -forth in the LICENSE. -</FONT> -</BODY> -</HTML> |
