/pidgin/main: 1c33866c1ae9: irc: Use new purple_gio_graceful_clo...

Mike Ruprecht <[email protected]> Sun, 28 Aug 2016 23:58:01 -0400
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 1c33866c1ae9f85090cc50bde6753b5915e9b445
Author:	 Mike Ruprecht <[email protected]>
Date:	 2016-08-26 00:00 -0500
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/1c33866c1ae9

Description:

irc: Use new purple_gio_graceful_close() function

This fixes an assertion in the GTlsConnectionGnutls object by closing
connections more nicely. See purple_gio_graceful_close() and the commit
it was added in for more details.

diffstat:

 libpurple/protocols/irc/irc.c |  20 ++++++++------------
 1 files changed, 8 insertions(+), 12 deletions(-)

diffs (40 lines):

diff --git a/libpurple/protocols/irc/irc.c b/libpurple/protocols/irc/irc.c
--- a/libpurple/protocols/irc/irc.c
+++ b/libpurple/protocols/irc/irc.c
@@ -32,6 +32,7 @@
 #include "notify.h"
 #include "protocol.h"
 #include "plugins.h"
+#include "purple-gio.h"
 #include "tls-certificate.h"
 #include "util.h"
 #include "version.h"
@@ -460,21 +461,16 @@ static void irc_close(PurpleConnection *
 		g_clear_object(&irc->cancellable);
 	}
 
+	if (irc->conn != NULL) {
+		purple_gio_graceful_close(G_IO_STREAM(irc->conn),
+				G_INPUT_STREAM(irc->input),
+				G_OUTPUT_STREAM(irc->output));
+	}
+
 	g_clear_object(&irc->input);
 	g_clear_object(&irc->output);
+	g_clear_object(&irc->conn);
 
-	if (irc->conn != NULL) {
-		GError *error = NULL;
-
-		if (!g_io_stream_close(G_IO_STREAM(irc->conn), NULL, &error)) {
-			purple_debug_warning("irc",
-					"Error closing connection: %s",
-					error->message);
-			g_clear_error(&error);
-		}
-
-		g_clear_object(&irc->conn);
-	}
 	if (irc->timer)
 		purple_timeout_remove(irc->timer);
 	g_hash_table_destroy(irc->cmds);

_______________________________________________
Commits mailing list
[email protected]
https://pidgin.im/cgi-bin/mailman/listinfo/commits