diff libpurple/protocols/yahoo/yahoo.c @ 27221:539f53b9ec37

Fix how we process certain data we get from the server. In some cases, we seem to take into account that the server does send us chunked data, but not always. Now that the core handles chunked data, we can process the response data more correctly.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Tue, 30 Jun 2009 20:50:33 +0000
parents a1603a9cda5e
children b2465d7fdeac
line wrap: on
line diff
--- a/libpurple/protocols/yahoo/yahoo.c	Tue Jun 30 20:48:12 2009 +0000
+++ b/libpurple/protocols/yahoo/yahoo.c	Tue Jun 30 20:50:33 2009 +0000
@@ -1683,11 +1683,11 @@
 #else
 		while (split_data[++totalelements] != NULL);	
 #endif
-		if (totalelements >= 5) {
-			response_no = strtol(split_data[1], NULL, 10);
-			crumb = g_strdup(split_data[2] + strlen("crumb="));
-			yd->cookie_y = g_strdup(split_data[3] + strlen("Y="));
-			yd->cookie_t = g_strdup(split_data[4] + strlen("T="));
+		if (totalelements >= 4) {
+			response_no = strtol(split_data[0], NULL, 10);
+			crumb = g_strdup(split_data[1] + strlen("crumb="));
+			yd->cookie_y = g_strdup(split_data[2] + strlen("Y="));
+			yd->cookie_t = g_strdup(split_data[3] + strlen("T="));
 		}
 
 		g_strfreev(split_data);
@@ -1769,9 +1769,9 @@
 #else
 		while (split_data[++totalelements] != NULL);	
 #endif
-		if(totalelements >= 5) {
-			response_no = strtol(split_data[1], NULL, 10);
-			token = g_strdup(split_data[2] + strlen("ymsgr="));
+		if(totalelements >= 2) {
+			response_no = strtol(split_data[0], NULL, 10);
+			token = g_strdup(split_data[1] + strlen("ymsgr="));
 		}
 
 		g_strfreev(split_data);