diff options
author | Matthias Andree <matthias.andree@gmx.de> | 2006-05-15 10:59:45 +0000 |
---|---|---|
committer | Matthias Andree <matthias.andree@gmx.de> | 2006-05-15 10:59:45 +0000 |
commit | f9db9985e1a0a2da0f21fc3dbfd92bf12f924d1e (patch) | |
tree | 6b280d8ca1c19b7659a96b0d5c8ffe2ea8f58d52 | |
parent | 7b3f2a442d6ccfc9bffd0e43dc2116f4725e8146 (diff) | |
download | fetchmail-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.c | 9 | ||||
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | configure.ac | 22 |
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; } } @@ -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: # |