--- a/libpurple/protocols/ircv3/purpleircv3core.c Sat Jul 01 01:52:29 2023 -0500 +++ b/libpurple/protocols/ircv3/purpleircv3core.c Sat Jul 01 02:01:14 2023 -0500 @@ -58,6 +58,7 @@ "website", PURPLE_WEBSITE, "abi-version", PURPLE_ABI_VERSION, "flags", flags, + "bind-global", TRUE, NULL); } @@ -76,13 +77,16 @@ purple_ircv3_connection_register(GPLUGIN_NATIVE_PLUGIN(plugin)); purple_ircv3_protocol_register(GPLUGIN_NATIVE_PLUGIN(plugin)); - manager = purple_protocol_manager_get_default(); + ircv3_protocol = purple_ircv3_protocol_new(); - ircv3_protocol = purple_ircv3_protocol_new(); - if(!purple_protocol_manager_register(manager, ircv3_protocol, error)) { - g_clear_object(&ircv3_protocol); + manager = purple_protocol_manager_get_default(); + /* Manager can be NULL when we're generating the GIR stuff. */ + if(PURPLE_IS_PROTOCOL_MANAGER(manager)) { + if(!purple_protocol_manager_register(manager, ircv3_protocol, error)) { + g_clear_object(&ircv3_protocol); - return FALSE; + return FALSE; + } } return TRUE; @@ -103,8 +107,13 @@ } manager = purple_protocol_manager_get_default(); - if(!purple_protocol_manager_unregister(manager, ircv3_protocol, error)) { - return FALSE; + /* Manager can be NULL when we're generating the GIR stuff. */ + if(PURPLE_IS_PROTOCOL_MANAGER(manager)) { + if(!purple_protocol_manager_unregister(manager, ircv3_protocol, + error)) + { + return FALSE; + } } g_clear_object(&ircv3_protocol);