--- a/libpurple/protocols/irc/irc.c Mon May 28 15:41:02 2018 -0500
+++ b/libpurple/protocols/irc/irc.c Mon Jun 19 20:18:30 2017 -0500
@@ -96,16 +96,19 @@
-irc_flush_cb(GObject *source, GAsyncResult *res, gpointer data)
+irc_push_bytes_cb(GObject *source, GAsyncResult *res, gpointer data) + PurpleQueuedOutputStream *stream = PURPLE_QUEUED_OUTPUT_STREAM(source); PurpleConnection *gc = data;
- result = g_output_stream_flush_finish(G_OUTPUT_STREAM(source),
+ result = purple_queued_output_stream_push_bytes_finish(stream, + purple_queued_output_stream_clear_queue(stream); g_prefix_error(&error, _("Lost connection with server: "));
purple_connection_take_error(gc, error);
@@ -137,17 +140,11 @@
data = g_bytes_new_take(tosend, len);
- purple_queued_output_stream_push_bytes(irc->output, data);
+ purple_queued_output_stream_push_bytes_async(irc->output, data, + G_PRIORITY_DEFAULT, irc->cancellable, irc_push_bytes_cb, + purple_account_get_connection(irc->account)); - if (!g_output_stream_has_pending(G_OUTPUT_STREAM(irc->output))) {
- /* Connection idle. Flush data. */
- g_output_stream_flush_async(G_OUTPUT_STREAM(irc->output),
- G_PRIORITY_DEFAULT, irc->cancellable,
- purple_account_get_connection(irc->account));