Mercurial > pidgin
comparison libpurple/protocols/oscar/oscar_data.c @ 23576:a73d527731ff
To decrease the odds of hitting the rate limit ceiling rapidly on a
buddy list with a large number of ICQ buddies, space out our requests
for the ICQ Status Note. This has 2 beneficial effects:
1. Request notes over a longer period of time, avoiding hitting the rate
limit immediately.
2. Coalesce multiple requests for the same note into a single request.
Previously, we were making n*2 to n*4 requests, where n is the number
of ICQ contacts with status notes, at signon, as purple_parse_oncoming
is called multiple times for each one.
author | Evan Schoenberg <evan.s@dreskin.net> |
---|---|
date | Sun, 20 Jul 2008 22:19:10 +0000 |
parents | 1728c7414856 |
children | a270bd4b5298 |
comparison
equal
deleted
inserted
replaced
23575:e53a21941d43 | 23576:a73d527731ff |
---|---|
90 { | 90 { |
91 gchar *sn = od->requesticon->data; | 91 gchar *sn = od->requesticon->data; |
92 od->requesticon = g_slist_remove(od->requesticon, sn); | 92 od->requesticon = g_slist_remove(od->requesticon, sn); |
93 g_free(sn); | 93 g_free(sn); |
94 } | 94 } |
95 while (od->statusnotes_queue) | |
96 { | |
97 gchar *sn = od->statusnotes_queue->data; | |
98 od->statusnotes_queue = g_slist_remove(od->statusnotes_queue, sn); | |
99 g_free(sn); | |
100 } | |
101 if (od->statusnotes_queue_timer) | |
102 purple_timeout_remove(od->statusnotes_queue_timer); | |
95 g_free(od->email); | 103 g_free(od->email); |
96 g_free(od->newp); | 104 g_free(od->newp); |
97 g_free(od->oldp); | 105 g_free(od->oldp); |
98 if (od->getblisttimer > 0) | 106 if (od->getblisttimer > 0) |
99 purple_timeout_remove(od->getblisttimer); | 107 purple_timeout_remove(od->getblisttimer); |