diff -r 368deff13c21 -r 9fae31173eb3 protocols/demo/purpledemoprotocolactions.c --- a/protocols/demo/purpledemoprotocolactions.c Fri Oct 04 00:48:33 2024 -0500 +++ b/protocols/demo/purpledemoprotocolactions.c Fri Oct 04 01:08:05 2024 -0500 @@ -42,6 +42,7 @@ const char *disconnect_str) { PurpleConnection *connection = PURPLE_CONNECTION(data); + PurpleConnectionErrorInfo *error_info = NULL; PurpleAccount *account = purple_connection_get_account(connection); char *message = NULL; int timeout = 0; @@ -74,9 +75,12 @@ } message = g_strdup_printf(_(disconnect_str), REAPER_BUDDY_NAME); - purple_connection_error(connection, error_code, message); + error_info = purple_connection_error_info_new(error_code, message); g_free(message); + purple_account_set_error(account, error_info); + purple_account_disconnect(account); + return G_SOURCE_REMOVE; }