Mercurial > pidgin
changeset 15316:a92c64f06995
[gaim-migrate @ 18107]
Have a little more patience for non-acked packets and then quietly drop them. Temporary solution.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Huetsch <markhuetsch> |
---|---|
date | Thu, 11 Jan 2007 07:43:03 +0000 |
parents | 28051164843c |
children | d928cf5ead1b |
files | libgaim/protocols/qq/sendqueue.c |
diffstat | 1 files changed, 6 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/libgaim/protocols/qq/sendqueue.c Thu Jan 11 07:42:51 2007 +0000 +++ b/libgaim/protocols/qq/sendqueue.c Thu Jan 11 07:43:03 2007 +0000 @@ -33,7 +33,7 @@ #include "qq_proxy.h" #include "sendqueue.h" -#define QQ_RESEND_MAX 5 /* max resend per packet */ +#define QQ_RESEND_MAX 8 /* max resend per packet */ typedef struct _gc_and_packet gc_and_packet; @@ -78,8 +78,9 @@ gaim_debug(GAIM_DEBUG_INFO, "QQ", "%d packets in sendqueue are freed!\n", i); } -/* TODO drop get buddy list if we don't know about any buddies... - * I think the server won't ACK a get buddies request if we have none */ +/* FIXME We shouldn't be dropping packets, but for now we have to because + * somewhere we're generating invalid packets that the server won't ack. + * Given enough time, a buildup of those packets would crash the client. */ gboolean qq_sendqueue_timeout_callback(gpointer data) { GaimConnection *gc; @@ -131,10 +132,10 @@ break; default:{ gaim_debug(GAIM_DEBUG_WARNING, "QQ", - "%s packet sent %d times but not acked. Resetting sendqueue life\n", + "%s packet sent %d times but not acked. Not resending it.\n", qq_get_cmd_desc(p->cmd), QQ_RESEND_MAX); } - p->resend_times = 0; + p->resend_times = -1; } } else { /* resend_times < QQ_RESEND_MAX, so sent it again */ wait_time = (gint) (QQ_SENDQUEUE_TIMEOUT / 1000);