[w3m-dev 04010] support for deprecated __ss_family
ABE Yuji <[email protected]>
| Newsgroups | gmane.comp.web.w3m.devel |
|---|---|
| Message-ID | <[email protected]> |
w3m <http://mi.med.tohoku.ac.jp/~satodai/w3m/bbs/>
AIX make
__ss_family ([w3m-dev 01874])
autoconf
diff -urN w3m-1.888/acinclude.m4 w3m/acinclude.m4
--- w3m-1.888/acinclude.m4 2003-10-22 03:10:49.000000000 +0900
+++ w3m/acinclude.m4 2003-10-22 23:31:29.000000000 +0900
@@ -751,7 +751,7 @@
AC_MSG_CHECKING(if IPv6 API available)
AC_SUBST(INET6)
AC_CHECK_FUNC(getaddrinfo,
- [enable_ipv6="yes"; AC_DEFINE(INET6)],
+ [enable_ipv6="yes"],
[enable_ipv6="no"])
if test x"$enable_ipv6" = xno; then
AC_MSG_CHECKING(for libinet6)
@@ -762,13 +762,42 @@
W3M_LIBS="$W3M_LIBS -L$dir"
fi
AC_CHECK_LIB(inet6, getaddrinfo,
- [enable_ipv6="yes"; AC_DEFINE(INET6)
+ [enable_ipv6="yes"
use_libinet6="found"; W3M_LIBS="$W3M_LIBS -linet6"; break],
[use_libinet6="not found"])
fi
done
AC_MSG_RESULT($use_libinet6)
fi
+ if test x"$enable_ipv6" = xyes; then
+ AC_SUBST(HAVE_OLD_SS_FAMILY)
+ AC_MSG_CHECKING(if struct sockaddr_storage has an ss_family member)
+ AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <sys/socket.h>
+ ], [
+ struct sockaddr_storage ss;
+ int i = ss.ss_family;
+ ],
+ [AC_MSG_RESULT(yes)],
+ [AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <sys/socket.h>
+ ],
+ [
+ struct sockaddr_storage ss;
+ int i = ss.__ss_family;
+ ],
+ [AC_MSG_RESULT(no, but __ss_family exists)
+ AC_DEFINE(HAVE_OLD_SS_FAMILY)],
+ [AC_MSG_RESULT(no)
+ AC_MSG_WARN(IPv6 support is disabled)
+ enable_ipv6="no"])
+ ])
+ fi
+ if test x"$enable_ipv6" = xyes; then
+ AC_DEFINE(INET6)
+ fi
fi])
#
# ----------------------------------------------------------------
diff -urN w3m-1.888/config.h.in w3m/config.h.in
--- w3m-1.888/config.h.in 2003-10-07 03:59:51.000000000 +0900
+++ w3m/config.h.in 2003-10-22 23:33:06.000000000 +0900
@@ -80,6 +80,7 @@
#define ID_EXT
#undef CLEAR_BUF
#undef INET6
+#undef HAVE_OLD_SS_FAMILY
#define USE_EGD
#define ENABLE_REMOVE_TRAILINGSPACES
#undef MENU_THIN_FRAME
diff -urN w3m-1.888/ftp.c w3m/ftp.c
--- w3m-1.888/ftp.c 2003-10-07 03:59:52.000000000 +0900
+++ w3m/ftp.c 2003-10-22 23:30:32.000000000 +0900
@@ -196,7 +196,11 @@
if (getpeername(fileno(ftp->wf),
(struct sockaddr *)&sockaddr, &sockaddrlen) < 0)
return -1;
+#ifdef HAVE_OLD_SS_FAMILY
+ family = sockaddr.__ss_family;
+#else
family = sockaddr.ss_family;
+#endif
#else
family = AF_INET;
#endif