aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Andree <matthias.andree@gmx.de>2013-02-03 15:54:58 +0100
committerMatthias Andree <matthias.andree@gmx.de>2013-02-03 15:54:58 +0100
commitab5425702f3448cd56e1bb0c3a751c6c34c55d5f (patch)
treee11f69190c3b9dd27e6e7059ef4fe1faa3a7369a
parent03a31a4771efd7e48256ac0d7d2442f5e6bc381f (diff)
downloadfetchmail-ab5425702f3448cd56e1bb0c3a751c6c34c55d5f.tar.gz
fetchmail-ab5425702f3448cd56e1bb0c3a751c6c34c55d5f.tar.bz2
fetchmail-ab5425702f3448cd56e1bb0c3a751c6c34c55d5f.zip
Work around systems returning obsolete EAI_NODATA.
Older systems that provide the older RFC-2553 implementation of getaddrinfo, rather than the current RFC-3493, and systems that do not provide this getaddrinfo() interface at all and thus use the replacement functions from libesmtp/getaddrinfo.?, might return EAI_NODATA when a host is registered in DNS as MX or similar, but without A or AAAA records. Handle this situation when checking for multidrop aliases and treat EAI_NODATA the same as EAI_NONAME, i. e. name cannot be resolved. The proper fix, however, is to upgrade the operating system.
-rw-r--r--NEWS14
-rw-r--r--checkalias.c9
2 files changed, 23 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index d78cdcfd..22af11f7 100644
--- a/NEWS
+++ b/NEWS
@@ -56,6 +56,20 @@ removed from a 6.4.0 or newer release.)
--------------------------------------------------------------------------------
+fetchmail-6.3.25 (not yet released):
+
+# WORKAROUNDS
+* Older systems that provide the older RFC-2553 implementation of getaddrinfo,
+ rather than the current RFC-3493, and systems that do not provide this
+ getaddrinfo() interface at all and thus use the replacement functions from
+ libesmtp/getaddrinfo.?, might return EAI_NODATA when a host is registered in
+ DNS as MX or similar, but without A or AAAA records. Handle this situation
+ when checking for multidrop aliases and treat EAI_NODATA the same as
+ EAI_NONAME, i. e. name cannot be resolved.
+
+ The proper fix, however, is to upgrade the operating system.
+
+
fetchmail-6.3.24 (released 2012-12-23, 26108 LoC):
# NOTE THAT THE RELEASE OF FUTURE FETCHMAIL 6.3.X VERSIONS IS UNCLEAR.
diff --git a/checkalias.c b/checkalias.c
index 2e50ea09..1e1d1633 100644
--- a/checkalias.c
+++ b/checkalias.c
@@ -194,6 +194,15 @@ int is_host_alias(const char *name, struct query *ctl, struct addrinfo **res)
switch (e)
{
case EAI_NONAME: /* specified host is unknown */
+#ifdef EAI_NODATA
+ /* EAI_NODATA was in the older RFC-2553, but that got
+ * obsoleted by RFC-3493 - there, EAI_NODATA is no longer
+ * valid, and modern operating systems no longer issue this
+ * error code. libesmtp/getaddrinfo.?, however, still does.
+ * (This was reported to Brian Stafford 2013-02-03.)
+ */
+ case EAI_NODATA: /* specified host is unknown */
+#endif
break;
default: