Convert all of the protocols to use the new protocol_manager_ api
Testing Done:
Compiled and ran locally. Verified all protocol plugins showed up and that there were no errors on shutdown.
Bugs closed: PIDGIN-17474
Reviewed at https://reviews.imfreedom.org/r/537/
--- a/libpurple/protocols/bonjour/bonjour.c Sun Feb 28 22:05:06 2021 -0600
+++ b/libpurple/protocols/bonjour/bonjour.c Tue Mar 02 22:50:02 2021 -0600
@@ -755,13 +755,18 @@
plugin_load(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); bonjour_protocol_register_type(G_TYPE_MODULE(plugin));
xep_xfer_register(G_TYPE_MODULE(plugin));
- my_protocol = purple_protocols_add(BONJOUR_TYPE_PROTOCOL, error);
+ my_protocol = g_object_new(BONJOUR_TYPE_PROTOCOL, NULL); + if(!purple_protocol_manager_register(manager, my_protocol, error)) { + g_clear_object(&my_protocol); initialize_default_account_values();
@@ -771,8 +776,13 @@
plugin_unload(PurplePlugin *plugin, GError **error)
- if (!purple_protocols_remove(my_protocol, error))
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); + if(!purple_protocol_manager_unregister(manager, my_protocol, error)) { + g_clear_object(&my_protocol); g_free(default_firstname);
g_free(default_lastname);
--- a/libpurple/protocols/facebook/facebook.c Sun Feb 28 22:05:06 2021 -0600
+++ b/libpurple/protocols/facebook/facebook.c Tue Mar 02 22:50:02 2021 -0600
@@ -1689,10 +1689,14 @@
plugin_load(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); facebook_protocol_register_type(G_TYPE_MODULE(plugin));
- fb_protocol = purple_protocols_add(FACEBOOK_TYPE_PROTOCOL, error);
+ fb_protocol = g_object_new(FACEBOOK_TYPE_PROTOCOL, NULL); - if (fb_protocol == NULL) {
+ if(!purple_protocol_manager_register(manager, fb_protocol, error)) { + g_clear_object(&fb_protocol); @@ -1703,8 +1707,17 @@
plugin_unload(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); + if(!purple_protocol_manager_unregister(manager, fb_protocol, error)) { - return purple_protocols_remove(fb_protocol, error);
+ g_clear_object(&fb_protocol); PURPLE_PLUGIN_INIT(facebook, plugin_query, plugin_load, plugin_unload);
--- a/libpurple/protocols/gg/gg.c Sun Feb 28 22:05:06 2021 -0600
+++ b/libpurple/protocols/gg/gg.c Tue Mar 02 22:50:02 2021 -0600
@@ -1218,13 +1218,18 @@
plugin_load(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); ggp_protocol_register_type(G_TYPE_MODULE(plugin));
ggp_xfer_register(G_TYPE_MODULE(plugin));
- my_protocol = purple_protocols_add(GGP_TYPE_PROTOCOL, error);
+ my_protocol = g_object_new(GGP_TYPE_PROTOCOL, NULL); + if(!purple_protocol_manager_register(manager, my_protocol, error)) { + g_clear_object(&my_protocol); purple_prefs_add_none("/plugins/prpl/gg");
@@ -1246,6 +1251,12 @@
plugin_unload(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); + if(!purple_protocol_manager_unregister(manager, my_protocol, error)) { purple_signal_disconnect(purple_get_core(), "uri-handler", plugin,
PURPLE_CALLBACK(gg_uri_handler));
@@ -1254,8 +1265,7 @@
ggp_message_cleanup_global();
- if (!purple_protocols_remove(my_protocol, error))
+ g_clear_object(&my_protocol); --- a/libpurple/protocols/irc/irc.c Sun Feb 28 22:05:06 2021 -0600
+++ b/libpurple/protocols/irc/irc.c Tue Mar 02 22:50:02 2021 -0600
@@ -1128,13 +1128,18 @@
plugin_load(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); irc_protocol_register_type(G_TYPE_MODULE(plugin));
irc_xfer_register(G_TYPE_MODULE(plugin));
- _irc_protocol = purple_protocols_add(IRC_TYPE_PROTOCOL, error);
+ _irc_protocol = g_object_new(IRC_TYPE_PROTOCOL, NULL); + if(!purple_protocol_manager_register(manager, _irc_protocol, error)) { + g_clear_object(&_irc_protocol); purple_prefs_remove("/plugins/prpl/irc/quitmsg");
purple_prefs_remove("/plugins/prpl/irc");
@@ -1159,13 +1164,18 @@
plugin_unload(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); + if(!purple_protocol_manager_unregister(manager, _irc_protocol, error)) { irc_unregister_commands();
purple_signal_disconnect(purple_get_core(), "uri-handler", plugin,
PURPLE_CALLBACK(irc_uri_handler));
- if (!purple_protocols_remove(_irc_protocol, error))
+ g_clear_object(&_irc_protocol); --- a/libpurple/protocols/jabber/jabber.c Sun Feb 28 22:05:06 2021 -0600
+++ b/libpurple/protocols/jabber/jabber.c Tue Mar 02 22:50:02 2021 -0600
@@ -4283,6 +4283,8 @@
plugin_load(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); jingle_session_register(plugin);
jingle_transport_register(plugin);
@@ -4300,9 +4302,12 @@
jabber_si_xfer_register(G_TYPE_MODULE(plugin));
- xmpp_protocol = purple_protocols_add(XMPP_TYPE_PROTOCOL, error);
+ xmpp_protocol = g_object_new(XMPP_TYPE_PROTOCOL, NULL); + if(!purple_protocol_manager_register(manager, xmpp_protocol, error)) { + g_clear_object(&xmpp_protocol); purple_signal_connect(purple_get_core(), "uri-handler", xmpp_protocol,
PURPLE_CALLBACK(xmpp_uri_handler), xmpp_protocol);
@@ -4315,13 +4320,18 @@
plugin_unload(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); + if(!purple_protocol_manager_unregister(manager, xmpp_protocol, error)) { purple_signal_disconnect(purple_get_core(), "uri-handler",
xmpp_protocol, PURPLE_CALLBACK(xmpp_uri_handler));
jabber_uninit_protocol(xmpp_protocol);
- if (!purple_protocols_remove(xmpp_protocol, error))
+ g_clear_object(&xmpp_protocol); --- a/libpurple/protocols/novell/novell.c Sun Feb 28 22:05:06 2021 -0600
+++ b/libpurple/protocols/novell/novell.c Tue Mar 02 22:50:02 2021 -0600
@@ -3628,11 +3628,16 @@
plugin_load(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); novell_protocol_register_type(G_TYPE_MODULE(plugin));
- my_protocol = purple_protocols_add(NOVELL_TYPE_PROTOCOL, error);
+ my_protocol = g_object_new(NOVELL_TYPE_PROTOCOL, NULL); + if(!purple_protocol_manager_register(manager, my_protocol, error)) { + g_clear_object(&my_protocol); @@ -3640,8 +3645,13 @@
plugin_unload(PurplePlugin *plugin, GError **error)
- if (!purple_protocols_remove(my_protocol, error))
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); + if(!purple_protocol_manager_unregister(manager, my_protocol, error)) { + g_clear_object(&my_protocol); --- a/libpurple/protocols/null/nullprpl.c Sun Feb 28 22:05:06 2021 -0600
+++ b/libpurple/protocols/null/nullprpl.c Tue Mar 02 22:50:02 2021 -0600
@@ -1223,14 +1223,19 @@
plugin_load(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); /* register the NULL_TYPE_PROTOCOL type in the type system. this function
* is defined by G_DEFINE_DYNAMIC_TYPE_EXTENDED. */
null_protocol_register_type(G_TYPE_MODULE(plugin));
/* add the protocol to the core */
- my_protocol = purple_protocols_add(NULL_TYPE_PROTOCOL, error);
+ my_protocol = g_object_new(NULL_TYPE_PROTOCOL, NULL); + if(!purple_protocol_manager_register(manager, my_protocol, error)) { + g_clear_object(&my_protocol); purple_debug_info("nullprpl", "starting up\n");
@@ -1246,11 +1251,16 @@
plugin_unload(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); purple_debug_info("nullprpl", "shutting down\n");
/* remove the protocol from the core */
- if (!purple_protocols_remove(my_protocol, error))
+ if(!purple_protocol_manager_unregister(manager, my_protocol, error)) { + g_clear_object(&my_protocol); --- a/libpurple/protocols/sametime/sametime.c Sun Feb 28 22:05:06 2021 -0600
+++ b/libpurple/protocols/sametime/sametime.c Tue Mar 02 22:50:02 2021 -0600
@@ -5393,6 +5393,7 @@
plugin_load(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); GLogLevelFlags logflags =
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION;
@@ -5400,9 +5401,12 @@
mw_xfer_register_type(G_TYPE_MODULE(plugin));
- my_protocol = purple_protocols_add(MW_TYPE_PROTOCOL, error);
+ my_protocol = g_object_new(MW_TYPE_PROTOCOL, NULL); + if(!purple_protocol_manager_register(manager, my_protocol, error)) { + g_clear_object(&my_protocol); /* forward all our g_log messages to purple. Generally all the logging
calls are using purple_log directly, but the g_return macros will
@@ -5423,13 +5427,18 @@
plugin_unload(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); + if(!purple_protocol_manager_unregister(manager, my_protocol, error)) { g_log_remove_handler(G_LOG_DOMAIN, log_handler[0]);
g_log_remove_handler("meanwhile", log_handler[1]);
- if (!purple_protocols_remove(my_protocol, error))
+ g_clear_object(&my_protocol); --- a/libpurple/protocols/silc/silc.c Sun Feb 28 22:05:06 2021 -0600
+++ b/libpurple/protocols/silc/silc.c Tue Mar 02 22:50:02 2021 -0600
@@ -2339,13 +2339,18 @@
plugin_load(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); silcpurple_protocol_register_type(G_TYPE_MODULE(plugin));
silcpurple_xfer_register(G_TYPE_MODULE(plugin));
- my_protocol = purple_protocols_add(SILCPURPLE_TYPE_PROTOCOL, error);
+ my_protocol = g_object_new(SILCPURPLE_TYPE_PROTOCOL, NULL); + if(!purple_protocol_manager_register(manager, my_protocol, error)) { + g_clear_object(&my_protocol); purple_prefs_remove("/plugins/prpl/silc");
@@ -2358,10 +2363,15 @@
plugin_unload(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); + if(!purple_protocol_manager_unregister(manager, my_protocol, error)) { silcpurple_unregister_commands();
- if (!purple_protocols_remove(my_protocol, error))
+ g_clear_object(&my_protocol); --- a/libpurple/protocols/zephyr/zephyr.c Sun Feb 28 22:05:06 2021 -0600
+++ b/libpurple/protocols/zephyr/zephyr.c Tue Mar 02 22:50:02 2021 -0600
@@ -1709,11 +1709,16 @@
plugin_load(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); zephyr_protocol_register_type(G_TYPE_MODULE(plugin));
- my_protocol = purple_protocols_add(ZEPHYR_TYPE_PROTOCOL, error);
+ my_protocol = g_object_new(ZEPHYR_TYPE_PROTOCOL, NULL); + if(!purple_protocol_manager_register(manager, my_protocol, error)) { + g_clear_object(&my_protocol); zephyr_register_slash_commands();
@@ -1724,10 +1729,15 @@
plugin_unload(PurplePlugin *plugin, GError **error)
+ PurpleProtocolManager *manager = purple_protocol_manager_get_default(); + if(!purple_protocol_manager_unregister(manager, my_protocol, error)) { zephyr_unregister_slash_commands();
- if (!purple_protocols_remove(my_protocol, error))
+ g_clear_object(&my_protocol);