diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2010-07-15 18:53:51 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2010-07-15 18:53:51 +0300 |
commit | b0c430a8642b102adb61b3df5e685920f963023d (patch) | |
tree | 48f09f6332c420f1bfc1ad5c53849acdaf58247a | |
parent | 8d4894458790db74d795e874c298b0810aca7746 (diff) | |
download | mailfromd-b0c430a8642b102adb61b3df5e685920f963023d.tar.gz mailfromd-b0c430a8642b102adb61b3df5e685920f963023d.tar.bz2 |
Write more docs.
* doc/deprecate.texi: Remove.
* doc/pragma-database.texi: Remove.
* doc/pragma-option.texi: Remove.
* doc/Makefile.am (mailfromd_TEXINFOS): Remove the above.
(check-pragmas): Remove the rule, but leave a placeholder for
a while.
(check-sub-config): Fix the rule to allow for dashes in keyword
names.
* doc/functions.texi: Fix a typo.
* doc/macros.texi (histref): New macro.
* doc/mailfromd.texi: Remove obsolete sections. Describe
callout servers and SMTP timeouts.
* mflib/sav.mf: Remove.
-rw-r--r-- | doc/Makefile.am | 18 | ||||
-rw-r--r-- | doc/deprecate.texi | 175 | ||||
-rw-r--r-- | doc/functions.texi | 2 | ||||
-rw-r--r-- | doc/macros.texi | 5 | ||||
-rw-r--r-- | doc/mailfromd.texi | 348 | ||||
-rw-r--r-- | doc/pragma-database.texi | 61 | ||||
-rw-r--r-- | doc/pragma-option.texi | 224 | ||||
-rw-r--r-- | doc/upgrade.texi | 15 | ||||
-rw-r--r-- | mflib/sav.mf | 185 |
9 files changed, 265 insertions, 768 deletions
diff --git a/doc/Makefile.am b/doc/Makefile.am index cbc8b48b..8e2419c0 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -16,15 +16,12 @@ info_TEXINFOS=mailfromd.texi mailfromd_TEXINFOS=\ - deprecate.texi\ fdl.texi\ functions.texi\ gacopyz.texi\ macros.texi\ mtasim.texi\ pmult.texi\ - pragma-database.texi\ - pragma-option.texi\ rendition.texi\ sexp.texi\ strftime.texi\ @@ -47,13 +44,7 @@ check-format: false; \ fi -check-pragmas: - @check-docs.sh pragmas \ - '/} option_cache\[\] = {/,/^}/s/[ \t]*{ *"\(.*\)".*/\1/pg' \ - 's/@deffnx* {pragma option} *\([^@, ]*\) .*/\1/p' \ - $(top_srcdir)/mfd/main.c -- \ - $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ - $(info_TEXINFOS) +check-pragmas:; check-options: @check-docs.sh options \ @@ -74,8 +65,9 @@ check-config: check-sub-config: @list=`sed -n '/mf_cfg_param\[\] *= *{/,/^}/{s/[ \t]*{ *"\([^,"]*\)", *mu_cfg_section *,.*/\1/pg}' $(top_srcdir)/mfd/main.c`; \ for ident in $$list; do \ + cident=`echo $$ident | tr '-' '_'`; \ check-docs.sh "$$ident configuration statements" \ - "/$${ident}_section_param"'\[\] *= *{/,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg' \ + "/$${cident}_section_param"'\[\] *= *{/,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg' \ "s/@deffn {$${ident}}"' *\([^@,]*\).*/\1/p' \ $(top_srcdir)/mfd/main.c -- \ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ @@ -100,8 +92,8 @@ check-mflib: check-exceptions: @check-docs.sh exceptions \ - '/typedef enum mf_exception_code {/,/^};/s/[ \t]*mfe_\(.*\),.*/e_\1/p;/typedef enum mf_status_code {/,/^};/s/[ \t]*mf_\(.*\),.*/\1/p' \ - 's/@cindex \([^,][^,]*\), exception type/\1/p' \ + '/typedef enum mf_exception_code {/,/^};/s/[ \t]*mfe_\(.*\),.*/e_\1/p' \ + 's/@cindex \(e_[^,]*\), exception type/\1/p' \ $(top_srcdir)/mfd/mailfromd.h -- \ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ $(info_TEXINFOS) diff --git a/doc/deprecate.texi b/doc/deprecate.texi deleted file mode 100644 index d674e491..00000000 --- a/doc/deprecate.texi +++ /dev/null @@ -1,175 +0,0 @@ -@c Copyright (C) 2005, 2006, 2009, 2010 Sergey Poznyakoff -@c Permission is granted to copy, distribute and/or modify this document -@c under the terms of the GNU Free Documentation License, Version 1.2 or -@c any later version published by the Free Software Foundation; with no -@c Invariant Sections, with the Front-Cover texts being ``Mailfromd Manual'', -@c and with the Back-Cover Texts at your option. - -@menu -* pragma-option:: -* pragma-database:: -* implicit concatenation:: -* old-style function declarations:: -* operational notation:: -@end menu - -@node pragma-option -@appendixsec #pragma option -@include pragma-option.texi - -@node pragma-database -@appendixsec #pragma database -@include pragma-database.texi - -@node implicit concatenation -@appendixsec Implicit Concatenation and Operational Syntax - Implicit concatenation and operational syntax are two deprecated -features still supported by @command{mailfromd} version -@value{VERSION}. These features will disappear in the next release, -so you are advised to update your scripts if they still use them. -@xref{5x0-600, upgrade your scripts}, for a description of the upgrade -procedure. - - @dfn{Implicit concatenation} is performed wherever the compiler -encounters two adjacent variables or adjacent variable and literal. -Notice, that it does not affect implicit concatenation of adjacent -literals, which is supported as before. That is, the following is -correct: - -@smallexample - echo "GNU's" " not " " UNIX" -@end smallexample - -@noindent -whereas the following is deprecated: - -@smallexample - echo %y %z -@end smallexample - - When compiler encounters such a construct, it acts as if there were -a @samp{.} (dot) operator between the variables -(@pxref{Concatenation}), and issues the following warning: - -@smallexample -@var{file}:@var{line}: implicit concatenation is deprecated -@var{file}:@var{line}: use `.' operator -@end smallexample - - - @dfn{Operational syntax} consists in calling a function of one -argument without parentheses around the actual parameter, e.g.: - -@smallexample - set x primitive_hostname $client_addr -@end smallexample - -@noindent -instead of: - -@smallexample - set x primitive_hostname($client_addr) -@end smallexample - - If such usage is encountered, the compiler issues the following -warning: - -@smallexample -@var{file}:@var{line}: use of function name as a prefix operator is -deprecated -@end smallexample - - Both features brought more trouble than advantage, and therefore -I decided to remove them. Please, update your scripts, if you are -still using them. For the sake of completeness, here is what -the documentation for previous versions of @command{mailfromd} -said on the subject: - -@quotation - There are some features of @acronym{MFL} which, when used improperly, -may lead to subtle, hard identifiable errors. These are: concatenation -operation (@pxref{Concatenation}) and passing arguments to -one-argument functions without parentheses (@pxref{operational -notation}). - - Since there is no explicit operator for concatenation, it is often -necessary to ensure that it happens at the right time by using -parentheses to enclose the items to concatenate. Consider the -following example: - -@smallexample -echo toupper "some" "thing" -@end smallexample - - Should it print @samp{SOMETHING} or just @samp{SOMEthing}? The -correct answer is the former, but it is difficult to deduce unless you -are well acquainted with the @acronym{MFL} precedence rules -(@pxref{Precedence}). Therefore, the rule of thumb is: whenever in -doubt, parenthesize: - -@smallexample -echo toupper("some" "thing") @result{} "SOMETHING" -echo toupper("some") "thing" @result{} "SOMEthing" -@end smallexample -@end quotation - -@node old-style function declarations -@appendixsec Old-Style Function Declarations - -@anchor{func-old-style} -@cindex function declaration, old style - For compatibility with previous versions, @command{mailfromd} also -supports the @dfn{legacy} format of function declarations: - -@smallexample -func @var{name} (@var{param-types}) returns @var{rettype} -@end smallexample - -@noindent -Here, @var{param-types} is a comma-separated list of parameter types. -The following abbreviations can be used: @samp{s} for @code{string} -and @samp{n} for numeric. The same holds true for @var{rettype} as -well. - -@anchor{positional parameter} -@cindex positional parameters, in functions - The parameters declared this way are called @dfn{positional -parameters}. The function can access its actual arguments using the notation -@code{$@var{n}}, where @var{n} is the ordinal number of the -argument@footnote{Well, to tell you the truth, you can access named -arguments using positional notation as well. But such a mixing of -styles is not recommended.}. Arguments are counted from left to -right. The first argument is @code{$1}. - - For example, here's the definition of the @samp{sam} function -(@pxref{sum--example}), using the legacy syntax: - -@smallexample -@group -func sum(n, n) returns n -do - return $1 + $2 -done -@end group -@end smallexample - -@node operational notation -@appendixsec Operational Notation - -@dfn{Operational notation} is a practice of invoking functions of -single argument without parentheses around their argument, e.g.: - -@smallexample - hostname %x -@end smallexample - -@noindent -instead of: - -@smallexample - hostname(%x) -@end smallexample - -This practice was commonly used in early versions of @acronym{MFL}. -Now it is deprecated. The version 6.0 is the last version that -supports it. diff --git a/doc/functions.texi b/doc/functions.texi index 3c40900f..d05c5080 100644 --- a/doc/functions.texi +++ b/doc/functions.texi @@ -773,7 +773,7 @@ to `accept', to suppress this warning If it is OK to lose all modifications, call @code{mmq_purge}, as suggested in this message. -@deftypefn {Built-in Function} void mmq_drop () +@deftypefn {Built-in Function} void mmq_purge () Remove all modification requests from the queue. This function undoes the effect of any of the following functions, if they had been called previously: @code{rcpt_add}, @code{rcpt_delete}, @code{header_add}, diff --git a/doc/macros.texi b/doc/macros.texi index a26ad0ca..f0aea564 100644 --- a/doc/macros.texi +++ b/doc/macros.texi @@ -27,5 +27,8 @@ @mtindex \option\, --\option\, @r{@command{mtasim} option, \text\} @end macro - +@macro histref{version,ref,text} +@uref{http://mailfromd.man.gnu.org.ua/historic/\version\/html_node/\ref\.html,\text\} +@end macro + diff --git a/doc/mailfromd.texi b/doc/mailfromd.texi index 92dbfa5b..06835ac4 100644 --- a/doc/mailfromd.texi +++ b/doc/mailfromd.texi @@ -122,7 +122,6 @@ Appendices * Gacopyz:: * Time and Date Formats:: * s-expression:: -* Deprecated Features:: * Upgrading:: * Copying This Manual:: The GNU Free Documentation License. @@ -345,14 +344,6 @@ Pmult Configuration * pmult-client:: Pmult Client Configuration. * pmult-debug:: Debugging Pmult. -Deprecated Features - -* pragma-option:: -* pragma-database:: -* implicit concatenation:: -* old-style function declarations:: -* operational notation:: - Upgrading * 5x0-600:: Upgrading from 5.x to 6.0 @@ -1688,78 +1679,65 @@ done @node SMTP Timeouts @section @acronym{SMTP} Timeouts - +@UNREVISED When using polling functions, it is important to take into account -possible delay, which can occur in @acronym{SMTP} transactions. Most often -such delays are due to low network bandwidth, but sometimes remote -sites impose them willingly, as a spam-fighting measure@footnote{My -private opinion is that such practice is completely lame.} - -@cindex timeouts, defined - @command{Mailfromd} polling functions implement three distinct -@dfn{timeout} values: - -@table @dfn -@cindex connection timeout -@cindex timeout, connection -@item Connection timeout - Maximum time for establishing the initial @acronym{TCP} -connection to the remote host. If the connection is not established -within this time interval, the polling returns @code{temp_failure}. - -@cindex initial response timeout -@cindex timeout, initial response -@item Initial response timeout - Maximum time before receiving initial @acronym{SMTP} response from -the remote host. - -@cindex I/O timeout -@cindex timeout, I/O -@cindex timeout, input/output -@item I/O timeout - Maximum amount of time for finishing an input/output -operation with the remote @acronym{SMTP} server. -@end table - - These three timeouts can be set using the following configuration -file statements (@pxref{conf-timeout}): - -@smallexample -@group -connect-timeout @var{interval}; -initial-response-timeout @var{interval}; -io-timeout @var{interval}; -@end group -@end smallexample - - Here, @var{interval} is the time interval, expressed in usual -time units@footnote{@xref{time interval specification}, for its -detailed description.}, for example: - -@smallexample -initial-response-timeout 1 minute 30 seconds; -@end smallexample - - The default values are: - -@smallexample -@group -connect-timeout @value{CONNECT-TIMEOUT}; -initial-response-timeout @value{INITIAL-RESPONSE-TIMEOUT}; -io-timeout @value{IO-TIMEOUT}; -@end group -@end smallexample - -@cindex CommuniGate Pro servers, lameness - You will most certainly encounter some servers that deliberately -delay issuing the initial @acronym{SMTP} reply (in particular, I have -noted that most @samp{CommuniGate Pro} servers are guilty of this lame -practice). The default @code{initial-response-timeout} value should -be enough to cope with most of them. If you encounter a server -that delays more than 30 seconds, you can raise the -@code{initial-response-timeout} value. However, in this case, I'd -rather recommend informing its admin that his server settings are not -tolerable. +possible delays, which can occur in @acronym{SMTP} transactions. Such +delays may be due to low network bandwidth or high load on the remote +server. Some sites impose them willingly, as a spam-fighting measure. + +@cindex timeout escalation + Ideally the callout verification should use the timeout values +defined in the RFC 2822, but this is impossible in practice, because +it would cause a @dfn{timeout escalation}, which consists in +propagating delays encountered in a callout @acronym{SMTP} session +back to the remote client whose session was the cause of the callout. + + Consider, for example, the following scenario. An @acronym{MFL} +script performs a callout on @samp{envfrom} stage. The remote server +is overloaded and delays heavily in responding, so that the initial response +arrives 3 minutes after establishing the connection, and processing +the @samp{EHLO} command takes another 3 minutes. These delays are +OK according to the RFC, which imposes a 5 minute limit for both, +but while waiting for the remote reply our @acronym{SMTP} server +remains in the @samp{envfrom} state with the client waiting +for a response to its @samp{MAIL} command more than 6 minutes, which is +intolerable, because the RFC imposes the same 5 minute timeout for +this stage. Thus, the client will almost certainly break the session. + +@cindex callout server +@cindex server, callout +@cindex soft SMTP timeout +@cindex hard STMP timeout + To avoid this, @command{mailfromd} uses a special instance, called +@dfn{callout server}, which is responsible for running callout +@acronym{SMTP} sessions asynchronously. The usual sender verification +is performed using so-called @dfn{soft} timeout values, which +are set to values short enough to not disturb the incoming session +(e.g. a timeout for @samp{HELO} response is 3 seconds, instead of 5 +minutes). If this verification yields a definite answer, that answer +is stored in the cache database and returned to the calling procedure +immediately. If, however, the verification is aborted due to a timeout, +the caller procedure is returned an @samp{e_temp_failure} exception, and +the callout is scheduled for processing by a callout server. The +exception normally causes the milter session to return a temporary +error to the sender, urging it to retry the connection later. + + In the meantime, the callout server runs the sender verification +again using another set of timeouts, called @dfn{hard} timeouts, which +are normally much longer than @samp{soft} ones (they default to the +values required by RFC 2822). If it gets a definitive result (e.g. +@samp{email found} or @samp{email not found}, the server stores it +in the cache database. If the callout ends due to a timeout, a +@samp{not_found} result is stored in the database. + + Some time later, the remote server retries the delivery, and the +@command{mailfromd} script is run again. This time, the callout +function will immediately obtain the already cached result from the +database and proceed accordingly. If the callout server has not +finished the request by the time the sender retries the connection, +the latter is again returned a temporary error, and the process +continues until the callout is finished. + @node Avoiding Verification Loops @section Avoiding Verification Loops @@ -3324,6 +3302,7 @@ syslog facility name, i.e. one of: @samp{user}, @samp{daemon}, through @samp{local7}. The argument can be given in upper, lower or mixed cases, and it can be prefixed with @samp{log_} +@anchor{syslog tag} @cindex syslog tag @xopindex{log-tag, introduced} Another syslog-related parameter that can be configured is the @@ -7354,7 +7333,7 @@ they had when it has been entered. @cindex catch, standalone @cindex standalone catch - A @code{catch} block can be used alone, without preceding @code{try} + A @code{catch} block can also be used alone, without preceding @code{try} part. Such a construct is called a @dfn{standalone catch}. It is mostly useful for setting global exception handlers in a @code{begin} statement (@pxref{begin/end}). When used within a usual function or @@ -8597,6 +8576,7 @@ Mailutils Manual}. @menu * conf-types:: Special Configuration Data Types * conf-base:: Base Mailfromd Configuration +* conf-server:: Server Configuration * conf-milter:: Milter Connection Configuration * conf-debug:: Logging and Debugging configuration * conf-timeout:: Timeout Configuration @@ -8703,6 +8683,97 @@ writable for the user or group @command{mailfromd} runs as (@pxref{conf-priv}). @end deffn +@node conf-server +@section Server Configuration + A single @command{mailfromd} daemon can run several @dfn{servers}. +These are configured in the following statement: + +@smallexample +@group +server @var{type} @{ + id @var{name}; + listen @var{url}; + max-instances @var{num}; + single-process @var{bool}; + reuseaddr @var{bool}; + default @var{bool}; + acl @{ @dots{} @} +@} +@end group +@end smallexample + +@deffn {Mailfromd Conf} server @var{type} + Define a server. The @var{type} is either @samp{milter} or +@samp{callout}. @xref{SMTP Timeouts}, for a description of various +types of servers. + + The substatements in the @code{server} block provide parameters for +configuring this server. +@end deffn + +@deffn {server} id name + Assign an identifier to this server. This identifier is used as +a suffix to syslog tag (@pxref{syslog tag}) in messages related to +this server. For example, if a server block had the following +statement in it: + +@smallexample +id main; +@end smallexample + +@noindent +then all messages related to this server will be marked with tag +@samp{mailfromd#main}. + + The part before the @samp{#} is set using the @code{tag} statement +in @code{logging} block (@pxref{Logging Statement, Mailutils +Configuration File,, mailutils, GNU Mailutils Manual}). +@end deffn + +@deffn {server} listen url +Listen for connections on the given @acronym{URL}. +@xref{milter port specification}, for a description of allowed +@var{url} formats. + +Example: + +@smallexample +listen inet://10.10.10.1:3331; +@end smallexample +@end deffn + +@deffn {server} max-instances number +Sets the maximum number of instances allowed for this server. +@end deffn + +@deffn {server} single-process bool +When set to @samp{yes}, this server will run in @dfn{single-process} +mode, i.e. it will not fork sub-processes to serve requests. This +option is meant exclusively to assist in debugging +@command{mailfromd}. Don't use it for anything else but for +debugging! +@end deffn + +@deffn {server} reuseaddr bool +When set to @samp{yes}, @command{mailfromd} will attempt to reuse +existing socket addresses. This is the default behavior. +@end deffn + + If the server @var{type} is @samp{callout}, the following statement +is also allowed: + +@deffn {server} default bool +When set to @samp{yes}, this server is marked as a default callout server +for all milter servers declared in the configuration. +@end deffn + + if the server @var{type} is @samp{milter}, you can use the following +statement to query a remote callout server: + +@deffn {server} callout url + Use a callout server at @var{url} (@pxref{milter port specification}). +@end deffn + @node conf-milter @section Milter Connection Configuration @@ -8816,30 +8887,106 @@ Enable transcripts of call-out @acronym{SMTP} sessions. @node conf-timeout @section Timeout Configuration + The @acronym{SMTP} timeouts used in callout sessions are configured via +@code{smtp-timeout} statement: - The following statements configure various timeouts. Their -arguments must be valid time interval specifications, as described in -@ref{time interval specification}. +@subheading Syntax +@kwindex smtp-timeout +@smallexample +@group +smtp-timeout @var{type} @{ + connection @var{interval}; + initial-response @var{interval}; + helo @var{interval}; + mail @var{interval}; + rcpt @var{interval}; + rset @var{interval}; + quit @var{interval}; +@} +@end group +@end smallexample -@deffn {Mailfromd Conf} connect-timeout time - Sets initial connection timeout for call-out tests. If the +@deffn {Mailfromd Conf} smtp-timeout @var{type} +Declare @acronym{SMTP} timeouts of the given @var{type}, which may be +@samp{soft} or @samp{hard}. + +Callout @acronym{SMTP} sessions initiated by polling functions, are +controlled by two sets of timeouts: @samp{soft} and @samp{hard}. +@dfn{Soft timeouts} are used by the mailfromd milter servers. @dfn{Hard +timeouts} are used by callout servers (@FIXME-pxref{callout servers}). +When a soft timeout is exceeded, the calling procedure is +delivered an @samp{e_temp_failure} exception and the session is +scheduled for processing by a callout server. The latter re-runs the +session using hard timeouts. If a hard timeout is exceeded, the +address is marked as @samp{not_found} and is stored in the cache +database with that status. + +Normally, soft timeouts are set to shorter values, suitable for use +in @acronym{MFL} scripts without causing excessive delays. Hard +timeouts are set to large values, as requested by RFC 2822 and +guarantee obtaining a definite answer (see below for the default +values). +@end deffn + +@subheading Statements + The @var{time} argument for all @code{smtp-timeout} sub-statements +is expressed in time interval units, as described in @ref{time +interval specification}. + +@deffn {smtp-timeout} connection time + Sets initial connection timeout for callout tests. If the connection is not established within this time, the corresponding -probing function returns temporary failure. The default value is -@value{CONNECT-TIMEOUT}. @xref{SMTP Timeouts}, for a detailed -description. +callout function returns temporary failure. @end deffn -@deffn {Mailfromd Conf} initial-response-timeout time +@deffn {smtp-timeout} initial-response time Sets the time to wait for the initial @acronym{SMTP} response. -Default is @value{INITIAL-RESPONSE-TIMEOUT}. @xref{SMTP Timeouts}, -for the detailed description. @end deffn +@deffn {smtp-timeout} helo time + Timeout for a response to @samp{HELO} (or @samp{EHLO}) command. +@end deffn + +@deffn {smtp-timeout} mail time + Timeout for a response to @samp{MAIL} command. +@end deffn + +@deffn {smtp-timeout} rcpt time + Timeout for a response to @samp{RCPT} command. +@end deffn + +@deffn {smtp-timeout} rset time + Timeout for a response to @samp{RSET} command. +@end deffn + +@deffn {smtp-timeout} quit time + Timeout for a response to @samp{QUIT} command. +@end deffn + +@subheading Default Values +The default timeout settings are: + +@float Table, smtp-timeouts +@caption{Default SMTP timeouts} +@multitable @columnfractions 0.5 0.25 0.25 +@headitem Timeout @tab Soft @tab Hard +@item connection @tab 10s @tab 5m +@item initial-response @tab 30s @tab 5m +@item helo @tab I/O @tab 5m +@item mail @tab I/O @tab 10m +@item rcpt @tab I/O @tab 5m +@item rset @tab I/O @tab 5m +@item quit @tab I/O @tab 2m +@end multitable +@end float + @deffn {Mailfromd Conf} io-timeout time - Sets @acronym{I/O} operation timeout in seconds. @command{Mailfromd} will -wait the given amount of time for the success of each @acronym{I/O} operation -with the remote @acronym{MX}. Default timeout is @value{IO-TIMEOUT}. -@xref{SMTP Timeouts}, for a detailed description. + Sets a general @acronym{SMTP I/O} operation timeout. This timeout +is used as the default for entries marked with @samp{I/O} in the above +table. The default is 3 seconds. + + This timeout can also be set from the command line using the +@option{--timeout} option (@pxref{timeout option}). @end deffn @node conf-callout @@ -9354,11 +9501,12 @@ Set @acronym{MTA} connection timeout. Overrides @code{milter-timeout} statement in the @command{mailfromd} configuration file, which you are advised to use instead (@pxref{conf-milter, milter-timeout}). +@anchor{timeout option} @opsummary{timeout} @item --timeout=@var{number} -Set @acronym{I/O} operation timeout (seconds). Overrides @code{io-timeout} +Sets the @acronym{I/O} operation timeout (seconds). Overrides @code{io-timeout} configuration file statement, which you are advised to use instead -(@pxref{conf-timeout,io-timeout-conf}). +(@pxref{conf-timeout,io-timeout}). @end table @node Logging and Debugging Options @@ -10099,10 +10247,6 @@ line options used). @appendix S-Expression @include sexp.texi -@node Deprecated Features -@appendix Deprecated Features -@include deprecate.texi - @node Upgrading @appendix Upgrading @include upgrade.texi diff --git a/doc/pragma-database.texi b/doc/pragma-database.texi deleted file mode 100644 index 8c39a99c..00000000 --- a/doc/pragma-database.texi +++ /dev/null @@ -1,61 +0,0 @@ -@c This is part of the mailfromd manual. -@c Copyright (C) 2009 Free Software Foundation, Inc. -@c This file is distributed under GFDL 1.1 or any later version -@c published by the Free Software Foundation. - -@cindex database, pragma -@cindex #pragma database - - This appendix describes an obsolete way of configuring -@command{mailfromd} databases. For a new way, see -@ref{conf-database}. - - The @code{#pragma database} statement is used to control file names -and expiration periods used for various @acronym{DBM} databases. Its -syntax is: - -@table @code -@item #pragma database @var{dbname} file @var{filename} - Set the database file name for the database @var{dbname}. -@xref{conf-database, file}. - -@item #pragma database @var{dbname} expire-interval @var{interval} - Set the expiration interval for the database -@var{dbname}. (@xref{time interval specification}, for more -information on @var{interval} syntax). - -@xref{conf-database, expire-interval}. -@end table - - The parameter @var{dbname} can be one of the following: -@samp{cache}, @samp{dns}, @samp{rate} and @samp{greylist} for main -cache, @acronym{DNS} lookup, sending rate and greylisting databases, -correspondingly. - - The first two databases merit special attention. The cache database -implements two different timeouts, therefore there are two special -forms of this statement for @samp{cache} database: - -@table @code -@item #pragma database cache positive-expire-interval @var{interval} - Set expiration interval for positive (@samp{success}) cache entries. -Use @ref{conf-database, positive-expire-interval}, instead. - -@item #pragma database cache negative-expire-interval @var{interval} - Set expiration interval for negative (@samp{not_found}) cache -entries. - -Use @ref{conf-database, negative-expire-interval}, instead. -@end table - - The @acronym{DNS} lookup cache uses @acronym{DNS} @acronym{TTL} as expiration -interval for records representing positive lookups. The only value -that can be altered is negative expiration interval: - -@table @code -@item #pragma database dns negative-expire-interval @var{interval} - Set expiration interval for negative @acronym{DNS} cache entries. -Use @ref{conf-database, negative-expire-interval}, instead. -@end table - - diff --git a/doc/pragma-option.texi b/doc/pragma-option.texi deleted file mode 100644 index c7201dc9..00000000 --- a/doc/pragma-option.texi +++ /dev/null @@ -1,224 +0,0 @@ -@c This is part of the mailfromd manual. -@c Copyright (C) 2009 Free Software Foundation, Inc. -@c This file is distributed under GFDL 1.1 or any later version -@c published by the Free Software Foundation. - -@cindex option, pragma -@cindex #pragma option - This appendix describes an obsolete mailfromd configuration -interface: @samp{#pragma option}. For a new interface, see @ref{Mailfromd -Configuration}. - - The syntax of @samp{#pragma option} is: - -@smallexample -#pragma option @var{name} @var{value} -@end smallexample - -@noindent -where @var{name} is the name of the command line option (without -leading dashes) to set, and @var{value} is its new value. The effect -of this statement is the same as that of the command line option -@samp{--@var{name}=@var{value}}. - - The @var{value} is specific for each particular option. The -supported value types are: - -@table @asis -@item number - A decimal number. - -@item string - A string of characters. It must be enclosed in a pair of quotes, -if it contains whitespace characters (use either single or double -quotes, at your option). - -@item boolean - A boolean value: @code{yes}, @code{true} or @code{t} to indicate -a true value, and @code{no}, @code{false} or @code{nil} to indicate a -false value. - -@item address - An @acronym{IP} address in ``dotted-quad'' notation or a fully-qualified host -name. - -@item interval - The time interval specification, as described in @xref{time interval -specification}. It needs not be quoted. -@end table - -@noindent -The following options control various database expiration -intervals. The use of these options is deprecated, please use the -corresponding @code{#pragma database} option. - -@deffn {pragma option} expire-interval interval -@xprindex{expire-interval} - Sets expiration interval for all databases. -@xref{expire-interval-conf}, for a new method of setting it. -@end deffn - -@deffn {pragma option} positive-expire-interval interval -@xprindex{positive-expire-interval} - Sets expiration interval for positive cache entries. Use the -@samp{database} configuration file statement instead. @xref{conf-database, -positive-expire-interval}. -@end deffn - -@deffn {pragma option} negative-expire-interval interval -@xprindex{negative-expire-interval} - Sets expiration interval for negative cache entries. Use the -@samp{database} configuration file statement instead. @xref{conf-database, -negative-expire-interval}. -@end deffn - -@deffn {pragma option} rates-expire-interval interval -@xprindex{rates-expire-interval} - Sets expiration interval for entries in the rates database. Use the -@samp{database} configuration file statement instead (@pxref{conf-database, -expire-interval}): - -@smallexample -database rate @{ - expire-interval @var{interval}; -@} -@end smallexample -@end deffn - -@noindent -The following options control @acronym{I/O} operations over @acronym{TCP}. - -@deffn {pragma option} source address -@xprindex{source} - Sets source address for @acronym{TCP} connections. Use the -@samp{source-ip} configuration file statement instead. -@xref{conf-base, source-ip}. -@end deffn - -@deffn {pragma option} connect-timeout interval -@xprindex{connect-timeout} - Sets initial connection timeout. Use the @samp{connect-timeout} -configuration file statement instead. @xref{conf-timeout, -connect-timeout}. -@end deffn - -@deffn {pragma option} initial-response-timeout interval -@xprindex{initial-response-timeout} - Sets the time to wait for the initial @acronym{SMTP} response. -Use the @samp{initial-response-timeout} configuration file statement -instead. @xref{conf-timeout, initial-response-timeout}. -@end deffn - -@deffn {pragma option} io-timeout interval -@deffnx {pragma option} timeout interval -@xprindex{io-timeout} -@xprindex{timeout} - Sets @acronym{I/O} operation timeout. Use the @samp{io-timeout} -configuration file statement instead: @xref{conf-timeout, io-timeout}. -@end deffn - -@noindent -The following options control debugging and logging facilities: - -@deffn {pragma option} debug string -@xprindex{debug} - Sets debugging level. Use the @code{debug} configuration file -statement instead: @xref{conf-debug}. - - @var{String} is a decimal number in the range 0 -- 100. Level 0 -effectively disables debugging, while level 100 enables the most -verbose debugging output. - - You can also selectively set different debug levels for different -source code modules. In this case @var{string} is a comma-separated -list of debug specifications, each of which has the following syntax: -@code{@var{module}[=@var{level}]}. @xref{Logging and Debugging}, for -the detailed description of this. -@end deffn - -@deffn {pragma option} source-info boolean -@xprindex{source-info} - Includes source information into the debugging output. Use the -@code{source-info} configuration file statement instead: -@xref{conf-debug, source-info}. -@end deffn - -@deffn {pragma option} stack-trace boolean -@xprindex{stack-trace} - Enables stack trace dumps on runtime errors. Use the -@code{stack-trace} configuration file statement instead: -@xref{conf-debug, stack-trace}. -@end deffn - -@noindent -These options control program privileges after startup: - -@deffn {pragma option} user strin |