changeset 30646:76b2a2636c62

merged from im.pidgin.pidgin
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Wed, 23 Jun 2010 20:02:46 +0900
parents 81ffeb069847 (current diff) 317cbbf56c2f (diff)
children 810a6be1920f
files libpurple/protocols/yahoo/yahoo_filexfer.c
diffstat 4 files changed, 26 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/COPYRIGHT	Mon Jun 21 17:35:10 2010 +0900
+++ b/COPYRIGHT	Wed Jun 23 20:02:46 2010 +0900
@@ -512,6 +512,7 @@
 Kyle Turman
 Jon Turney
 Junichi Uekawa
+Max Ulidtko
 Igor Vlasenko
 István Váradi
 Martijn van Beers
--- a/ChangeLog	Mon Jun 21 17:35:10 2010 +0900
+++ b/ChangeLog	Wed Jun 23 20:02:46 2010 +0900
@@ -13,6 +13,9 @@
 	* Rebindable 'dropdown' action for comboboxes (GntComboBox) to show the
 	  dropdown list of options.
 
+	IRC:
+	* Fix non-ASCII arguments to /mode et al.  (thanks to Max Ulidtko)
+
 	XMPP:
 	* Allow connecting to servers that only advertise GSSAPI and expect
 	  a fallback to legacy IQ authentication (broken in 2.7.0).
@@ -22,13 +25,16 @@
 	Yahoo/Yahoo JAPAN:
 	* Renamed "Use account proxy for SSL connections" to "Use account proxy
 	  for HTTP and HTTPS requests" and tied the option to HTTP requests too.
-	* Properly detect HTTP proxy server use when the HTTP proxy is the global
-	  proxy server, an account-level non-HTTP proxy server is configured, and
-	  the "Use account proxy for HTTP and HTTPS requests" account option is
-	  turned off.  This fixes connecting for some HTTP proxy servers.
-	* Fall back to connecting to scsa.msg.yahoo.com (not configurable) if the
-	  HTTP-based connect server lookup fails.  This does not work for Yahoo
-	  JAPAN accounts.
+	* Properly detect HTTP proxy server use when the HTTP proxy is the
+	  global proxy server, an account-level non-HTTP proxy server is
+	  configured, and the "Use account proxy for HTTP and HTTPS requests"
+	  account option is turned off.  This fixes connecting for some HTTP
+	  proxy servers.
+	* Fall back to connecting to scsa.msg.yahoo.com (not configurable) if
+	  the HTTP-based connect server lookup fails.  This does not work for
+	  Yahoo JAPAN accounts.
+	* Fix file transfers that get stuck with "Waiting for transfer to
+	  begin".
 
 version 2.7.1 (05/29/2010):
 	General:
--- a/libpurple/protocols/irc/cmds.c	Mon Jun 21 17:35:10 2010 +0900
+++ b/libpurple/protocols/irc/cmds.c	Wed Jun 23 20:02:46 2010 +0900
@@ -238,16 +238,16 @@
 		if (!args[0] && irc_ischannel(target))
 			buf = irc_format(irc, "vc", "MODE", target);
 		else if (args[0] && (*args[0] == '+' || *args[0] == '-'))
-			buf = irc_format(irc, "vcv", "MODE", target, args[0]);
+			buf = irc_format(irc, "vcn", "MODE", target, args[0]);
 		else if (args[0])
-			buf = irc_format(irc, "vv", "MODE", args[0]);
+			buf = irc_format(irc, "vn", "MODE", args[0]);
 		else
 			return 0;
 	} else if (!strcmp(cmd, "umode")) {
 		if (!args[0])
 			return 0;
 		gc = purple_account_get_connection(irc->account);
-		buf = irc_format(irc, "vnv", "MODE", purple_connection_get_display_name(gc), args[0]);
+		buf = irc_format(irc, "vnc", "MODE", purple_connection_get_display_name(gc), args[0]);
 	} else {
 		return 0;
 	}
@@ -437,7 +437,7 @@
 	if (!args || !args[0])
 		return 0;
 
-	buf = irc_format(irc, "v", args[0]);
+	buf = irc_format(irc, "n", args[0]);
 	irc_send(irc, buf);
 	g_free(buf);
 
--- a/libpurple/protocols/yahoo/yahoo_filexfer.c	Mon Jun 21 17:35:10 2010 +0900
+++ b/libpurple/protocols/yahoo/yahoo_filexfer.c	Wed Jun 23 20:02:46 2010 +0900
@@ -1023,19 +1023,19 @@
 	/* TODO:actually, u must try with addr no.1 , if its not working addr no.2 ..... */
 	addr = hosts->data;
 	actaddr = addr->sin_addr.s_addr;
-	d = actaddr % 256;
-	actaddr = (actaddr - d) / 256;
-	c = actaddr % 256;
-	actaddr = (actaddr - c) / 256;
-	b = actaddr % 256;
-	actaddr = (actaddr - b) / 256;
-	a = actaddr;
+	d = actaddr & 0xff;
+	actaddr >>= 8;
+	c = actaddr & 0xff;
+	actaddr >>= 8;
+	b = actaddr & 0xff;
+	actaddr >>= 8;
+	a = actaddr & 0xff;
 	if(yd->jp)
 		xd->port = YAHOOJP_XFER_RELAY_PORT;
 	else
 		xd->port = YAHOO_XFER_RELAY_PORT;
 
-	url = g_strdup_printf("%ld.%ld.%ld.%ld", d, c, b, a);
+	url = g_strdup_printf("%u.%u.%u.%u", d, c, b, a);
 
 	/* Free the address... */
 	g_free(hosts->data);