--- a/libpurple/protocols/bonjour/jabber.c Tue Dec 06 08:23:45 2011 +0000
+++ b/libpurple/protocols/bonjour/jabber.c Tue Dec 13 15:24:16 2011 +0000
@@ -1448,7 +1448,7 @@
-append_iface_if_linklocal(char *ip, uint32_t interface) {
+append_iface_if_linklocal(char *ip, guint32 interface_param) { struct in6_addr in6_addr;
int len_remain = INET6_ADDRSTRLEN - strlen(ip);
@@ -1460,5 +1460,5 @@
snprintf(ip + strlen(ip), len_remain, "%%%d",
--- a/libpurple/protocols/bonjour/jabber.h Tue Dec 06 08:23:45 2011 +0000
+++ b/libpurple/protocols/bonjour/jabber.h Tue Dec 13 15:24:16 2011 +0000
@@ -111,6 +111,6 @@
int xep_iq_send_and_free(XepIq *iq);
GSList * bonjour_jabber_get_local_ips(int fd);
-void append_iface_if_linklocal(char *ip, uint32_t interface);
+void append_iface_if_linklocal(char *ip, guint32 interface_param); #endif /* _BONJOUR_JABBER_H_ */
--- a/libpurple/win32/libc_interface.c Tue Dec 06 08:23:45 2011 +0000
+++ b/libpurple/win32/libc_interface.c Tue Dec 13 15:24:16 2011 +0000
@@ -300,6 +300,50 @@
return (const char *) dst;
+wpurple_inet_pton(int af, const char *src, void *dst) + /* struct sockaddr can't accomodate struct sockaddr_in6. */ + struct sockaddr_in6 sin6; + struct sockaddr_in sin; + sa.sin.sin_family = AF_INET; + srcsize = sizeof (sa.sin); + sa.sin6.sin6_family = AF_INET6; + srcsize = sizeof (sa.sin6); + errno = WSAEPFNOSUPPORT; + if (WSAStringToAddress(src, af, NULL, (struct sockaddr *) &sa, &srcsize) != 0) + errno = WSAGetLastError(); + memcpy(dst, &sa.sin.sin_addr, sizeof(sa.sin.sin_addr)); + memcpy(dst, &sa.sin6.sin6_addr, sizeof(sa.sin6.sin6_addr)); struct hostent* wpurple_gethostbyname(const char *name) {
--- a/libpurple/win32/libc_interface.h Tue Dec 06 08:23:45 2011 +0000
+++ b/libpurple/win32/libc_interface.h Tue Dec 13 15:24:16 2011 +0000
@@ -89,6 +89,9 @@
#define inet_ntop( af, src, dst, cnt ) \
wpurple_inet_ntop( af, src, dst, cnt )
+#define inet_pton( af, src, dst ) \ +wpurple_inet_pton( af, src, dst ) #define gethostbyname( name ) \
wpurple_gethostbyname( name )
--- a/libpurple/win32/libc_internal.h Tue Dec 06 08:23:45 2011 +0000
+++ b/libpurple/win32/libc_internal.h Tue Dec 13 15:24:16 2011 +0000
@@ -48,6 +48,7 @@
int wpurple_inet_aton(const char *name, struct in_addr *addr);
wpurple_inet_ntop (int af, const void *src, char *dst, socklen_t cnt);
+int wpurple_inet_pton(int af, const char *src, void *dst); struct hostent* wpurple_gethostbyname(const char *name);