Mercurial > pidgin.yaz
diff src/server.c @ 447:5db3734a1fe6
[gaim-migrate @ 457]
Attempting to reduce amount of messages sent when setting up buddy list.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Fri, 30 Jun 2000 03:45:03 +0000 |
parents | 0d4e80bdb96b |
children | 6a92cd7322cc |
line wrap: on
line diff
--- a/src/server.c Fri Jun 30 02:35:56 2000 +0000 +++ b/src/server.c Fri Jun 30 03:45:03 2000 +0000 @@ -296,34 +296,35 @@ void serv_add_buddies(GList *buddies) { if (!USE_OSCAR) { - char buf[MSG_LEN]; - int n, num = 0; + char buf[MSG_LEN]; + int n, num = 0; - n = g_snprintf(buf, sizeof(buf), "toc_add_buddy"); - while(buddies) { - if (num == 20) { - sflap_send(buf, -1, TYPE_DATA); - n = g_snprintf(buf, sizeof(buf), "toc_add_buddy"); - num = 0; - } - ++num; - n += g_snprintf(buf + n, sizeof(buf) - n, " %s", normalize(buddies->data)); - buddies = buddies->next; - } - sflap_send(buf, -1, TYPE_DATA); + n = g_snprintf(buf, sizeof(buf), "toc_add_buddy"); + while(buddies) { + /* i don't know why we choose 8, it just seems good */ + if (strlen(normalize(buddies->data)) > MSG_LEN - n - 8) { + sflap_send(buf, -1, TYPE_DATA); + n = g_snprintf(buf, sizeof(buf), "toc_add_buddy"); + num = 0; + } + ++num; + n += g_snprintf(buf + n, sizeof(buf) - n, " %s", normalize(buddies->data)); + buddies = buddies->next; + } + sflap_send(buf, -1, TYPE_DATA); } else { - char buf[MSG_LEN]; - int n = 0; - while(buddies) { - if (n > MSG_LEN - 18) { - aim_bos_setbuddylist(gaim_sess, gaim_conn, buf); - n = 0; + char buf[MSG_LEN]; + int n = 0; + while(buddies) { + if (n > MSG_LEN - 18) { + aim_bos_setbuddylist(gaim_sess, gaim_conn, buf); + n = 0; + } + n += g_snprintf(buf + n, sizeof(buf) - n, "%s&", + (char *)buddies->data); + buddies = buddies->next; } - n += g_snprintf(buf + n, sizeof(buf) - n, "%s&", - (char *)buddies->data); - buddies = buddies->next; - } - aim_bos_setbuddylist(gaim_sess, gaim_conn, buf); + aim_bos_setbuddylist(gaim_sess, gaim_conn, buf); } }