File 48b3b611.patch of Package libsoup2

From 48b3b61154389b377f6cd20ea72e57b62c9256e8 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@endlessos.org>
Date: Thu, 13 Apr 2023 12:32:04 +0100
Subject: [PATCH] lib: Add names to various GSources
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This helps in identifying what’s attached to a `GMainContext` when
debugging runtime problems with libsoup.

The names added in `soup-misc.c` are fairly rough; if they turn out to
not be specific enough, those methods could be changed to accept a
`const gchar *name` argument so the caller can provide a more specific
name.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
---
 libsoup/soup-message-io.c           |  4 ++++
 libsoup/soup-misc.c                 | 20 ++++++++++++++++++++
 libsoup/soup-socket.c               |  7 +++++++
 libsoup/soup-websocket-connection.c | 20 ++++++++++++++++++++
 4 files changed, 51 insertions(+)

diff --git a/libsoup/soup-message-io.c b/libsoup/soup-message-io.c
index c5412abb2..8d69f18d6 100644
--- a/libsoup/soup-message-io.c
+++ b/libsoup/soup-message-io.c
@@ -927,7 +927,11 @@ soup_message_io_get_source (SoupMessage *msg, GCancellable *cancellable,
 
 	source = g_source_new (&message_source_funcs,
 			       sizeof (SoupMessageSource));
+#if GLIB_CHECK_VERSION(2, 70, 0)
+	g_source_set_static_name (source, "SoupMessageSource");
+#else
 	g_source_set_name (source, "SoupMessageSource");
+#endif
 	message_source = (SoupMessageSource *)source;
 	message_source->msg = g_object_ref (msg);
 	message_source->paused = io && io->paused;
diff --git a/libsoup/soup-misc.c b/libsoup/soup-misc.c
index 2cf6b0f6a..170fa15a2 100644
--- a/libsoup/soup-misc.c
+++ b/libsoup/soup-misc.c
@@ -83,6 +83,11 @@ soup_add_io_watch (GMainContext *async_context,
 		   GIOFunc function, gpointer data)
 {
 	GSource *watch = g_io_create_watch (chan, condition);
+#if GLIB_CHECK_VERSION(2, 70, 0)
+	g_source_set_static_name (watch, "SoupIOWatch");
+#else
+	g_source_set_name (watch, "SoupIOWatch");
+#endif
 	g_source_set_callback (watch, (GSourceFunc) function, data, NULL);
 	g_source_attach (watch, async_context);
 	g_source_unref (watch);
@@ -111,6 +116,11 @@ soup_add_idle (GMainContext *async_context,
 	       GSourceFunc function, gpointer data)
 {
 	GSource *source = g_idle_source_new ();
+#if GLIB_CHECK_VERSION(2, 70, 0)
+	g_source_set_static_name (source, "SoupIdle");
+#else
+	g_source_set_name (source, "SoupIdle");
+#endif
 	g_source_set_callback (source, function, data, NULL);
 	g_source_attach (source, async_context);
 	g_source_unref (source);
@@ -125,6 +135,11 @@ soup_add_completion_reffed (GMainContext   *async_context,
 {
 	GSource *source = g_idle_source_new ();
 
+#if GLIB_CHECK_VERSION(2, 70, 0)
+	g_source_set_static_name (source, "SoupCompletion");
+#else
+	g_source_set_name (source, "SoupCompletion");
+#endif
 	g_source_set_priority (source, G_PRIORITY_DEFAULT);
 	g_source_set_callback (source, function, data, dnotify);
 	g_source_attach (source, async_context);
@@ -178,6 +193,11 @@ soup_add_timeout (GMainContext *async_context,
 		  GSourceFunc function, gpointer data)
 {
 	GSource *source = g_timeout_source_new (interval);
+#if GLIB_CHECK_VERSION(2, 70, 0)
+	g_source_set_static_name (source, "SoupTimeout");
+#else
+	g_source_set_name (source, "SoupTimeout");
+#endif
 	g_source_set_callback (source, function, data, NULL);
 	g_source_attach (source, async_context);
 	g_source_unref (source);
diff --git a/libsoup/soup-socket.c b/libsoup/soup-socket.c
index 0ec451032..53b5c584b 100644
--- a/libsoup/soup-socket.c
+++ b/libsoup/soup-socket.c
@@ -1203,6 +1203,13 @@ soup_socket_create_watch (SoupSocketPrivate *priv, GIOCondition cond,
 		watch = g_pollable_input_stream_create_source (G_POLLABLE_INPUT_STREAM (priv->istream), cancellable);
 	else
 		watch = g_pollable_output_stream_create_source (G_POLLABLE_OUTPUT_STREAM (priv->ostream), cancellable);
+
+#if GLIB_CHECK_VERSION(2, 70, 0)
+	g_source_set_static_name (watch, "SoupSocket watch");
+#else
+	g_source_set_name (watch, "SoupSocket watch");
+#endif
+
 	g_source_set_callback (watch, (GSourceFunc)callback, user_data, NULL);
 
 	g_source_attach (watch, priv->async_context);
diff --git a/libsoup/soup-websocket-connection.c b/libsoup/soup-websocket-connection.c
index a4095e1c9..6d136d411 100644
--- a/libsoup/soup-websocket-connection.c
+++ b/libsoup/soup-websocket-connection.c
@@ -306,6 +306,11 @@ soup_websocket_connection_start_input_source (SoupWebsocketConnection *self)
 		return;
 
 	pv->input_source = g_pollable_input_stream_create_source (pv->input, NULL);
+#if GLIB_CHECK_VERSION(2, 70, 0)
+	g_source_set_static_name (pv->input_source, "SoupWebsocketConnection input");
+#else
+	g_source_set_name (pv->input_source, "SoupWebsocketConnection input");
+#endif
 	g_source_set_callback (pv->input_source, (GSourceFunc)on_web_socket_input, self, NULL);
 	g_source_attach (pv->input_source, pv->main_context);
 }
@@ -332,6 +337,11 @@ soup_websocket_connection_start_output_source (SoupWebsocketConnection *self)
 		return;
 
 	pv->output_source = g_pollable_output_stream_create_source (pv->output, NULL);
+#if GLIB_CHECK_VERSION(2, 70, 0)
+	g_source_set_static_name (pv->output_source, "SoupWebsocketConnection output");
+#else
+	g_source_set_name (pv->output_source, "SoupWebsocketConnection output");
+#endif
 	g_source_set_callback (pv->output_source, (GSourceFunc)on_web_socket_output, self, NULL);
 	g_source_attach (pv->output_source, pv->main_context);
 }
@@ -444,6 +454,11 @@ close_io_after_timeout (SoupWebsocketConnection *self)
 
 	g_debug ("waiting %d seconds for peer to close io", timeout);
 	pv->close_timeout = g_timeout_source_new_seconds (timeout);
+#if GLIB_CHECK_VERSION(2, 70, 0)
+	g_source_set_static_name (pv->close_timeout, "SoupWebsocketConnection close timeout");
+#else
+	g_source_set_name (pv->close_timeout, "SoupWebsocketConnection close timeout");
+#endif
 	g_source_set_callback (pv->close_timeout, on_timeout_close_io, self, NULL);
 	g_source_attach (pv->close_timeout, pv->main_context);
 }
@@ -2207,6 +2222,11 @@ soup_websocket_connection_set_keepalive_interval (SoupWebsocketConnection *self,
 
 		if (interval > 0) {
 			pv->keepalive_timeout = g_timeout_source_new_seconds (interval);
+#if GLIB_CHECK_VERSION(2, 70, 0)
+			g_source_set_static_name (pv->keepalive_timeout, "SoupWebsocketConnection keepalive timeout");
+#else
+			g_source_set_name (pv->keepalive_timeout, "SoupWebsocketConnection keepalive timeout");
+#endif
 			g_source_set_callback (pv->keepalive_timeout, on_queue_ping, self, NULL);
 			g_source_attach (pv->keepalive_timeout, pv->main_context);
 		}
-- 
GitLab

openSUSE Build Service is sponsored by