[gnome-remote-desktop] daemon: Only start servers, when they are not started yet



commit 29afc237105de1315e8af9861e1dc79b744268c8
Author: Pascal Nowack <Pascal Nowack gmx de>
Date:   Sat Apr 23 10:40:41 2022 +0200

    daemon: Only start servers, when they are not started yet
    
    Triggering a start of a server backend can be done in two ways:
    1. In maybe_enable_services(), when the dbus proxies are ready
    2. When switching the 'enable' gsettings key of the respected backend
    
    If both events are triggered at the same time, then a start is
    triggered in `maybe_enable_services()` and, depending on the backend,
    in `on_rdp_enabled_changed()` or in `on_vnc_enabled_changed()`.
    This leads to an assertion hit, as the respective server was already
    started in such case.
    
    To fix this situation, change the assertion into a normal conditional
    statement, where the respective server backend is only started, when it
    is not already started.
    
    Fixes: https://errors.ubuntu.com/problem/11540483956116d59b3da5908cb6f7b0caeedae4

 src/grd-daemon.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/src/grd-daemon.c b/src/grd-daemon.c
index 35616505..f04f4532 100644
--- a/src/grd-daemon.c
+++ b/src/grd-daemon.c
@@ -78,7 +78,8 @@ start_rdp_server (GrdDaemon *daemon)
   GrdSettings *settings = grd_context_get_settings (daemon->context);
   g_autoptr (GError) error = NULL;
 
-  g_assert (!daemon->rdp_server);
+  if (daemon->rdp_server)
+    return;
 
   if (!g_access (grd_settings_get_rdp_server_cert (settings), F_OK) &&
       !g_access (grd_settings_get_rdp_server_key (settings), F_OK))
@@ -113,7 +114,8 @@ start_vnc_server (GrdDaemon *daemon)
 {
   g_autoptr (GError) error = NULL;
 
-  g_assert (!daemon->vnc_server);
+  if (daemon->vnc_server)
+    return;
 
   daemon->vnc_server = grd_vnc_server_new (daemon->context);
   if (!grd_vnc_server_start (daemon->vnc_server, &error))


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]