adium.1-4: dd496d00: *** Plucked rev cfe0e649dda34d9252d40d8f...

rekkanoryo at pidgin.im rekkanoryo at pidgin.im
Fri Aug 13 19:55:42 EDT 2010


----------------------------------------------------------------------
Revision: dd496d006f7414efd30774f23f17af433cd38a0e
Parent:   05de220897399efab7e75a020a1be564e7f0a233
Author:   rekkanoryo at pidgin.im
Date:     08/13/10 19:50:56
Branch:   im.pidgin.adium.1-4
URL: http://d.pidgin.im/viewmtn/revision/info/dd496d006f7414efd30774f23f17af433cd38a0e

Changelog: 

*** Plucked rev cfe0e649dda34d9252d40d8f67e445336a247998 (darkrain42 at pidgin.im):
yahoo: Fix a few race-condition crashes at login

(if the account disconnects while these fetches are in-progress).

*** Plucked rev 1724c0c7cbf56b08b5454e796b80173ec9aef481 (rekkanoryo at pidgin.im):
Very hackily implement a fallback mechanism in Yahoo, but not for Yahoo Japan
because we don't know hosts we can fall back to there yet.  This fallback
mechanism just blindly connects to scsa.msg.yahoo.com if the HTTP-based CS
lookup fails.  I guarantee this will break in the future.  Refs #11986.

*** Plucked rev 06fcbcb8d044bcd6887415dc87274071bb724596 (rekkanoryo at pidgin.im):
Change the function of the "proxy_ssl" account option to cover regular HTTP
requests as well as HTTPS requests.  While this does fix the core issue of
#11986, there is still more that I need to do to fix his issue.  Refs #11986.

*** Plucked rev f08e4f567582f7d28683d043f759a720ee9142e3 (rekkanoryo at pidgin.im):
Make HTTP proxy detection in the yahoo prpls a bit more robust.  This should
solve some weird proxy related items I couldn't figure out before.  Refs #11986.

*** Plucked rev baeaaf7de69d9f99b7545dda73f219292c4dd106 (datallah at pidgin.im):
Attempt to improve handling of HTTP requests on port 80 when there is a HTTP
proxy that requires authentication involved.
This also has a fix to make sure that we continue to use the same proxy when
we are redirected to an alternative URL.
I'm tempted to create a purple_proxy_append_proxy_auth_headers(), but that
would have to wait until 2.8.0.
Refs #11986.
Refs #11908.

*** Plucked rev 52fb5cb4cd8795906a7313dd5edde763a4848a3e (qulogic at pidgin.im):
Normalize the remote passport before sending a P2P message. If it's not
lowercase, then the switchboard will reject it, causing a whole lot of
extra network traffic as Pidgin attempts to resend the same (incorrect)
message.

Fixes #11532.

*** Plucked rev e3dd36706068f3b8eabd630ff71d270c145cce42 (markdoliner at pidgin.im):
If we get an error SNAC on the ICBM family and it's missing buddy name then
don't fallthrough to the default error handler in misc.c.  This was causing
purple_parse_msgerr() in oscar.c to get called with different va_args than
it was expecting, which caused a crash.  Specifically when trying to fetch
the ICQ x-status of an offline buddy.

Fixes #11863.  This is nosnilmot's patch, I believe.  I had no part in it,
other than verifying that I do believe it'll fix the crash.


The above revision plucks authorized by Zac West and Robert Vehse.

Changes against parent 05de220897399efab7e75a020a1be564e7f0a233

  patched  libpurple/protocols/msn/slplink.c
  patched  libpurple/protocols/oscar/family_icbm.c
  patched  libpurple/protocols/yahoo/libyahoo.c
  patched  libpurple/protocols/yahoo/libyahoojp.c
  patched  libpurple/protocols/yahoo/libymsg.c
  patched  libpurple/protocols/yahoo/libymsg.h
  patched  libpurple/protocols/yahoo/util.c
  patched  libpurple/util.c

-------------- next part --------------
============================================================
--- libpurple/util.c	d1771bfbcbd754eb92de800a43f7a102cc85ec99
+++ libpurple/util.c	1e64bd9ca1145383b3a74539ff4e7bba169a0368
@@ -28,6 +28,7 @@
 #include "core.h"
 #include "debug.h"
 #include "notify.h"
