diff options
author | Paul Aurich <darkrain42@pidgin.im> | 2010-02-14 08:05:08 +0000 |
---|---|---|
committer | Paul Aurich <darkrain42@pidgin.im> | 2010-02-14 08:05:08 +0000 |
commit | 0b13fe8fd8a20ccf84bca9df70e50ebca9677dee (patch) | |
tree | 40c0c470c47f3baef3a118cac2883f8d4c086912 /libpurple/proxy.c | |
parent | f069bb602ecacd8c970f1c9f63f867de22e187dd (diff) | |
download | pidgin-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.c | 8 |
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)); |