patches/pidgin-14-ifaddrs.diff
author yippi
Mon, 27 Sep 2010 21:07:51 +0000
changeset 20108 51df67ca9307
parent 18006 24bd68a5c0c9
child 22350 08957601a465
permissions -rw-r--r--
I had these modules listed as being owned by me, but they are really owned by wangke, correcting.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18006
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
     1
--- pidgin-2.7.0/configure.ac.old	2010-05-19 16:14:37.353493050 +0800
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
     2
+++ pidgin-2.7.0/configure.ac	2010-05-19 16:14:57.627765006 +0800
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
     3
@@ -156,6 +156,8 @@
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
     4
 		[AC_DEFINE([HAVE_GETADDRINFO]) LIBS="-lsocket -lsnl $LIBS"], , , -lnsl)])
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
     5
 AC_CHECK_FUNCS(inet_ntop)
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
     6
 AC_CHECK_FUNCS(getifaddrs)
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
     7
+AC_CHECK_MEMBERS(struct ifaddrs.ifa_addr->ss_family,[],[],[[ #include <ifaddrs.h> 
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
     8
+#include <net/if.h> ]])
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
     9
 dnl Check for socklen_t (in Unix98)
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    10
 AC_MSG_CHECKING(for socklen_t)
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    11
 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    12
--- pidgin-2.7.0/libpurple/network.c.old	2010-05-19 16:14:46.440830715 +0800
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    13
+++ pidgin-2.7.0/libpurple/network.c	2010-05-19 16:38:25.005674810 +0800
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    14
@@ -57,6 +57,16 @@
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    15
 #include <idna.h>
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    16
 #endif
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    17
 
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    18
+/* Since OpenSolaris build 137, RFC2553 is supported
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    19
+ * so ifa_addr member of "struct ifaddrs" has type
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    20
+ * "struct sockaddr_storage" 
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    21
+ */
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    22
+#ifdef HAVE_STRUCT_IFADDRS_IFA_ADDR__SS_FAMILY
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    23
+#define ADDR_FAMILY_MEMBER ss_family
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    24
+#else
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    25
+#define ADDR_FAMILY_MEMBER sa_family
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    26
+#endif
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    27
+
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    28
 /*
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    29
  * Calling sizeof(struct ifreq) isn't always correct on
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    30
  * Mac OS X (and maybe others).
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    31
@@ -219,7 +229,7 @@
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    32
 	}
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    33
 
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    34
 	for (ifa = start; ifa; ifa = ifa->ifa_next) {
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    35
-		int family = ifa->ifa_addr ? ifa->ifa_addr->sa_family : AF_UNSPEC;
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    36
+		int family = ifa->ifa_addr ? ifa->ifa_addr->ADDR_FAMILY_MEMBER: AF_UNSPEC;
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    37
 		char host[INET6_ADDRSTRLEN];
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    38
 		const char *tmp = NULL;
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    39
 
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    40
@@ -265,7 +275,7 @@
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    41
 		ifr = (struct ifreq *)tmp;
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    42
 		tmp += HX_SIZE_OF_IFREQ(*ifr);
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    43
 
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    44
-		if (ifr->ifr_addr.sa_family == AF_INET) {
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    45
+		if (ifr->ifr_addr.ADDR_FAMILY_MEMBER == AF_INET) {
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    46
 			struct sockaddr_in *sinptr = (struct sockaddr_in *)&ifr->ifr_addr;
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    47
 
24bd68a5c0c9 2010-05-20 Brian Lu <set EMAIL_ADDRESS environment variable>
hawklu
parents:
diff changeset
    48
 			inet_ntop(AF_INET, &sinptr->sin_addr, dst,