18757N/A--- pidgin-2.7.0/configure.ac.old 2010-05-19 16:14:37.353493050 +0800
18757N/A+++ pidgin-2.7.0/configure.ac 2010-05-19 16:14:57.627765006 +0800
18757N/A@@ -156,6 +156,8 @@
18757N/A [AC_DEFINE([HAVE_GETADDRINFO]) LIBS="-lsocket -lsnl $LIBS"], , , -lnsl)])
18757N/A AC_CHECK_FUNCS(inet_ntop)
18757N/A AC_CHECK_FUNCS(getifaddrs)
18757N/A+AC_CHECK_MEMBERS(struct ifaddrs.ifa_addr->ss_family,[],[],[[ #include <ifaddrs.h>
18757N/A+#include <net/if.h> ]])
18757N/A dnl Check for socklen_t (in Unix98)
18757N/A AC_MSG_CHECKING(for socklen_t)
18757N/A AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
18757N/A--- pidgin-2.7.0/libpurple/network.c.old 2010-05-19 16:14:46.440830715 +0800
18757N/A+++ pidgin-2.7.0/libpurple/network.c 2010-05-19 16:38:25.005674810 +0800
18757N/A@@ -57,6 +57,16 @@
18757N/A #include <idna.h>
18757N/A #endif
18757N/A
18757N/A+/* Since OpenSolaris build 137, RFC2553 is supported
18757N/A+ * so ifa_addr member of "struct ifaddrs" has type
18757N/A+ * "struct sockaddr_storage"
18757N/A+ */
18757N/A+#ifdef HAVE_STRUCT_IFADDRS_IFA_ADDR__SS_FAMILY
18757N/A+#define ADDR_FAMILY_MEMBER ss_family
18757N/A+#else
18757N/A+#define ADDR_FAMILY_MEMBER sa_family
18757N/A+#endif
18757N/A+
18757N/A /*
18757N/A * Calling sizeof(struct ifreq) isn't always correct on
18757N/A * Mac OS X (and maybe others).
18757N/A@@ -219,7 +229,7 @@
18757N/A }
18757N/A
18757N/A for (ifa = start; ifa; ifa = ifa->ifa_next) {
18757N/A- int family = ifa->ifa_addr ? ifa->ifa_addr->sa_family : AF_UNSPEC;
18757N/A+ int family = ifa->ifa_addr ? ifa->ifa_addr->ADDR_FAMILY_MEMBER: AF_UNSPEC;
18757N/A char host[INET6_ADDRSTRLEN];
18757N/A const char *tmp = NULL;
18757N/A
18757N/A@@ -265,7 +275,7 @@
18757N/A ifr = (struct ifreq *)tmp;
18757N/A tmp += HX_SIZE_OF_IFREQ(*ifr);
18757N/A
18757N/A- if (ifr->ifr_addr.sa_family == AF_INET) {
18757N/A+ if (ifr->ifr_addr.ADDR_FAMILY_MEMBER == AF_INET) {
18757N/A struct sockaddr_in *sinptr = (struct sockaddr_in *)&ifr->ifr_addr;
18757N/A
18757N/A inet_ntop(AF_INET, &sinptr->sin_addr, dst,