diff options
-rw-r--r-- | NEWS | 19 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | doc/calloutd.texi | 1 | ||||
-rw-r--r-- | doc/functions.texi | 22 | ||||
-rw-r--r-- | doc/mailfromd.texi | 89 | ||||
-rw-r--r-- | doc/upgrade.texi | 23 | ||||
-rw-r--r-- | lib/dns.c | 397 | ||||
-rw-r--r-- | lib/dns.h | 46 | ||||
-rw-r--r-- | lib/libmf.h | 2 | ||||
-rw-r--r-- | src/builtin/dns.bi | 94 | ||||
-rw-r--r-- | src/callout.c | 2 | ||||
-rw-r--r-- | src/mailfromd.h | 3 | ||||
-rw-r--r-- | src/main.c | 5 | ||||
-rw-r--r-- | src/prog.c | 2 | ||||
-rw-r--r-- | src/spf.c | 80 | ||||
-rw-r--r-- | src/spf.h | 3 | ||||
-rw-r--r-- | src/srvcfg.c | 5 |
17 files changed, 370 insertions, 425 deletions
@@ -1,13 +1,30 @@ | |||
1 | Mailfromd NEWS -- history of user-visible changes. 2017-10-18 | 1 | Mailfromd NEWS -- history of user-visible changes. 2017-10-19 |
2 | Copyright (C) 2005-2017 Sergey Poznyakoff | 2 | Copyright (C) 2005-2017 Sergey Poznyakoff |
3 | See the end of file for copying conditions. | 3 | See the end of file for copying conditions. |
4 | 4 | ||
5 | Please send Mailfromd bug reports to <bug-mailfromd@gnu.org.ua> | 5 | Please send Mailfromd bug reports to <bug-mailfromd@gnu.org.ua> |
6 | 6 | ||
7 | 7 | ||
8 | Version 8.2.90 | ||
9 | |||
10 | * Removed arbitrary limits on the sizes of DNS RRs | ||
11 | |||
12 | The 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 | |||
8 | Version 8.2, 2017-10-18 | 25 | Version 8.2, 2017-10-18 |
9 | 26 | ||
10 | The purpose of this release is to simplify packaging with alpha | 27 | The purpose of this release is to simplify packaging with alpha |
11 | version of Mailutils | 28 | version 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 | ||
17 | AC_PREREQ(2.63) | 17 | AC_PREREQ(2.63) |
18 | m4_define([MF_VERSION_MAJOR], 8) | 18 | m4_define([MF_VERSION_MAJOR], 8) |
19 | m4_define([MF_VERSION_MINOR], 2) | 19 | m4_define([MF_VERSION_MINOR], 2) |
20 | dnl m4_define([MF_VERSION_PATCH], 0) | 20 | m4_define([MF_VERSION_PATCH], 90) |
21 | AC_INIT([mailfromd], | 21 | AC_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]) |
26 | AC_CONFIG_SRCDIR([src/mailfromd.h]) | 26 | AC_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,, |
80 | mailutils, GNU Mailutils Manual}. | 80 | mailutils, 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,, |
82 | mailutils, GNU Mailutils Manual}. | 82 | mailutils, 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 |
1918 | require dns | 1918 | require 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} |
1923 | records) for @var{domain}. At most @value{MAX_DNS_A} addresses are | 1923 | records) for @var{domain}. |
1924 | returned. @xref{conf-runtime, max-dns-reply-a}, for a description of how | ||
1925 | to 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} |
1932 | records) for the @acronym{IP}v4 address @var{ipstr}. At most | 1930 | records) for the @acronym{IP}v4 address @var{ipstr}. |
1933 | @value{MAX_DNS_PTR} names are returned. @xref{conf-runtime, | ||
1934 | max-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: | |||
1952 | getmx("mafra.cz") @result{} "smtp1.mafra.cz smtp2.mafra.cz relay.iol.cz" | 1948 | getmx("mafra.cz") @result{} "smtp1.mafra.cz smtp2.mafra.cz relay.iol.cz" |
1953 | getmx("idnes.cz") @result{} "smtp1.mafra.cz smtp2.mafra.cz relay.iol.cz" | 1949 | getmx("idnes.cz") @result{} "smtp1.mafra.cz smtp2.mafra.cz relay.iol.cz" |
1954 | getmx("gnu.org") @result{} "mx10.gnu.org mx20.gnu.org" | 1950 | getmx("gnu.org") @result{} "mx10.gnu.org mx20.gnu.org" |
1955 | getmx("org.pl") @result{} "" | 1951 | getmx("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 | ||
1961 | returned 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 |
1966 | differ from that obtained from @code{getmx(@var{domain}, 1)}, e.g.: | 1958 | differ 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 |
2055 | exception @code{e_not_found}. | 2047 | exception @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 | ||
2061 | by 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} |
2072 | records for the @var{domain}. Otherwise it returns @code{false}. | 2060 | records 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 |
2075 | function returns @code{false}. | 2063 | function returns @code{false}. |
2076 | |||
2077 | The number of @samp{MX} records examined by this function is limited | ||
2078 | by 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 |
2085 | returns the @acronym{IP} address for the host name specified by @var{host} | 2069 | returns 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 | ||