Mercurial > pidgin.yaz
diff libpurple/proxy.c @ 23391:5c70d953a497
propagate from branch 'im.pidgin.pidgin.2.4.3' (head 709ec9c29e9d76eebbded25061107ef0a2a2b148)
to branch 'im.pidgin.pidgin' (head e8d624d4b86e9505bb225f2a6e7b29ec6c8affed)
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Thu, 26 Jun 2008 09:07:56 +0000 |
parents | 8a1798bcddc6 242fd82b5fe6 |
children | 64585aab233a |
line wrap: on
line diff
--- a/libpurple/proxy.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/proxy.c Thu Jun 26 09:07:56 2008 +0000 @@ -1143,7 +1143,7 @@ int len; if (connect_data->read_buffer == NULL) { - connect_data->read_buf_len = 4; + connect_data->read_buf_len = 5; connect_data->read_buffer = g_malloc(connect_data->read_buf_len); connect_data->read_len = 0; } @@ -1212,6 +1212,11 @@ return; buf += 4 + 16; break; + default: + purple_debug_error("socks5 proxy", "Invalid ATYP received (0x%X)\n", buf[3]); + purple_proxy_connect_data_disconnect(connect_data, + _("Received invalid data on connection with server.")); + return; } /* Skip past BND.PORT */ @@ -1728,6 +1733,10 @@ * resolved, and each time a connection attempt fails (assuming there * is another IP address to try). */ +#ifndef INET6_ADDRSTRLEN +#define INET6_ADDRSTRLEN 46 +#endif + static void try_connect(PurpleProxyConnectData *connect_data) { size_t addrlen; @@ -1738,9 +1747,13 @@ connect_data->hosts = g_slist_remove(connect_data->hosts, connect_data->hosts->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)); +#else + memcpy(ipaddr,inet_ntoa(((struct sockaddr_in *)addr)->sin_addr), + sizeof(ipaddr)); +#endif purple_debug_info("proxy", "Attempting connection to %s\n", ipaddr); switch (purple_proxy_info_get_type(connect_data->gpi)) {