summaryrefslogtreecommitdiff
path: root/libpurple/proxy.c
diff options
context:
space:
mode:
authorPaul Aurich <darkrain42@pidgin.im>2010-02-14 08:05:08 +0000
committerPaul Aurich <darkrain42@pidgin.im>2010-02-14 08:05:08 +0000
commit0b13fe8fd8a20ccf84bca9df70e50ebca9677dee (patch)
tree40c0c470c47f3baef3a118cac2883f8d4c086912 /libpurple/proxy.c
parentf069bb602ecacd8c970f1c9f63f867de22e187dd (diff)
downloadpidgin-0b13fe8fd8a20ccf84bca9df70e50ebca9677dee.tar.gz
proxy: Fix printing IPv6 addresses
From "0:0:2001:6f8:999::" (wrong) to "2001:6f8:999::1" (correct).
Diffstat (limited to 'libpurple/proxy.c')
-rw-r--r--libpurple/proxy.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libpurple/proxy.c b/libpurple/proxy.c
index 111c1896bf..282b3572f0 100644
--- a/libpurple/proxy.c
+++ b/libpurple/proxy.c
@@ -2100,8 +2100,12 @@ static void try_connect(PurpleProxyConnectData *connect_data)
addr = connect_data->hosts->data;
connect_data->hosts = g_slist_remove(connect_data->hosts, connect_data->hosts->data);
#ifdef HAVE_INET_NTOP
- inet_ntop(addr->sa_family, &((struct sockaddr_in *)addr)->sin_addr,
- ipaddr, sizeof(ipaddr));
+ if (addr->sa_family == AF_INET)
+ inet_ntop(addr->sa_family, &((struct sockaddr_in *)addr)->sin_addr,
+ ipaddr, sizeof(ipaddr));
+ else if (addr->sa_family == AF_INET6)
+ inet_ntop(addr->sa_family, &((struct sockaddr_in6 *)addr)->sin6_addr,
+ ipaddr, sizeof(ipaddr));
#else
memcpy(ipaddr, inet_ntoa(((struct sockaddr_in *)addr)->sin_addr),
sizeof(ipaddr));