aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Andree <matthias.andree@gmx.de>2006-05-15 10:59:45 +0000
committerMatthias Andree <matthias.andree@gmx.de>2006-05-15 10:59:45 +0000
commitf9db9985e1a0a2da0f21fc3dbfd92bf12f924d1e (patch)
tree6b280d8ca1c19b7659a96b0d5c8ffe2ea8f58d52
parent7b3f2a442d6ccfc9bffd0e43dc2116f4725e8146 (diff)
downloadfetchmail-f9db9985e1a0a2da0f21fc3dbfd92bf12f924d1e.tar.gz
fetchmail-f9db9985e1a0a2da0f21fc3dbfd92bf12f924d1e.tar.bz2
fetchmail-f9db9985e1a0a2da0f21fc3dbfd92bf12f924d1e.zip
* Improve KAME/getnameinfo.c portability to Linux libc5 systems.
Based on a patch by Dan Fandrich. * Provide INET6 to KAME/getnameinfo.c (only useful on IPv6-enabled systems that lack getnameinfo, and there only visible in some Received: headers). Found by Dan Fandrich. svn path=/branches/BRANCH_6-3/; revision=4839
-rw-r--r--KAME/getnameinfo.c9
-rw-r--r--NEWS5
-rw-r--r--configure.ac22
3 files changed, 35 insertions, 1 deletions
diff --git a/KAME/getnameinfo.c b/KAME/getnameinfo.c
index 9549600c..fb97530e 100644
--- a/KAME/getnameinfo.c
+++ b/KAME/getnameinfo.c
@@ -71,7 +71,9 @@
#include <stddef.h>
#include <errno.h>
+#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
+#endif
#include "fetchmail.h"
#include "getaddrinfo.h"
@@ -284,9 +286,16 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags)
}
#endif
default:
+#ifdef HAVE_INET_NTOP
if (inet_ntop(afd->a_af, addr, host,
hostlen) == NULL)
return EAI_SYSTEM;
+#else
+ if (afd->a_af == AF_INET)
+ strlcpy(host, inet_ntoa(addr), hostlen);
+ else
+ return EAI_FAMILY;
+#endif
break;
}
}
diff --git a/NEWS b/NEWS
index 9cfb104a..65ecf1d3 100644
--- a/NEWS
+++ b/NEWS
@@ -69,6 +69,11 @@ fetchmail 6.3.5 (not yet released):
guessing.
* Improve --with-gssapi auto detection for /usr-based GSSAPI installs.
* Fix --with-gssapi builds for NetBSD 3.0.
+* Improve KAME/getnameinfo.c portability to Linux libc5 systems.
+ Based on a patch by Dan Fandrich.
+* Provide INET6 to KAME/getnameinfo.c (only useful on IPv6-enabled systems that
+ lack getnameinfo, and there only visible in some Received: headers).
+ Found by Dan Fandrich.
# CHANGES:
* Rename all fetchmail-internal lock_* functions to fm_lock_*. Obsoletes
diff --git a/configure.ac b/configure.ac
index 0a25f5a4..d17ed383 100644
--- a/configure.ac
+++ b/configure.ac
@@ -142,6 +142,26 @@ AC_CHECK_FUNCS(tcsetattr stty setsid geteuid seteuid dnl
sigaction strdup setlocale)
AC_CHECK_DECLS(strerror)
+dnl INET6 is used by KAME/getnameinfo
+AC_CACHE_CHECK(for AF_INET6/PF_INET6,ac_cv_inet6,
+AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ #ifdef HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
+ #ifdef HAVE_SYS_SOCKET_H
+ #include <sys/socket.h>
+ #endif
+ ]],[[
+ int foo = AF_INET6;
+ int bar = PF_INET6;
+ ]])],
+ ac_cv_inet6=yes , ac_cv_inet6=no
+))
+if test "x$ac_cv_inet6" = xyes
+then
+ AC_DEFINE(INET6,1,Define to 1 if your system defines AF_INET6 and PF_INET6.)
+fi
# Under Red Hat 4.0 (and many other Linuxes) -lresolv is seriously flaky
# and breaks gethostbyname(2). It's better to use the bind stuff in the C
@@ -394,7 +414,7 @@ AC_ARG_ENABLE(opie,
test "$with_opie" = "yes" && AC_DEFINE(OPIE_ENABLE,1,Define if you want OPIE support compiled in)
AC_SEARCH_LIBS(getaddrinfo, inet6, [AC_DEFINE(HAVE_GETADDRINFO,1,[define to 1 if you have the getaddrinfo function])])
-AC_CHECK_FUNCS(getnameinfo)
+AC_CHECK_FUNCS(getnameinfo inet_ntop)
# This version of the Kerberos 4 and 5 options addresses the follwing issues:
#