aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS19
-rw-r--r--configure.ac2
-rw-r--r--doc/calloutd.texi1
-rw-r--r--doc/functions.texi22
-rw-r--r--doc/mailfromd.texi89
-rw-r--r--doc/upgrade.texi23
-rw-r--r--lib/dns.c397
-rw-r--r--lib/dns.h46
-rw-r--r--lib/libmf.h2
-rw-r--r--src/builtin/dns.bi94
-rw-r--r--src/callout.c2
-rw-r--r--src/mailfromd.h3
-rw-r--r--src/main.c5
-rw-r--r--src/prog.c2
-rw-r--r--src/spf.c80
-rw-r--r--src/spf.h3
-rw-r--r--src/srvcfg.c5
17 files changed, 370 insertions, 425 deletions
diff --git a/NEWS b/NEWS
index c372865b..9e7a8d7c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,13 +1,30 @@
1Mailfromd NEWS -- history of user-visible changes. 2017-10-18 1Mailfromd NEWS -- history of user-visible changes. 2017-10-19
2Copyright (C) 2005-2017 Sergey Poznyakoff 2Copyright (C) 2005-2017 Sergey Poznyakoff
3See the end of file for copying conditions. 3See the end of file for copying conditions.
4 4
5Please send Mailfromd bug reports to <bug-mailfromd@gnu.org.ua> 5Please send Mailfromd bug reports to <bug-mailfromd@gnu.org.ua>
6 6
7 7
8Version 8.2.90
9
10* Removed arbitrary limits on the sizes of DNS RRs
11
12The following configuration statements are removed:
13
14** runtime.max-dns-reply-a
15
16** runtime.max-dns-reply-ptr
17
18** runtime.max-dns-reply-mx
19
20** max-match-mx
21
22** max-callout-mx
23
24
8Version 8.2, 2017-10-18 25Version 8.2, 2017-10-18
9 26
10The purpose of this release is to simplify packaging with alpha 27The purpose of this release is to simplify packaging with alpha
11version of Mailutils 28version of Mailutils
12 29
13* Requires Mailutils 3.1.92 or newer 30* Requires Mailutils 3.1.92 or newer
diff --git a/configure.ac b/configure.ac
index 53e87421..2dd23baa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -14,13 +14,13 @@
14# You should have received a copy of the GNU General Public License 14# You should have received a copy of the GNU General Public License
15# along with this program. If not, see <http://www.gnu.org/licenses/>. 15# along with this program. If not, see <http://www.gnu.org/licenses/>.
16 16
17AC_PREREQ(2.63) 17AC_PREREQ(2.63)
18m4_define([MF_VERSION_MAJOR], 8) 18m4_define([MF_VERSION_MAJOR], 8)
19m4_define([MF_VERSION_MINOR], 2) 19m4_define([MF_VERSION_MINOR], 2)
20dnl m4_define([MF_VERSION_PATCH], 0) 20m4_define([MF_VERSION_PATCH], 90)
21AC_INIT([mailfromd], 21AC_INIT([mailfromd],
22 MF_VERSION_MAJOR.MF_VERSION_MINOR[]m4_ifdef([MF_VERSION_PATCH],.MF_VERSION_PATCH), 22 MF_VERSION_MAJOR.MF_VERSION_MINOR[]m4_ifdef([MF_VERSION_PATCH],.MF_VERSION_PATCH),
23 [bug-mailfromd@gnu.org.ua], 23 [bug-mailfromd@gnu.org.ua],
24 [mailfromd], 24 [mailfromd],
25 [http://www.gnu.org.ua/software/mailfromd]) 25 [http://www.gnu.org.ua/software/mailfromd])
26AC_CONFIG_SRCDIR([src/mailfromd.h]) 26AC_CONFIG_SRCDIR([src/mailfromd.h])
diff --git a/doc/calloutd.texi b/doc/calloutd.texi
index 87f5d621..5bd91916 100644
--- a/doc/calloutd.texi
+++ b/doc/calloutd.texi
@@ -78,13 +78,12 @@ mailutils, GNU Mailutils Manual}.
78@item @code{logger} @tab @xref{conf-calloutd-log}. 78@item @code{logger} @tab @xref{conf-calloutd-log}.
79@item @code{logging} @tab @xref{logging statement, Mailutils Configuration File,, 79@item @code{logging} @tab @xref{logging statement, Mailutils Configuration File,,
80mailutils, GNU Mailutils Manual}. 80mailutils, GNU Mailutils Manual}.
81@item @code{mailer} @tab @xref{mailer statement, Mailutils Configuration File,, 81@item @code{mailer} @tab @xref{mailer statement, Mailutils Configuration File,,
82mailutils, GNU Mailutils Manual}. 82mailutils, GNU Mailutils Manual}.
83@item @code{mail-from-address} @tab @xref{conf-callout, mail-from-address}. 83@item @code{mail-from-address} @tab @xref{conf-callout, mail-from-address}.
84@item @code{max-callout-mx} @tab @xref{conf-callout, max-callout-mx}.
85@item @code{pidfile} @tab @xref{conf-calloutd-setup, pidfile}. 84@item @code{pidfile} @tab @xref{conf-calloutd-setup, pidfile}.
86@item @code{server} @tab @xref{conf-calloutd-server}. 85@item @code{server} @tab @xref{conf-calloutd-server}.
87@item @code{source-ip} @tab @xref{conf-calloutd-setup, source-ip}. 86@item @code{source-ip} @tab @xref{conf-calloutd-setup, source-ip}.
88@item @code{smtp-timeout} @tab @xref{conf-timeout}. 87@item @code{smtp-timeout} @tab @xref{conf-timeout}.
89@item @code{state-directory} @tab @xref{conf-calloutd-setup, state-directory}. 88@item @code{state-directory} @tab @xref{conf-calloutd-setup, state-directory}.
90@item @code{transcript} @tab @xref{conf-calloutd-log}, 89@item @code{transcript} @tab @xref{conf-calloutd-log},
diff --git a/doc/functions.texi b/doc/functions.texi
index b5a33c7e..a9fb3e36 100644
--- a/doc/functions.texi
+++ b/doc/functions.texi
@@ -1917,24 +1917,20 @@ available after requesting the @file{dns} module (@pxref{Modules}):
1917@smallexample 1917@smallexample
1918require dns 1918require dns
1919@end smallexample 1919@end smallexample
1920 1920
1921@deftypefn {Built-in Function} string dns_getaddr (string @var{domain}) 1921@deftypefn {Built-in Function} string dns_getaddr (string @var{domain})
1922 Returns a whitespace-separated list of @acronym{IP} addresses (@code{A} 1922 Returns a whitespace-separated list of @acronym{IP} addresses (@code{A}
1923records) for @var{domain}. At most @value{MAX_DNS_A} addresses are 1923records) for @var{domain}.
1924returned. @xref{conf-runtime, max-dns-reply-a}, for a description of how
1925to change this limit.
1926 1924
1927 This function does not use the @acronym{DNS} cache. 1925 This function does not use the @acronym{DNS} cache.
1928@end deftypefn 1926@end deftypefn
1929 1927
1930@deftypefn {Built-in Function} string dns_getname (string @var{ipstr}) 1928@deftypefn {Built-in Function} string dns_getname (string @var{ipstr})
1931 Returns a whitespace-separated list of domain names (@code{PTR} 1929 Returns a whitespace-separated list of domain names (@code{PTR}
1932records) for the @acronym{IP}v4 address @var{ipstr}. At most 1930records) for the @acronym{IP}v4 address @var{ipstr}.
1933@value{MAX_DNS_PTR} names are returned. @xref{conf-runtime,
1934max-dns-reply-ptr}, for a description of how to change this limit.
1935 1931
1936 This function does not use the @acronym{DNS} cache. 1932 This function does not use the @acronym{DNS} cache.
1937@end deftypefn 1933@end deftypefn
1938 1934
1939@deftypefn {Built-in Function} string getmx (string @var{domain} @ 1935@deftypefn {Built-in Function} string getmx (string @var{domain} @
1940 [, number @var{ip}]) 1936 [, number @var{ip}])
@@ -1952,18 +1948,14 @@ Examples:
1952getmx("mafra.cz") @result{} "smtp1.mafra.cz smtp2.mafra.cz relay.iol.cz" 1948getmx("mafra.cz") @result{} "smtp1.mafra.cz smtp2.mafra.cz relay.iol.cz"
1953getmx("idnes.cz") @result{} "smtp1.mafra.cz smtp2.mafra.cz relay.iol.cz" 1949getmx("idnes.cz") @result{} "smtp1.mafra.cz smtp2.mafra.cz relay.iol.cz"
1954getmx("gnu.org") @result{} "mx10.gnu.org mx20.gnu.org" 1950getmx("gnu.org") @result{} "mx10.gnu.org mx20.gnu.org"
1955getmx("org.pl") @result{} "" 1951getmx("org.pl") @result{} ""
1956@end smallexample 1952@end smallexample
1957 1953
1958@emph{Notes}: 1954@emph{Note}:
1959@enumerate 1 1955@enumerate 1
1960@item The number of @acronym{MX} names or @acronym{IP} addresses
1961returned by @code{getmx} is limited by the value of
1962@code{max-dns-reply-mx} configuration statement (default
1963@value{MAX_DNS_MX}). @xref{conf-runtime, max-dns-reply-mx}.
1964 1956
1965@item The number of items returned by @code{getmx(@var{domain})} can 1957@item The number of items returned by @code{getmx(@var{domain})} can
1966differ from that obtained from @code{getmx(@var{domain}, 1)}, e.g.: 1958differ from that obtained from @code{getmx(@var{domain}, 1)}, e.g.:
1967 1959
1968@smallexample 1960@smallexample
1969@group 1961@group
@@ -2053,16 +2045,12 @@ records for the @var{domain}.
2053 2045
2054 If @var{domain} has no @samp{MX} records, @code{primitive_ismx} raises 2046 If @var{domain} has no @samp{MX} records, @code{primitive_ismx} raises
2055exception @code{e_not_found}. 2047exception @code{e_not_found}.
2056 2048
2057 If @acronym{DNS} query fails, the function raises @code{failure} or 2049 If @acronym{DNS} query fails, the function raises @code{failure} or
2058@code{temp_failure}, depending on the character of the failure. 2050@code{temp_failure}, depending on the character of the failure.
2059
2060 The number of @samp{MX} records examined by this function is limited
2061by the value of the @code{max-dns-reply-mx} configuration statement
2062(@pxref{conf-runtime, max-dns-reply-mx}.
2063@end deftypefn 2051@end deftypefn
2064 2052
2065@anchor{ismx} 2053@anchor{ismx}
2066@deftypefn {Library Function} boolean ismx (string @var{domain}, @ 2054@deftypefn {Library Function} boolean ismx (string @var{domain}, @
2067 string @var{host}) 2055 string @var{host})
2068 The @var{domain} argument is any valid domain name, the @var{host} 2056 The @var{domain} argument is any valid domain name, the @var{host}
@@ -2070,16 +2058,12 @@ is a host name or @acronym{IP} address.
2070 2058
2071 The function returns @code{true} if @var{host} is one of the @samp{MX} 2059 The function returns @code{true} if @var{host} is one of the @samp{MX}
2072records for the @var{domain}. Otherwise it returns @code{false}. 2060records for the @var{domain}. Otherwise it returns @code{false}.
2073 2061
2074 If @var{domain} has no @samp{MX} records, or if the @acronym{DNS} query fails, the 2062 If @var{domain} has no @samp{MX} records, or if the @acronym{DNS} query fails, the
2075function returns @code{false}. 2063function returns @code{false}.
2076
2077 The number of @samp{MX} records examined by this function is limited
2078by the value of the @code{max-dns-reply-mx} configuration statement
2079(@pxref{conf-runtime, max-dns-reply-mx}.
2080@end deftypefn 2064@end deftypefn
2081 2065
2082@deftypefn {Built-in Function} string primitive_resolve (string @var{host}, @ 2066@deftypefn {Built-in Function} string primitive_resolve (string @var{host}, @
2083 [string @var{domain}]) 2067 [string @var{domain}])
2084 Reverse of @code{primitive_hostname}. The @code{primitive_resolve} function 2068 Reverse of @code{primitive_hostname}. The @code{primitive_resolve} function
2085returns the @acronym{IP} address for the host name specified by @var{host} 2069returns the @acronym{IP} address for the host name specified by @var{host}
diff --git a/doc/mailfromd.texi b/doc/mailfromd.texi
index 05c9e839..d28915f9 100644
--- a/doc/mailfromd.texi
+++ b/doc/mailfromd.texi
@@ -336,13 +336,12 @@ Configuring @command{mailfromd}
336* conf-debug:: Logging and Debugging configuration 336* conf-debug:: Logging and Debugging configuration
337* conf-timeout:: Timeout Configuration 337* conf-timeout:: Timeout Configuration
338* conf-callout:: Call-out Configuration 338* conf-callout:: Call-out Configuration
339* conf-priv:: Privilege Configuration 339* conf-priv:: Privilege Configuration
340* conf-database:: Database Configuration 340* conf-database:: Database Configuration
341* conf-runtime:: Runtime Constants 341* conf-runtime:: Runtime Constants
342* conf-other:: Other Configuration Statements