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