diff libgaim/protocols/qq/recv_core.c @ 14195:902c3aa4950a

[gaim-migrate @ 16867] Revamped the QQ proxy code. Fixed an infinite loop that was occurring if we hit qq_input_pending() with an unexpected value of cond. Rewrote part of qq_proxy.c so that we use Gaim's non-blocking dns lookups. Quieted some warnings created by new code in proxy.c and passed appropriate error messages to _qq_got_login(). Added some extra error handling to qq_proxy_write(). I was beginning to do major clean-up on this this code when I realized that once that clean-up is done, I will have duplicated a very large amount of code from proxy.c. Therefore, I am submitting this working code now and will later submit a patch to gaim-devel that will add support for UDP proxying in proxy.c, thus eliminating the need for such code in the individual prpls. committer: Tailor Script <tailor@pidgin.im>
author Mark Huetsch <markhuetsch>
date Sat, 19 Aug 2006 02:32:55 +0000
parents 60b1bc8dbf37
children 26bca01c7076
line wrap: on
line diff
--- a/libgaim/protocols/qq/recv_core.c	Sat Aug 19 02:26:57 2006 +0000
+++ b/libgaim/protocols/qq/recv_core.c	Sat Aug 19 02:32:55 2006 +0000
@@ -296,7 +296,10 @@
 	gint len;
 
 	gc = (GaimConnection *) data;
-	g_return_if_fail(gc != NULL && gc->proto_data != NULL && cond == GAIM_INPUT_READ);
+	if(gc == NULL || gc->proto_data == NULL || cond != GAIM_INPUT_READ) {
+		gaim_connection_error(gc, _("Socket error"));
+		return;
+	}
 
 	qd = (qq_data *) gc->proto_data;
 	buf = g_newa(guint8, MAX_PACKET_SIZE);