libpurple/protocols/msn/servconn.c

changeset 28641
6c744490832a
parent 27905
a50992124f03
child 28644
7e62a6f19d38
--- a/libpurple/protocols/msn/servconn.c	Thu Oct 08 18:12:06 2009 +0000
+++ b/libpurple/protocols/msn/servconn.c	Thu Oct 08 18:14:41 2009 +0000
@@ -440,11 +440,12 @@
 	memcpy(servconn->rx_buf + servconn->rx_len, buf, len + 1);
 	servconn->rx_len += len;
 
-	msn_servconn_process_data(servconn);
-	servconn_timeout_renew(servconn);
+	servconn = msn_servconn_process_data(servconn);
+	if (servconn)
+		servconn_timeout_renew(servconn);
 }
 
-void msn_servconn_process_data(MsnServConn *servconn)
+MsnServConn *msn_servconn_process_data(MsnServConn *servconn)
 {
 	char *cur, *end, *old_rx_buf;
 	int cur_len;
@@ -503,10 +504,13 @@
 
 	servconn->processing = FALSE;
 
-	if (servconn->wasted)
+	if (servconn->wasted) {
 		msn_servconn_destroy(servconn);
+		servconn = NULL;
+	}
 
 	g_free(old_rx_buf);
+	return servconn;
 }
 
 #if 0

mercurial