Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gnome-remote-desktop for
openSUSE:Factory checked in at 2023-04-24 22:31:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-remote-desktop (Old)
and /work/SRC/openSUSE:Factory/.gnome-remote-desktop.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-remote-desktop"
Mon Apr 24 22:31:55 2023 rev:18 rq:1082545 version:44.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/gnome-remote-desktop/gnome-remote-desktop.changes
2023-03-24 15:19:52.878719072 +0100
+++
/work/SRC/openSUSE:Factory/.gnome-remote-desktop.new.1533/gnome-remote-desktop.changes
2023-04-24 22:32:05.639824759 +0200
@@ -1,0 +2,12 @@
+Sat Apr 22 19:25:05 UTC 2023 - [email protected]
+
+- Update to version 44.1:
+ * daemon: Stop and clear rdp/vnc servers when start fails
+ * session-rdp:
+ - Prevent DVC reinitializations on session shutdown
+ - Fix small style issue
+ * rdp/rdpgfx: Use correct GMainContext for protocol reset source
+ * clipboard-rdp: Make warnings more explicit on content
+ conversion failure
+
+-------------------------------------------------------------------
Old:
----
gnome-remote-desktop-44.0.obscpio
New:
----
gnome-remote-desktop-44.1.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-remote-desktop.spec ++++++
--- /var/tmp/diff_new_pack.y60Bpk/_old 2023-04-24 22:32:06.511829942 +0200
+++ /var/tmp/diff_new_pack.y60Bpk/_new 2023-04-24 22:32:06.559830227 +0200
@@ -22,7 +22,7 @@
%define gstreamer_version 1.10.0
Name: gnome-remote-desktop
-Version: 44.0
+Version: 44.1
Release: 0
Summary: GNOME Remote Desktop screen sharing service
License: GPL-2.0-or-later
++++++ _service ++++++
--- /var/tmp/diff_new_pack.y60Bpk/_old 2023-04-24 22:32:06.651830774 +0200
+++ /var/tmp/diff_new_pack.y60Bpk/_new 2023-04-24 22:32:06.655830798 +0200
@@ -3,7 +3,7 @@
<service name="obs_scm" mode="manual">
<param
name="url">https://gitlab.gnome.org/GNOME/gnome-remote-desktop.git</param>
<param name="scm">git</param>
- <param name="revision">refs/tags/44.0</param>
+ <param name="revision">refs/tags/44.1</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
</service>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.y60Bpk/_old 2023-04-24 22:32:06.683830964 +0200
+++ /var/tmp/diff_new_pack.y60Bpk/_new 2023-04-24 22:32:06.687830988 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://gitlab.gnome.org/GNOME/gnome-remote-desktop.git</param>
- <param
name="changesrevision">71d82c8604fc2b5142bd66af77259d5b2f2504fa</param></service></servicedata>
+ <param
name="changesrevision">66e0fa21c87f82d7aaf71846dc408fb832d43146</param></service></servicedata>
(No newline at EOF)
++++++ gnome-remote-desktop-44.0.obscpio -> gnome-remote-desktop-44.1.obscpio
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gnome-remote-desktop-44.0/meson.build
new/gnome-remote-desktop-44.1/meson.build
--- old/gnome-remote-desktop-44.0/meson.build 2023-03-18 18:59:04.000000000
+0100
+++ new/gnome-remote-desktop-44.1/meson.build 2023-04-22 17:45:46.000000000
+0200
@@ -1,5 +1,5 @@
project('gnome-remote-desktop', 'c',
- version: '44.0',
+ version: '44.1',
meson_version: '>= 0.57.0',
default_options: ['warning_level=1',
'buildtype=debugoptimized'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gnome-remote-desktop-44.0/src/grd-clipboard-rdp.c
new/gnome-remote-desktop-44.1/src/grd-clipboard-rdp.c
--- old/gnome-remote-desktop-44.0/src/grd-clipboard-rdp.c 2023-03-18
18:59:04.000000000 +0100
+++ new/gnome-remote-desktop-44.1/src/grd-clipboard-rdp.c 2023-04-22
17:45:46.000000000 +0200
@@ -823,7 +823,12 @@
success = ClipboardSetData (clipboard_rdp->system,
src_format_id, src_data, src_size);
- if (success)
+ if (!success)
+ {
+ g_warning ("[RDP.CLIPRDR] Converting clipboard content failed: "
+ "Failed to set data to convert");
+ }
+ else
{
dst_data = ClipboardGetData (clipboard_rdp->system,
dst_format_id, &dst_size);
@@ -851,10 +856,10 @@
entry->has_file_list = TRUE;
}
}
- if (!success || !dst_data)
+ if (!dst_data)
{
g_warning ("[RDP.CLIPRDR] Converting clipboard content for "
- "client failed");
+ "client failed: Failed to get converted data");
}
}
else
@@ -1822,7 +1827,8 @@
src_format_id, src_data, src_size);
if (!success)
{
- g_warning ("[RDP.CLIPRDR] Converting clipboard content failed");
+ g_warning ("[RDP.CLIPRDR] Converting clipboard content failed: "
+ "Failed to set data to convert");
return NULL;
}
@@ -1841,7 +1847,8 @@
}
if (!dst_data)
{
- g_warning ("[RDP.CLIPRDR] Converting clipboard content failed");
+ g_warning ("[RDP.CLIPRDR] Converting clipboard content failed: "
+ "Failed to get converted data");
return NULL;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gnome-remote-desktop-44.0/src/grd-daemon.c
new/gnome-remote-desktop-44.1/src/grd-daemon.c
--- old/gnome-remote-desktop-44.0/src/grd-daemon.c 2023-03-18
18:59:04.000000000 +0100
+++ new/gnome-remote-desktop-44.1/src/grd-daemon.c 2023-04-22
17:45:46.000000000 +0200
@@ -73,6 +73,17 @@
#ifdef HAVE_RDP
static void
+stop_rdp_server (GrdDaemon *daemon)
+{
+ if (!daemon->rdp_server)
+ return;
+
+ grd_rdp_server_stop (daemon->rdp_server);
+ g_clear_object (&daemon->rdp_server);
+ g_message ("RDP server stopped");
+}
+
+static void
start_rdp_server (GrdDaemon *daemon)
{
GrdSettings *settings = grd_context_get_settings (daemon->context);
@@ -86,29 +97,34 @@
{
daemon->rdp_server = grd_rdp_server_new (daemon->context);
if (!grd_rdp_server_start (daemon->rdp_server, &error))
- g_warning ("Failed to start RDP server: %s\n", error->message);
+ {
+ g_warning ("Failed to start RDP server: %s\n", error->message);
+ stop_rdp_server (daemon);
+ }
else
- g_message ("RDP server started");
+ {
+ g_message ("RDP server started");
+ }
}
else
{
g_warning ("RDP TLS certificate and key not configured properly");
}
}
+#endif /* HAVE_RDP */
+#ifdef HAVE_VNC
static void
-stop_rdp_server (GrdDaemon *daemon)
+stop_vnc_server (GrdDaemon *daemon)
{
- if (!daemon->rdp_server)
+ if (!daemon->vnc_server)
return;
- grd_rdp_server_stop (daemon->rdp_server);
- g_clear_object (&daemon->rdp_server);
- g_message ("RDP server stopped");
+ grd_vnc_server_stop (daemon->vnc_server);
+ g_clear_object (&daemon->vnc_server);
+ g_message ("VNC server stopped");
}
-#endif /* HAVE_RDP */
-#ifdef HAVE_VNC
static void
start_vnc_server (GrdDaemon *daemon)
{
@@ -119,20 +135,14 @@
daemon->vnc_server = grd_vnc_server_new (daemon->context);
if (!grd_vnc_server_start (daemon->vnc_server, &error))
- g_warning ("Failed to initialize VNC server: %s\n", error->message);
+ {
+ g_warning ("Failed to initialize VNC server: %s\n", error->message);
+ stop_vnc_server (daemon);
+ }
else
- g_message ("VNC server started");
-}
-
-static void
-stop_vnc_server (GrdDaemon *daemon)
-{
- if (!daemon->vnc_server)
- return;
-
- grd_vnc_server_stop (daemon->vnc_server);
- g_clear_object (&daemon->vnc_server);
- g_message ("VNC server stopped");
+ {
+ g_message ("VNC server started");
+ }
}
#endif /* HAVE_VNC */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gnome-remote-desktop-44.0/src/grd-rdp-graphics-pipeline.c
new/gnome-remote-desktop-44.1/src/grd-rdp-graphics-pipeline.c
--- old/gnome-remote-desktop-44.0/src/grd-rdp-graphics-pipeline.c
2023-03-18 18:59:04.000000000 +0100
+++ new/gnome-remote-desktop-44.1/src/grd-rdp-graphics-pipeline.c
2023-04-22 17:45:46.000000000 +0200
@@ -1578,49 +1578,6 @@
graphics_pipeline->pipeline_context);
}
-GrdRdpGraphicsPipeline *
-grd_rdp_graphics_pipeline_new (GrdSessionRdp *session_rdp,
- GrdRdpDvc *rdp_dvc,
- GMainContext *pipeline_context,
- HANDLE vcm,
- rdpContext *rdp_context,
- GrdRdpNetworkAutodetection
*network_autodetection,
- wStream *encode_stream,
- RFX_CONTEXT *rfx_context)
-{
- GrdRdpGraphicsPipeline *graphics_pipeline;
- RdpgfxServerContext *rdpgfx_context;
-
- graphics_pipeline = g_object_new (GRD_TYPE_RDP_GRAPHICS_PIPELINE, NULL);
- rdpgfx_context = rdpgfx_server_context_new (vcm);
- if (!rdpgfx_context)
- g_error ("[RDP.RDPGFX] Failed to create server context");
-
- graphics_pipeline->rdpgfx_context = rdpgfx_context;
- graphics_pipeline->session_rdp = session_rdp;
- graphics_pipeline->rdp_dvc = rdp_dvc;
- graphics_pipeline->pipeline_context = pipeline_context;
- graphics_pipeline->network_autodetection = network_autodetection;
- graphics_pipeline->encode_stream = encode_stream;
- graphics_pipeline->rfx_context = rfx_context;
-
- rdpgfx_context->ChannelIdAssigned = rdpgfx_channel_id_assigned;
- rdpgfx_context->CapsAdvertise = rdpgfx_caps_advertise;
- rdpgfx_context->CacheImportOffer = rdpgfx_cache_import_offer;
- rdpgfx_context->FrameAcknowledge = rdpgfx_frame_acknowledge;
- rdpgfx_context->QoeFrameAcknowledge = rdpgfx_qoe_frame_acknowledge;
- rdpgfx_context->rdpcontext = rdp_context;
- rdpgfx_context->custom = graphics_pipeline;
-
- g_mutex_lock (&graphics_pipeline->gfx_mutex);
- if (rdp_context->settings->NetworkAutoDetect &&
- !graphics_pipeline->rtt_pause_source)
- ensure_rtt_receivement (graphics_pipeline);
- g_mutex_unlock (&graphics_pipeline->gfx_mutex);
-
- return graphics_pipeline;
-}
-
static void
reset_graphics_pipeline (GrdRdpGraphicsPipeline *graphics_pipeline)
{
@@ -1662,79 +1619,6 @@
g_mutex_unlock (&graphics_pipeline->gfx_mutex);
}
-static void
-grd_rdp_graphics_pipeline_dispose (GObject *object)
-{
- GrdRdpGraphicsPipeline *graphics_pipeline = GRD_RDP_GRAPHICS_PIPELINE
(object);
-
- if (graphics_pipeline->channel_opened)
- {
- reset_graphics_pipeline (graphics_pipeline);
- graphics_pipeline->rdpgfx_context->Close
(graphics_pipeline->rdpgfx_context);
- graphics_pipeline->channel_opened = FALSE;
- }
- if (graphics_pipeline->subscribed_status)
- {
- grd_rdp_dvc_unsubscribe_dvc_creation_status (graphics_pipeline->rdp_dvc,
-
graphics_pipeline->channel_id,
-
graphics_pipeline->dvc_subscription_id);
- graphics_pipeline->subscribed_status = FALSE;
- }
-
- if (graphics_pipeline->protocol_timeout_source)
- {
- g_source_destroy (graphics_pipeline->protocol_timeout_source);
- g_clear_pointer (&graphics_pipeline->protocol_timeout_source,
g_source_unref);
- }
- if (graphics_pipeline->rtt_pause_source)
- {
- g_source_destroy (graphics_pipeline->rtt_pause_source);
- g_clear_pointer (&graphics_pipeline->rtt_pause_source, g_source_unref);
- }
- if (graphics_pipeline->protocol_reset_source)
- {
- g_source_destroy (graphics_pipeline->protocol_reset_source);
- g_clear_pointer (&graphics_pipeline->protocol_reset_source,
g_source_unref);
- }
-
- if (graphics_pipeline->enc_times)
- {
- g_queue_free_full (graphics_pipeline->enc_times, g_free);
- graphics_pipeline->enc_times = NULL;
- }
-
- if (graphics_pipeline->encoded_frames)
- {
- g_assert (g_queue_get_length (graphics_pipeline->encoded_frames) == 0);
- g_clear_pointer (&graphics_pipeline->encoded_frames, g_queue_free);
- }
-
- g_assert (g_hash_table_size (graphics_pipeline->surface_hwaccel_table) == 0);
- g_clear_pointer (&graphics_pipeline->surface_hwaccel_table,
g_hash_table_destroy);
-
- g_clear_pointer (&graphics_pipeline->cap_sets, g_free);
-
- g_assert (g_hash_table_size (graphics_pipeline->serial_surface_table) == 0);
- g_clear_pointer (&graphics_pipeline->serial_surface_table,
g_hash_table_destroy);
- g_clear_pointer (&graphics_pipeline->frame_serial_table,
g_hash_table_destroy);
- g_clear_pointer (&graphics_pipeline->codec_context_table,
g_hash_table_destroy);
- g_clear_pointer (&graphics_pipeline->surface_table, g_hash_table_destroy);
- g_clear_pointer (&graphics_pipeline->rdpgfx_context,
rdpgfx_server_context_free);
-
- G_OBJECT_CLASS (grd_rdp_graphics_pipeline_parent_class)->dispose (object);
-}
-
-static void
-grd_rdp_graphics_pipeline_finalize (GObject *object)
-{
- GrdRdpGraphicsPipeline *graphics_pipeline = GRD_RDP_GRAPHICS_PIPELINE
(object);
-
- g_mutex_clear (&graphics_pipeline->gfx_mutex);
- g_mutex_clear (&graphics_pipeline->caps_mutex);
-
- G_OBJECT_CLASS (grd_rdp_graphics_pipeline_parent_class)->finalize (object);
-}
-
static gboolean
test_caps_version (GrdRdpGraphicsPipeline *graphics_pipeline,
RDPGFX_CAPSET *cap_sets,
@@ -1867,11 +1751,134 @@
.dispatch = protocol_reset_source_dispatch,
};
-static void
-grd_rdp_graphics_pipeline_init (GrdRdpGraphicsPipeline *graphics_pipeline)
+GrdRdpGraphicsPipeline *
+grd_rdp_graphics_pipeline_new (GrdSessionRdp *session_rdp,
+ GrdRdpDvc *rdp_dvc,
+ GMainContext *pipeline_context,
+ HANDLE vcm,
+ rdpContext *rdp_context,
+ GrdRdpNetworkAutodetection
*network_autodetection,
+ wStream *encode_stream,
+ RFX_CONTEXT *rfx_context)
{
+ GrdRdpGraphicsPipeline *graphics_pipeline;
+ RdpgfxServerContext *rdpgfx_context;
GSource *protocol_reset_source;
+ graphics_pipeline = g_object_new (GRD_TYPE_RDP_GRAPHICS_PIPELINE, NULL);
+ rdpgfx_context = rdpgfx_server_context_new (vcm);
+ if (!rdpgfx_context)
+ g_error ("[RDP.RDPGFX] Failed to create server context");
+
+ graphics_pipeline->rdpgfx_context = rdpgfx_context;
+ graphics_pipeline->session_rdp = session_rdp;
+ graphics_pipeline->rdp_dvc = rdp_dvc;
+ graphics_pipeline->pipeline_context = pipeline_context;
+ graphics_pipeline->network_autodetection = network_autodetection;
+ graphics_pipeline->encode_stream = encode_stream;
+ graphics_pipeline->rfx_context = rfx_context;
+
+ rdpgfx_context->ChannelIdAssigned = rdpgfx_channel_id_assigned;
+ rdpgfx_context->CapsAdvertise = rdpgfx_caps_advertise;
+ rdpgfx_context->CacheImportOffer = rdpgfx_cache_import_offer;
+ rdpgfx_context->FrameAcknowledge = rdpgfx_frame_acknowledge;
+ rdpgfx_context->QoeFrameAcknowledge = rdpgfx_qoe_frame_acknowledge;
+ rdpgfx_context->rdpcontext = rdp_context;
+ rdpgfx_context->custom = graphics_pipeline;
+
+ protocol_reset_source = g_source_new (&protocol_reset_source_funcs,
+ sizeof (GSource));
+ g_source_set_callback (protocol_reset_source, reset_protocol,
+ graphics_pipeline, NULL);
+ g_source_set_ready_time (protocol_reset_source, -1);
+ g_source_attach (protocol_reset_source, pipeline_context);
+ graphics_pipeline->protocol_reset_source = protocol_reset_source;
+
+ g_mutex_lock (&graphics_pipeline->gfx_mutex);
+ if (rdp_context->settings->NetworkAutoDetect &&
+ !graphics_pipeline->rtt_pause_source)
+ ensure_rtt_receivement (graphics_pipeline);
+ g_mutex_unlock (&graphics_pipeline->gfx_mutex);
+
+ return graphics_pipeline;
+}
+
+static void
+grd_rdp_graphics_pipeline_dispose (GObject *object)
+{
+ GrdRdpGraphicsPipeline *graphics_pipeline = GRD_RDP_GRAPHICS_PIPELINE
(object);
+
+ if (graphics_pipeline->channel_opened)
+ {
+ reset_graphics_pipeline (graphics_pipeline);
+ graphics_pipeline->rdpgfx_context->Close
(graphics_pipeline->rdpgfx_context);
+ graphics_pipeline->channel_opened = FALSE;
+ }
+ if (graphics_pipeline->subscribed_status)
+ {
+ grd_rdp_dvc_unsubscribe_dvc_creation_status (graphics_pipeline->rdp_dvc,
+
graphics_pipeline->channel_id,
+
graphics_pipeline->dvc_subscription_id);
+ graphics_pipeline->subscribed_status = FALSE;
+ }
+
+ if (graphics_pipeline->protocol_timeout_source)
+ {
+ g_source_destroy (graphics_pipeline->protocol_timeout_source);
+ g_clear_pointer (&graphics_pipeline->protocol_timeout_source,
g_source_unref);
+ }
+ if (graphics_pipeline->rtt_pause_source)
+ {
+ g_source_destroy (graphics_pipeline->rtt_pause_source);
+ g_clear_pointer (&graphics_pipeline->rtt_pause_source, g_source_unref);
+ }
+ if (graphics_pipeline->protocol_reset_source)
+ {
+ g_source_destroy (graphics_pipeline->protocol_reset_source);
+ g_clear_pointer (&graphics_pipeline->protocol_reset_source,
g_source_unref);
+ }
+
+ if (graphics_pipeline->enc_times)
+ {
+ g_queue_free_full (graphics_pipeline->enc_times, g_free);
+ graphics_pipeline->enc_times = NULL;
+ }
+
+ if (graphics_pipeline->encoded_frames)
+ {
+ g_assert (g_queue_get_length (graphics_pipeline->encoded_frames) == 0);
+ g_clear_pointer (&graphics_pipeline->encoded_frames, g_queue_free);
+ }
+
+ g_assert (g_hash_table_size (graphics_pipeline->surface_hwaccel_table) == 0);
+ g_clear_pointer (&graphics_pipeline->surface_hwaccel_table,
g_hash_table_destroy);
+
+ g_clear_pointer (&graphics_pipeline->cap_sets, g_free);
+
+ g_assert (g_hash_table_size (graphics_pipeline->serial_surface_table) == 0);
+ g_clear_pointer (&graphics_pipeline->serial_surface_table,
g_hash_table_destroy);
+ g_clear_pointer (&graphics_pipeline->frame_serial_table,
g_hash_table_destroy);
+ g_clear_pointer (&graphics_pipeline->codec_context_table,
g_hash_table_destroy);
+ g_clear_pointer (&graphics_pipeline->surface_table, g_hash_table_destroy);
+ g_clear_pointer (&graphics_pipeline->rdpgfx_context,
rdpgfx_server_context_free);
+
+ G_OBJECT_CLASS (grd_rdp_graphics_pipeline_parent_class)->dispose (object);
+}
+
+static void
+grd_rdp_graphics_pipeline_finalize (GObject *object)
+{
+ GrdRdpGraphicsPipeline *graphics_pipeline = GRD_RDP_GRAPHICS_PIPELINE
(object);
+
+ g_mutex_clear (&graphics_pipeline->gfx_mutex);
+ g_mutex_clear (&graphics_pipeline->caps_mutex);
+
+ G_OBJECT_CLASS (grd_rdp_graphics_pipeline_parent_class)->finalize (object);
+}
+
+static void
+grd_rdp_graphics_pipeline_init (GrdRdpGraphicsPipeline *graphics_pipeline)
+{
graphics_pipeline->surface_table = g_hash_table_new (NULL, NULL);
graphics_pipeline->codec_context_table = g_hash_table_new (NULL, NULL);
@@ -1884,14 +1891,6 @@
g_mutex_init (&graphics_pipeline->caps_mutex);
g_mutex_init (&graphics_pipeline->gfx_mutex);
-
- protocol_reset_source = g_source_new (&protocol_reset_source_funcs,
- sizeof (GSource));
- g_source_set_callback (protocol_reset_source, reset_protocol,
- graphics_pipeline, NULL);
- g_source_set_ready_time (protocol_reset_source, -1);
- g_source_attach (protocol_reset_source, graphics_pipeline->pipeline_context);
- graphics_pipeline->protocol_reset_source = protocol_reset_source;
}
static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gnome-remote-desktop-44.0/src/grd-session-rdp.c
new/gnome-remote-desktop-44.1/src/grd-session-rdp.c
--- old/gnome-remote-desktop-44.0/src/grd-session-rdp.c 2023-03-18
18:59:04.000000000 +0100
+++ new/gnome-remote-desktop-44.1/src/grd-session-rdp.c 2023-04-22
17:45:46.000000000 +0200
@@ -191,9 +191,9 @@
close_session_idle (gpointer user_data);
static void
-rdp_peer_refresh_region (GrdSessionRdp *session_rdp,
- GrdRdpSurface *rdp_surface,
- GrdRdpBuffer *buffer);
+rdp_peer_refresh_region (GrdSessionRdp *session_rdp,
+ GrdRdpSurface *rdp_surface,
+ GrdRdpBuffer *buffer);
static gboolean
are_pointer_bitmaps_equal (gconstpointer a,
@@ -1317,9 +1317,9 @@
}
static void
-rdp_peer_refresh_region (GrdSessionRdp *session_rdp,
- GrdRdpSurface *rdp_surface,
- GrdRdpBuffer *buffer)
+rdp_peer_refresh_region (GrdSessionRdp *session_rdp,
+ GrdRdpSurface *rdp_surface,
+ GrdRdpBuffer *buffer)
{
SessionMetrics *session_metrics = &session_rdp->session_metrics;
freerdp_peer *peer = session_rdp->peer;
@@ -2414,11 +2414,13 @@
g_clear_object (&session_rdp->pipewire_stream);
+ g_mutex_lock (&rdp_peer_context->channel_mutex);
g_clear_object (&rdp_peer_context->clipboard_rdp);
g_clear_object (&rdp_peer_context->audio_playback);
g_clear_object (&rdp_peer_context->display_control);
g_clear_object (&rdp_peer_context->graphics_pipeline);
g_clear_object (&rdp_peer_context->telemetry);
+ g_mutex_unlock (&rdp_peer_context->channel_mutex);
g_clear_pointer (&session_rdp->socket_thread, g_thread_join);
clear_session_sources (session_rdp);
++++++ gnome-remote-desktop.obsinfo ++++++
--- /var/tmp/diff_new_pack.y60Bpk/_old 2023-04-24 22:32:07.219834151 +0200
+++ /var/tmp/diff_new_pack.y60Bpk/_new 2023-04-24 22:32:07.243834293 +0200
@@ -1,5 +1,5 @@
name: gnome-remote-desktop
-version: 44.0
-mtime: 1679162344
-commit: 71d82c8604fc2b5142bd66af77259d5b2f2504fa
+version: 44.1
+mtime: 1682178346
+commit: 66e0fa21c87f82d7aaf71846dc408fb832d43146