diff libgaim/protocols/msn/servconn.c @ 20390:d634f88e25d8

msn.tgz from SF Patch #1621854 from Ka-Hing Cheung "This tarball brings soc-2006-msnp13 up to head. In addition to that it also fixes a crash with sending offline messages. I wasn't able to generate a diff against that branch, svn seems to insist on diff'ing against HEAD after I run the merge command. After running `svn merge -r 16309:HEAD https://gaim.svn.sourceforge.net/svnroot/gaim/trunk` on the soc-2006-msnp13 you can replace the msn directory with the attached tarball. The fix for offline messaging is on msn.c:901: if (!session->oim) session->oim = msn_oim_new(session)" committer: Richard Laager <rlaager@wiktel.com>
author Ka-Hing Cheung <khc@hxbc.us>
date Sun, 15 Apr 2007 02:18:17 +0000
parents 118fd0dc5b6e
children 0b0ecee55091 9755b2f7bb0f
line wrap: on
line diff
--- a/libgaim/protocols/msn/servconn.c	Sun Apr 15 02:10:37 2007 +0000
+++ b/libgaim/protocols/msn/servconn.c	Sun Apr 15 02:18:17 2007 +0000
@@ -166,9 +166,9 @@
  **************************************************************************/
 
 static void
-connect_cb(gpointer data, gint source, const gchar *error_message)
+connect_cb(gpointer data, gint source, GaimInputCondition cond)
 {
-	MsnServConn *servconn;
+	MsnServConn *servconn = data;
 
 	servconn = data;
 	servconn->connect_data = NULL;
@@ -203,6 +203,7 @@
 msn_servconn_connect(MsnServConn *servconn, const char *host, int port)
 {
 	MsnSession *session;
+	int r;
 
 	g_return_val_if_fail(servconn != NULL, FALSE);
 	g_return_val_if_fail(host     != NULL, FALSE);
@@ -240,9 +241,9 @@
 	{
 		servconn->processing = TRUE;
 		return TRUE;
+	}else{
+		return FALSE;
 	}
-	else
-		return FALSE;
 }
 
 void
@@ -435,14 +436,12 @@
 
 		servconn->rx_len -= cur_len;
 
-		if (servconn->payload_len)
-		{
+		if (servconn->payload_len){
 			msn_cmdproc_process_payload(servconn->cmdproc, cur, cur_len);
 			servconn->payload_len = 0;
-		}
-		else
-		{
+		}else{
 			msn_cmdproc_process_cmd_text(servconn->cmdproc, cur);
+			servconn->payload_len = servconn->cmdproc->last_cmd->payload_len;
 		}
 	} while (servconn->connected && !servconn->wasted && servconn->rx_len > 0);