ircv3: Remove redundant account disconnection

Thu, 30 Jan 2025 23:59:09 -0600

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Thu, 30 Jan 2025 23:59:09 -0600
changeset 43165
201c799d4e6f
parent 43164
7709065d96eb
child 43166
d8bfc7d382e2

ircv3: Remove redundant account disconnection

If an `error` is set on the `IbisClient`, then the `notify::error` handler `purple_ircv3_connection_error_cb` will disconnect the account with that error.

So in `purple_ircv3_message_handler_error_cb`, pass the error to `ibis_client_stop`. This shouldn't change anything except remove the duplicate implementation of disconnecting the account.

Testing Done:
Compiled and turtles only. I did try `PIDGIN-18031`, but it didn't fix it.

Reviewed at https://reviews.imfreedom.org/r/3794/

protocols/ircv3/purpleircv3messagehandlers.c file | annotate | diff | comparison | revisions
--- a/protocols/ircv3/purpleircv3messagehandlers.c	Thu Jan 30 22:25:41 2025 -0600
+++ b/protocols/ircv3/purpleircv3messagehandlers.c	Thu Jan 30 23:59:09 2025 -0600
@@ -717,15 +717,11 @@
                                    gpointer data)
 {
 	PurpleIRCv3Connection *v3_connection = data;
-	PurpleAccount *account = NULL;
-	PurpleConnection *connection = data;
 	GError *error = NULL;
 	GStrv params = NULL;
 	guint n_params = 0;
 	char *reason = NULL;
 
-	account = purple_connection_get_account(connection);
-
 	params = ibis_message_get_params(ibis_message);
 	n_params = g_strv_length(params);
 
@@ -741,9 +737,7 @@
 	error = g_error_new_literal(PURPLE_IRCV3_DOMAIN, 0, reason);
 	g_clear_pointer(&reason, g_free);
 
-	ibis_client_stop(client, NULL);
-
-	purple_account_disconnect_with_error(account, error);
+	ibis_client_stop(client, error);
 
 	return TRUE;
 }

mercurial