| 609 |
609 |
| 610 /* Remove all the IQ callbacks for this connection */ |
610 /* Remove all the IQ callbacks for this connection */ |
| 611 g_hash_table_foreach_remove(iq_callbacks, remove_iq_callbacks_by_pc, pc); |
611 g_hash_table_foreach_remove(iq_callbacks, remove_iq_callbacks_by_pc, pc); |
| 612 } |
612 } |
| 613 |
613 |
| 614 static PidginPluginInfo * |
614 static GPluginPluginInfo * |
| 615 plugin_query(GError **error) |
615 xmpp_disco_query(GError **error) |
| 616 { |
616 { |
| 617 const gchar * const authors[] = { |
617 const gchar * const authors[] = { |
| 618 "Paul Aurich <paul@darkrain42.org>", |
618 "Paul Aurich <paul@darkrain42.org>", |
| 619 NULL |
619 NULL |
| 620 }; |
620 }; |
| 660 |
660 |
| 661 return TRUE; |
661 return TRUE; |
| 662 } |
662 } |
| 663 |
663 |
| 664 static gboolean |
664 static gboolean |
| 665 plugin_unload(PurplePlugin *plugin, GError **error) |
665 xmpp_disco_unload(GPluginPlugin *plugin, GError **error) |
| 666 { |
666 { |
| 667 g_hash_table_destroy(iq_callbacks); |
667 g_hash_table_destroy(iq_callbacks); |
| 668 iq_callbacks = NULL; |
668 iq_callbacks = NULL; |
| 669 |
669 |
| 670 purple_signals_disconnect_by_handle(plugin); |
670 purple_signals_disconnect_by_handle(plugin); |
| 671 pidgin_disco_dialogs_destroy_all(); |
671 pidgin_disco_dialogs_destroy_all(); |
| 672 |
672 |
| 673 return TRUE; |
673 return TRUE; |
| 674 } |
674 } |
| 675 |
675 |
| 676 PURPLE_PLUGIN_INIT(xmppdisco, plugin_query, plugin_load, plugin_unload); |
676 GPLUGIN_NATIVE_PLUGIN_DECLARE(xmpp_disco) |