Mercurial > pidgin
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);