libpurple/protocols/irc/irc.c

branch
release-2.3.1
changeset 21736
8de85200908d
parent 21503
b3cad646ba4a
child 22069
841d24b3a2bc
child 22277
7c386db62c81
equal deleted inserted replaced
21735:bb49da9915a6 21736:8de85200908d
182 } 182 }
183 183
184 /* XXX I don't like messing directly with these buddies */ 184 /* XXX I don't like messing directly with these buddies */
185 gboolean irc_blist_timeout(struct irc_conn *irc) 185 gboolean irc_blist_timeout(struct irc_conn *irc)
186 { 186 {
187 GString *string = g_string_sized_new(512); 187 GString *string;
188 char *list, *buf; 188 char *list, *buf;
189
190 if (irc->ison_outstanding)
191 return TRUE;
192
193 string = g_string_sized_new(512);
189 194
190 g_hash_table_foreach(irc->buddies, (GHFunc)irc_buddy_append, (gpointer)string); 195 g_hash_table_foreach(irc->buddies, (GHFunc)irc_buddy_append, (gpointer)string);
191 196
192 list = g_string_free(string, FALSE); 197 list = g_string_free(string, FALSE);
193 if (!list || !strlen(list)) { 198 if (!list || !strlen(list)) {
197 202
198 buf = irc_format(irc, "vn", "ISON", list); 203 buf = irc_format(irc, "vn", "ISON", list);
199 g_free(list); 204 g_free(list);
200 irc_send(irc, buf); 205 irc_send(irc, buf);
201 g_free(buf); 206 g_free(buf);
207
208 irc->ison_outstanding = TRUE;
202 209
203 return TRUE; 210 return TRUE;
204 } 211 }
205 212
206 static void irc_buddy_append(char *name, struct irc_buddy *ib, GString *string) 213 static void irc_buddy_append(char *name, struct irc_buddy *ib, GString *string)

mercurial