Mercurial > pidgin.yaz
comparison libpurple/protocols/irc/irc.c @ 31697:90bff83c91cf
disapproval of revision '22937ab220c41cd0c4a3f9e21e3db687db80da75'
author | Evan Schoenberg <evan.s@dreskin.net> |
---|---|
date | Mon, 21 Feb 2011 22:56:00 +0000 |
parents | 167ea4b4765c |
children | d72d728226dc |
comparison
equal
deleted
inserted
replaced
31686:167ea4b4765c | 31697:90bff83c91cf |
---|---|
39 | 39 |
40 #define PING_TIMEOUT 60 | 40 #define PING_TIMEOUT 60 |
41 | 41 |
42 static void irc_ison_buddy_init(char *name, struct irc_buddy *ib, GList **list); | 42 static void irc_ison_buddy_init(char *name, struct irc_buddy *ib, GList **list); |
43 | 43 |
44 static void irc_who_channel(PurpleConversation *conv, struct irc_conn *irc); | |
45 | |
46 static const char *irc_blist_icon(PurpleAccount *a, PurpleBuddy *b); | 44 static const char *irc_blist_icon(PurpleAccount *a, PurpleBuddy *b); |
47 static GList *irc_status_types(PurpleAccount *account); | 45 static GList *irc_status_types(PurpleAccount *account); |
48 static GList *irc_actions(PurplePlugin *plugin, gpointer context); | 46 static GList *irc_actions(PurplePlugin *plugin, gpointer context); |
49 /* static GList *irc_chat_info(PurpleConnection *gc); */ | 47 /* static GList *irc_chat_info(PurpleConnection *gc); */ |
50 static void irc_login(PurpleAccount *account); | 48 static void irc_login(PurpleAccount *account); |
232 static void irc_ison_buddy_init(char *name, struct irc_buddy *ib, GList **list) | 230 static void irc_ison_buddy_init(char *name, struct irc_buddy *ib, GList **list) |
233 { | 231 { |
234 *list = g_list_append(*list, ib); | 232 *list = g_list_append(*list, ib); |
235 } | 233 } |
236 | 234 |
237 | |
238 gboolean irc_who_channel_timeout(struct irc_conn *irc) | |
239 { | |
240 // WHO all of our channels. | |
241 g_list_foreach(purple_get_conversations(), (GFunc)irc_who_channel, (gpointer)irc); | |
242 | |
243 return TRUE; | |
244 } | |
245 | |
246 static void irc_who_channel(PurpleConversation *conv, struct irc_conn *irc) | |
247 { | |
248 if (purple_conversation_get_account(conv) == irc->account && purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) { | |
249 char *buf = irc_format(irc, "vc", "WHO", purple_conversation_get_name(conv)); | |
250 | |
251 purple_debug(PURPLE_DEBUG_INFO, "irc", "Performing periodic who on %s", purple_conversation_get_name(conv)); | |
252 irc_send(irc, buf); | |
253 g_free(buf); | |
254 } | |
255 } | |
256 | |
257 static void irc_ison_one(struct irc_conn *irc, struct irc_buddy *ib) | 235 static void irc_ison_one(struct irc_conn *irc, struct irc_buddy *ib) |
258 { | 236 { |
259 char *buf; | 237 char *buf; |
260 | 238 |
261 if (irc->buddies_outstanding != NULL) { | 239 if (irc->buddies_outstanding != NULL) { |
537 } else if (irc->fd >= 0) { | 515 } else if (irc->fd >= 0) { |
538 close(irc->fd); | 516 close(irc->fd); |
539 } | 517 } |
540 if (irc->timer) | 518 if (irc->timer) |
541 purple_timeout_remove(irc->timer); | 519 purple_timeout_remove(irc->timer); |
542 if (irc->who_channel_timer) | |
543 purple_timeout_remove(irc->who_channel_timer); | |
544 g_hash_table_destroy(irc->cmds); | 520 g_hash_table_destroy(irc->cmds); |
545 g_hash_table_destroy(irc->msgs); | 521 g_hash_table_destroy(irc->msgs); |
546 g_hash_table_destroy(irc->buddies); | 522 g_hash_table_destroy(irc->buddies); |
547 if (irc->motd) | 523 if (irc->motd) |
548 g_string_free(irc->motd, TRUE); | 524 g_string_free(irc->motd, TRUE); |