+#include "ntlm.h"
 #include "prpl.h"
 #include "prefs.h"
 #include "util.h"
@@ -69,6 +70,7 @@ struct _PurpleUtilFetchUrlData
 	unsigned long data_len;
 	gssize max_len;
 	gboolean chunked;
+	PurpleAccount *account;
 };
 
 static char *custom_user_dir = NULL;
@@ -3794,11 +3796,11 @@ parse_redirect(const char *data, size_t 
 
 	if (purple_strcasestr(new_url, "https://") != NULL) {
 		gfud->is_ssl = TRUE;
-		gfud->ssl_connection = purple_ssl_connect(NULL,
+		gfud->ssl_connection = purple_ssl_connect(gfud->account,
 				gfud->website.address, gfud->website.port,
 				ssl_url_fetch_connect_cb, ssl_url_fetch_error_cb, gfud);
 	} else {
-		gfud->connect_data = purple_proxy_connect(NULL, NULL,
+		gfud->connect_data = purple_proxy_connect(NULL, gfud->account,
 				gfud->website.address, gfud->website.port,
 				url_fetch_connect_cb, gfud);
 	}
@@ -4090,36 +4092,68 @@ url_fetch_send_cb(gpointer data, gint so
 
 	gfud = data;
 
-	if (gfud->request == NULL)
-	{
+	if (gfud->request == NULL) {
+
+		PurpleProxyInfo *gpi = purple_proxy_get_setup(gfud->account);
+		GString *request_str = g_string_new(NULL);
+
+		g_string_append_printf(request_str, "GET %s%s HTTP/%s\r\n"
+						    "Connection: close\r\n",
+			(gfud->full ? "" : "/"),
+			(gfud->full ? (gfud->url ? gfud->url : "") : (gfud->website.page ? gfud->website.page : "")),
+			(gfud->http11 ? "1.1" : "1.0"));
+
+		if (gfud->user_agent)
+			g_string_append_printf(request_str, "User-Agent: %s\r\n", gfud->user_agent);
+
 		/* Host header is not forbidden in HTTP/1.0 requests, and HTTP/1.1
 		 * clients must know how to handle the "chunked" transfer encoding.
 		 * Purple doesn't know how to handle "chunked", so should always send
 		 * the Host header regardless, to get around some observed problems
 		 */
-		if (gfud->user_agent) {
-			gfud->request = g_strdup_printf(
-				"GET %s%s HTTP/%s\r\n"
-				"Connection: close\r\n"
-				"User-Agent: %s\r\n"
-				"Accept: */*\r\n"
-				"Host: %s\r\n\r\n",
-				(gfud->full ? "" : "/"),
-				(gfud->full ? (gfud->url ? gfud->url : "") : (gfud->website.page ? gfud->website.page : "")),
-				(gfud->http11 ? "1.1" : "1.0"),
-				(gfud->user_agent ? gfud->user_agent : ""),
-				(gfud->website.address ? gfud->website.address : ""));
-		} else {
-			gfud->request = g_strdup_printf(
-				"GET %s%s HTTP/%s\r\n"
-				"Connection: close\r\n"
-				"Accept: */*\r\n"
-				"Host: %s\r\n\r\n",
-				(gfud->full ? "" : "/"),
-				(gfud->full ? (gfud->url ? gfud->url : "") : (gfud->website.page ? gfud->website.page : "")),
-				(gfud->http11 ? "1.1" : "1.0"),
-				(gfud->website.address ? gfud->website.address : ""));
+		g_string_append_printf(request_str, "Accept: */*\r\n"
+						    "Host: %s\r\n",
+			(gfud->website.address ? gfud->website.address : ""));
+
+		if (purple_proxy_info_get_username(gpi) != NULL
+				&& (purple_proxy_info_get_type(gpi) == PURPLE_PROXY_USE_ENVVAR
+					|| purple_proxy_info_get_type(gpi) == PURPLE_PROXY_HTTP)) {
+			/* This chunk of code was copied from proxy.c http_start_connect_tunneling()
+			 * This is really a temporary hack - we need a more complete proxy handling solution,
+			 * so I didn't think it was worthwhile to refactor for reuse
+			 */ 
+			char *t1, *t2, *ntlm_type1;
+			char hostname[256];
+			int ret;
+	
+			ret = gethostname(hostname, sizeof(hostname));
+			hostname[sizeof(hostname) - 1] = '\0';
+			if (ret < 0 || hostname[0] == '\0') {
+				purple_debug_warning("util", "proxy - gethostname() failed -- is your hostname set?");
+				strcpy(hostname, "localhost");
+			}
+	
+			t1 = g_strdup_printf("%s:%s",
+				purple_proxy_info_get_username(gpi),
+				purple_proxy_info_get_password(gpi) ?
+					purple_proxy_info_get_password(gpi) : "");
+			t2 = purple_base64_encode((const guchar *)t1, strlen(t1));
+			g_free(t1);
+	
+			ntlm_type1 = purple_ntlm_gen_type1(hostname, "");
+	
+			g_string_append_printf(request_str,
+				"Proxy-Authorization: Basic %s\r\n"
+				"Proxy-Authorization: NTLM %s\r\n"
+				"Proxy-Connection: Keep-Alive\r\n",
+				t2, ntlm_type1);
+			g_free(ntlm_type1);
+			g_free(t2);
 		}
+
+		g_string_append(request_str, "\r\n");
+
+		gfud->request = g_string_free(request_str, FALSE);
 	}
 
 	if(purple_debug_is_unsafe())
@@ -4258,6 +4292,7 @@ purple_util_fetch_url_request_len_with_a
 	gfud->include_headers = include_headers;
 	gfud->fd = -1;
 	gfud->max_len = max_len;
+	gfud->account = account;
 
 	purple_url_parse(url, &gfud->website.address, &gfud->website.port,
 				   &gfud->website.page, &gfud->website.user, &gfud->website.passwd);
============================================================
--- libpurple/protocols/yahoo/libymsg.c	2cc57766405b7c5d3deba94b1c9c75dd046fdf34
+++ libpurple/protocols/yahoo/libymsg.c	557efbf5bebeea503604fc8a6f61c7134f7b6b5c
@@ -1783,23 +1783,17 @@ static gchar *yahoo_auth16_get_cookie_b(
 	return tmp2;
 }
 
-static void yahoo_auth16_stage2(PurpleUtilFetchUrlData *unused, gpointer user_data, const gchar *ret_data, size_t len, const gchar *error_message)
+static void yahoo_auth16_stage2(PurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *ret_data, size_t len, const gchar *error_message)
 {
 	struct yahoo_auth_data *auth_data = user_data;
 	PurpleConnection *gc = auth_data->gc;
-	YahooData *yd;
+	YahooData *yd = purple_connection_get_protocol_data(gc);
 	gboolean try_login_on_error = FALSE;
 
 	purple_debug_info("yahoo","Authentication: In yahoo_auth16_stage2\n");
 
-	if (!PURPLE_CONNECTION_IS_VALID(gc)) {
-		g_free(auth_data->seed);
-		g_free(auth_data);
-		g_return_if_reached();
-	}
-
-	yd = (YahooData *)gc->proto_data;
-
+	yd->url_datas = g_slist_remove(yd->url_datas, url_data);
+	
 	if (error_message != NULL) {
 		purple_debug_error("yahoo", "Login Failed, unable to retrieve stage 2 url: %s\n", error_message);
 		purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, error_message);
@@ -1905,18 +1899,15 @@ static void yahoo_auth16_stage2(PurpleUt
 	g_free(auth_data);
 }
 
-static void yahoo_auth16_stage1_cb(PurpleUtilFetchUrlData *unused, gpointer user_data, const gchar *ret_data, size_t len, const gchar *error_message)
+static void yahoo_auth16_stage1_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *ret_data, size_t len, const gchar *error_message)
 {
 	struct yahoo_auth_data *auth_data = user_data;
 	PurpleConnection *gc = auth_data->gc;
+	YahooData *yd = purple_connection_get_protocol_data(gc);
 
 	purple_debug_info("yahoo","Authentication: In yahoo_auth16_stage1_cb\n");
 
-	if (!PURPLE_CONNECTION_IS_VALID(gc)) {
-		g_free(auth_data->seed);
-		g_free(auth_data);
-		g_return_if_reached();
-	}
+	yd->url_datas = g_slist_remove(yd->url_datas, url_data);
 
 	if (error_message != NULL) {
 		purple_debug_error("yahoo", "Login Failed, unable to retrieve login url: %s\n", error_message);
@@ -2021,6 +2012,8 @@ static void yahoo_auth16_stage1_cb(Purpl
 			url_data = purple_util_fetch_url_request_len_with_account(
 					proxy_ssl ? account : NULL, url, TRUE, YAHOO_CLIENT_USERAGENT,
 					TRUE, NULL, TRUE, -1, yahoo_auth16_stage2, auth_data);
+			if (url_data)
+				yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
 			g_free(url);
 			g_free(token);
 		}
@@ -2029,6 +2022,7 @@ static void yahoo_auth16_stage1(PurpleCo
 
 static void yahoo_auth16_stage1(PurpleConnection *gc, const char *seed)
 {
+	YahooData *yd = purple_connection_get_protocol_data(gc);
 	PurpleAccount *account = purple_connection_get_account(gc);
 	PurpleUtilFetchUrlData *url_data = NULL;
 	struct yahoo_auth_data *auth_data = NULL;
@@ -2060,6 +2054,8 @@ static void yahoo_auth16_stage1(PurpleCo
 			proxy_ssl ? account : NULL, url, TRUE,
 			YAHOO_CLIENT_USERAGENT, TRUE, NULL, FALSE, -1,
 			yahoo_auth16_stage1_cb, auth_data);
+	if (url_data)
+		yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
 
 	g_free(url);
 }
@@ -3597,12 +3593,23 @@ static void yahoo_got_pager_server(Purpl
 	gchar **strings = NULL, *cs_server = NULL;
 	int port = 0, stringslen = 0;
 
+	yd->url_datas = g_slist_remove(yd->url_datas, url_data);
+
 	if(error_message != NULL || len == 0) {
 		purple_debug_error("yahoo", "Unable to retrieve server info. %"
 				G_GSIZE_FORMAT " bytes retrieved with error message: %s\n", len,
 				error_message ? error_message : "(null)");
-		purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
-				_("Unable to connect: The server returned an empty response."));
+
+		if(yahoo_is_japan(a)) { /* We don't know fallback hosts for Yahoo Japan :( */
+			purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
+					_("Unable to connect: The server returned an empty response."));
+		} else {
+				if(purple_proxy_connect(gc, a, YAHOO_PAGER_HOST_FALLBACK, port,
+							yahoo_got_connected, gc) == NULL) {
+					purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
+							_("Unable to connect"));
+				}
+		}
 	} else {
 		strings = g_strsplit(url_text, "\r\n", -1);
 
@@ -3628,9 +3635,17 @@ static void yahoo_got_pager_server(Purpl
 		} else {
 			purple_debug_error("yahoo", "No CS address retrieved!  Server "
 					"response:\n%s\n", url_text ? url_text : "(null)");
-			purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
-					_("Unable to connect: The server's response did not contain "
-						"the necessary information"));
+
+			if(yahoo_is_japan(a)) { /* We don't know fallback hosts for Yahoo Japan :( */
+				purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
+						_("Unable to connect: The server's response did not contain "
+							"the necessary information"));
+			} else
+				if(purple_proxy_connect(gc, a, YAHOO_PAGER_HOST_FALLBACK, port,
+							yahoo_got_connected, gc) == NULL) {
+					purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
+							_("Unable to connect"));
+				}
 		}
 	}
 
@@ -3643,6 +3658,8 @@ void yahoo_login(PurpleAccount *account)
 	YahooData *yd = gc->proto_data = g_new0(YahooData, 1);
 	PurpleStatus *status = purple_account_get_active_status(account);
 	gboolean use_whole_url = yahoo_account_use_http_proxy(gc);
+	gboolean proxy_ssl = purple_account_get_bool(account, "proxy_ssl", FALSE);
+	PurpleUtilFetchUrlData *url_data;
 
 	gc->flags |= PURPLE_CONNECTION_HTML | PURPLE_CONNECTION_NO_BGCOLOR | PURPLE_CONNECTION_NO_URLDESC;
 
@@ -3675,12 +3692,14 @@ void yahoo_login(PurpleAccount *account)
 
 	/* Get the pager server.  Actually start connecting in the callback since we
 	 * must have the contents of the HTTP response to proceed. */
-	purple_util_fetch_url_request_len_with_account(
-			purple_connection_get_account(gc),
+	url_data = purple_util_fetch_url_request_len_with_account(
+			proxy_ssl ? purple_connection_get_account(gc) : NULL,
 			yd->jp ? YAHOOJP_PAGER_HOST_REQ_URL : YAHOO_PAGER_HOST_REQ_URL,
 			use_whole_url ? TRUE : FALSE,
 			YAHOO_CLIENT_USERAGENT, TRUE, NULL, FALSE, -1,
 			yahoo_got_pager_server, yd);
+	if (url_data)
+		yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
 
 	return;
 }
@@ -4369,6 +4388,8 @@ static void yahoo_get_sms_carrier_cb(Pur
 	PurpleAccount *account = purple_connection_get_account(gc);
 	PurpleConversation *conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, sms_cb_data->who, account);
 
+	yd->url_datas = g_slist_remove(yd->url_datas, url_data);
+
 	if (error_message != NULL) {
 		purple_conversation_write(conv, NULL, _("Can't send SMS. Unable to obtain mobile carrier."), PURPLE_MESSAGE_SYSTEM, time(NULL));
 
@@ -4462,7 +4483,9 @@ static void yahoo_get_sms_carrier(Purple
 	g_free(request);
 	g_free(validate_request_str);
 
-	if (!url_data) {
+	if (url_data)
+		yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
+	else {
 		PurpleAccount *account = purple_connection_get_account(gc);
 		PurpleConversation *conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, sms_cb_data->who, account);
 		purple_conversation_write(conv, NULL, _("Can't send SMS. Unable to obtain mobile carrier."), PURPLE_MESSAGE_SYSTEM, time(NULL));
============================================================
--- libpurple/protocols/yahoo/util.c	8b1a626fda1a7464e60bdbb4de4d48c6f4e695e5
+++ libpurple/protocols/yahoo/util.c	bbd849135757fe7f16a2945beae0724771ef0179
@@ -33,10 +33,21 @@ gboolean
 #include <string.h>
 
 gboolean
-yahoo_account_use_http_proxy(PurpleConnection *conn)
+yahoo_account_use_http_proxy(PurpleConnection *pc)
 {
-	PurpleProxyInfo *ppi = purple_proxy_get_setup(conn->account);
-	return (ppi->type == PURPLE_PROXY_HTTP || ppi->type == PURPLE_PROXY_USE_ENVVAR);
+	PurpleAccount *account = purple_connection_get_account(pc);
+	PurpleProxyInfo *ppi = NULL;
+	PurpleProxyType type = PURPLE_PROXY_NONE;
+	gboolean proxy_ssl = purple_account_get_bool(account, "proxy_ssl", FALSE);
+	
+	if(proxy_ssl)
+		ppi = purple_proxy_get_setup(account);
+	else
+		ppi = purple_global_proxy_get_info();
+
+	type = purple_proxy_info_get_type(ppi);
+
+	return (type == PURPLE_PROXY_HTTP || type == PURPLE_PROXY_USE_ENVVAR);
 }
 
 /*
============================================================
--- libpurple/protocols/yahoo/libymsg.h	74870e69b656c7c13b1c2d388d712ffc6fa8873d
+++ libpurple/protocols/yahoo/libymsg.h	3d7cdcbf70cdf22512aed9889982b0770d40a5c2
@@ -30,6 +30,7 @@
 #include "prpl.h"
 
 #define YAHOO_PAGER_HOST_REQ_URL "http://vcs1.msg.yahoo.com/capacity"
+#define YAHOO_PAGER_HOST_FALLBACK "scsa.msg.yahoo.com"
 #define YAHOO_PAGER_PORT 5050
 #define YAHOO_PAGER_PORT_P2P 5101
 #define YAHOO_LOGIN_URL "https://login.yahoo.com/config/pwtoken_login?src=ymsgr&ts=&token=%s"
============================================================
--- libpurple/protocols/msn/slplink.c	c73150501a8bbf5457e799d7bf8b2d6b1ecfd5bf
+++ libpurple/protocols/msn/slplink.c	2dd4620e4918023f07484e8b598431bf1af3498b
@@ -352,6 +352,7 @@ msn_slplink_release_slpmsg(MsnSlpLink *s
 msn_slplink_release_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg)
 {
 	MsnMessage *msg;
+	const char *passport;
 
 	slpmsg->msg = msg = msn_message_new_msnslp();
 
@@ -390,7 +391,8 @@ msn_slplink_release_slpmsg(MsnSlpLink *s
 
 	msg->msnslp_header.total_size = slpmsg->size;
 
-	msn_message_set_attr(msg, "P2P-Dest", slplink->remote_user);
+	passport = purple_normalize(slplink->session->account, slplink->remote_user);
+	msn_message_set_attr(msg, "P2P-Dest", passport);
 
 	msg->ack_cb = msg_ack;
 	msg->nak_cb = msg_nak;
============================================================
--- libpurple/protocols/oscar/family_icbm.c	c4a30f422cecaa7113ba980d9bec607334508a29
+++ libpurple/protocols/oscar/family_icbm.c	f4ff33d2ca51cd6a3174ecf4edd4f6e04e32fd2d
@@ -166,20 +166,20 @@ error(OscarData *od, FlapConnection *con
 
 	if (!(snac2 = aim_remsnac(od, snac->id))) {
 		purple_debug_misc("oscar", "icbm error: received response from unknown request!\n");
-		return 0;
+		return 1;
 	}
 
 	if (snac2->family != SNAC_FAMILY_ICBM) {
 		purple_debug_misc("oscar", "icbm error: received response from invalid request! %d\n", snac2->family);
 		g_free(snac2->data);
 		g_free(snac2);
-		return 0;
+		return 1;
 	}
 
 	if (!(bn = snac2->data)) {
 		purple_debug_misc("oscar", "icbm error: received response from request without a buddy name!\n");
 		g_free(snac2);
-		return 0;
+		return 1;
 	}
 
 	reason = byte_stream_get16(bs);
============================================================
--- libpurple/protocols/yahoo/libyahoo.c	041d8d1c6c8af460ca0c894e5d656aac0e49ccc9
+++ libpurple/protocols/yahoo/libyahoo.c	1649907d3d7b4d0d445feabf4303d6abad015f7f
@@ -324,7 +324,7 @@ init_plugin(PurplePlugin *plugin)
 	option = purple_account_option_bool_new(_("Ignore conference and chatroom invitations"), "ignore_invites", FALSE);
 	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
 
-	option = purple_account_option_bool_new(_("Use account proxy for SSL connections"), "proxy_ssl", FALSE);
+	option = purple_account_option_bool_new(_("Use account proxy for HTTP and HTTPS connections"), "proxy_ssl", FALSE);
 	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
 
 #if 0
============================================================
--- libpurple/protocols/yahoo/libyahoojp.c	bec20f85706c05d30a7133fbc2ff51ae75129c75
+++ libpurple/protocols/yahoo/libyahoojp.c	ed8c87b568a19e4883997e97b694c75ebc34ec7d
@@ -220,7 +220,7 @@ init_plugin(PurplePlugin *plugin)
 	option = purple_account_option_bool_new(_("Ignore conference and chatroom invitations"), "ignore_invites", FALSE);
 	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
 
-	option = purple_account_option_bool_new(_("Use account proxy for SSL connections"), "proxy_ssl", FALSE);
+	option = purple_account_option_bool_new(_("Use account proxy for HTTP and HTTPS connections"), "proxy_ssl", FALSE);
 	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
 
 #if 0


More information about the Commits mailing list