]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Revert globbing changes - there are problems with it
authorRobert Ancell <robert.ancell@canonical.com>
Wed, 3 Sep 2014 05:21:46 +0000 (17:21 +1200)
committerRobert Ancell <robert.ancell@canonical.com>
Wed, 3 Sep 2014 05:21:46 +0000 (17:21 +1200)
src/lightdm.c
tests/Makefile.am
tests/scripts/multi-seat-with-globbing-config-sections.conf [deleted file]
tests/src/test-runner.c
tests/test-multi-seat-with-globbing-config-sections [deleted file]

index 2b2b14582d839b8a604f29b56a6cd9129a705ae7..3193008b810044d0dd866f6a4f893bfb5c1b3d39 100644 (file)
@@ -145,27 +145,6 @@ log_init (void)
     g_free (path);
 }
 
-static GList*
-get_config_sections (const gchar *seat_name)
-{
-    gchar **groups, **i;
-    GList *config_sections = NULL;
-
-    groups = config_get_groups (config_get_instance ());
-    for (i = groups; *i; i++)
-    {
-        if (g_str_has_prefix (*i, "Seat:"))
-        {
-            const gchar *seat_name_glob = *i + strlen ("Seat:");
-            if (g_pattern_match_simple (seat_name_glob, seat_name))
-                config_sections = g_list_append (config_sections, g_strdup (*i));
-        }
-    }
-    if (groups)
-        g_strfreev (groups);
-    return config_sections;
-}
-
 static void
 set_seat_properties (Seat *seat, const gchar *config_section)
 {
@@ -242,13 +221,11 @@ display_manager_seat_removed_cb (DisplayManager *display_manager, Seat *seat)
 
     if (next_seat)
     {
-        GList *config_sections, *link;
+        gchar *config_section;
 
-        config_sections = get_config_sections (seat_get_name (seat));
-        for (link = config_sections; link; link = link->next)
-            set_seat_properties (next_seat, (gchar*) link->data);
-        if (config_sections)
-            g_list_free_full (config_sections, g_free);
+        config_section = g_strdup_printf ("Seat:%s", seat_get_name (seat));
+        set_seat_properties (next_seat, config_section);
+        g_free (config_section);
 
         // We set this manually on default seat.  Let's port it over if needed.
         if (seat_get_boolean_property (seat, "exit-on-failure"))
@@ -961,18 +938,29 @@ static gboolean
 add_login1_seat (Login1Seat *login1_seat)
 {
     const gchar *seat_name = login1_seat_get_id (login1_seat);
+    gchar **groups, **i;
+    gchar *config_section = NULL;
     gchar **types = NULL, **type;
-    GList *config_sections = NULL, *link;
     Seat *seat = NULL;
     gboolean is_seat0, started = FALSE;
 
     g_debug ("New seat added from logind: %s", seat_name);
     is_seat0 = strcmp (seat_name, "seat0") == 0;
 
-    config_sections = get_config_sections (seat_name);
-    for (link = config_sections; link; link = link->next)
+    groups = config_get_groups (config_get_instance ());
+    for (i = groups; !config_section && *i; i++)
+    {
+        if (g_str_has_prefix (*i, "Seat:") &&
+            g_str_has_suffix (*i, seat_name))
+        {
+            config_section = g_strdup (*i);
+            break;
+        }
+    }
+    g_strfreev (groups);
+
+    if (config_section)
     {
-        gchar *config_section = link->data;
         g_debug ("Loading properties from config section %s", config_section);
         types = config_get_string_list (config_get_instance (), config_section, "type");
     }
@@ -993,8 +981,8 @@ add_login1_seat (Login1Seat *login1_seat)
             seat_set_property (seat, "allow-user-switching", "false");
         }
 
-        for (link = config_sections; link; link = link->next)
-            set_seat_properties (seat, (gchar*) link->data);
+        if (config_section)
+            set_seat_properties (seat, config_section);
 
         if (is_seat0)
             seat_set_property (seat, "exit-on-failure", "true");
@@ -1009,8 +997,7 @@ add_login1_seat (Login1Seat *login1_seat)
             g_debug ("Failed to start seat: %s", seat_name);
     }
 
-    if (config_sections)
-        g_list_free_full (config_sections, g_free);
+    g_free (config_section);
     g_object_unref (seat);
   
     return started;
index d0426096f1e435058454f1d96b770c8ea42ebc4e..1685d28365ce75bcfeac8297daa14ef2b0dce6ae 100644 (file)
@@ -183,7 +183,6 @@ TESTS = \
        test-multi-seat \
        test-multi-seat-non-graphical \
        test-multi-seat-change-graphical \
-       test-multi-seat-with-globbing-config-sections \
        test-mir-autologin \
        test-mir-greeter \
        test-mir-session \
@@ -449,7 +448,6 @@ EXTRA_DIST = \
        scripts/multi-seat.conf \
        scripts/multi-seat-non-graphical.conf \
        scripts/multi-seat-change-graphical.conf \
-       scripts/multi-seat-with-globbing-config-sections.conf \
        scripts/no-accounts-service.conf \
        scripts/no-config.conf \
        scripts/no-console-kit.conf \
diff --git a/tests/scripts/multi-seat-with-globbing-config-sections.conf b/tests/scripts/multi-seat-with-globbing-config-sections.conf
deleted file mode 100644 (file)
index 3706dfc..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#
-# Check can set globbing config sections matching different seats
-#
-
-[Seat:*]
-autologin-user=have-password1
-user-session=default
-
-[Seat:seat*Foo]
-autologin-user=have-password2
-
-[Seat:seat-AAA-Foo]
-autologin-user=have-password3
-
-[Seat:seat-BBB*]
-autologin-user=have-password4
-
-#?*START-DAEMON
-#?RUNNER DAEMON-START
-
-# seat0 starts
-#?XSERVER-0 START VT=7 SEAT=seat0
-#?*XSERVER-0 INDICATE-READY
-#?XSERVER-0 INDICATE-READY
-#?XSERVER-0 ACCEPT-CONNECT
-
-# Session starts for configured user
-#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=have-password1
-#?LOGIN1 ACTIVATE-SESSION SESSION=c0
-#?XSERVER-0 ACCEPT-CONNECT
-#?SESSION-X-0 CONNECT-XSERVER
-
-# Add seat-AAA-Foo
-#?*ADD-SEAT ID=seat-AAA-Foo
-
-# seat-AAA-Foo starts
-#?XSERVER-1 START SEAT=seat-AAA-Foo SHAREVTS=TRUE
-#?*XSERVER-1 INDICATE-READY
-#?XSERVER-1 INDICATE-READY
-#?XSERVER-1 ACCEPT-CONNECT
-
-# Session starts for configured user
-#?SESSION-X-1 START XDG_SEAT=seat-AAA-Foo XDG_GREETER_DATA_DIR=.*/have-password3 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=have-password3
-#?LOGIN1 ACTIVATE-SESSION SESSION=c1
-#?XSERVER-1 ACCEPT-CONNECT
-#?SESSION-X-1 CONNECT-XSERVER
-
-# Add seat-BBB-Foo
-#?*ADD-SEAT ID=seat-BBB-Foo
-
-# seat-BBB-Foo starts
-#?XSERVER-2 START SEAT=seat-BBB-Foo SHAREVTS=TRUE
-#?*XSERVER-2 INDICATE-READY
-#?XSERVER-2 INDICATE-READY
-#?XSERVER-2 ACCEPT-CONNECT
-
-# Session starts for configured user
-#?SESSION-X-2 START XDG_SEAT=seat-BBB-Foo XDG_GREETER_DATA_DIR=.*/have-password4 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=have-password4
-#?LOGIN1 ACTIVATE-SESSION SESSION=c2
-#?XSERVER-2 ACCEPT-CONNECT
-#?SESSION-X-2 CONNECT-XSERVER
-
-# Cleanup
-#?*STOP-DAEMON
-#?XSERVER-0 TERMINATE SIGNAL=15
-#?SESSION-X-0 TERMINATE SIGNAL=15
-#?XSERVER-1 TERMINATE SIGNAL=15
-#?SESSION-X-1 TERMINATE SIGNAL=15
-#?XSERVER-2 TERMINATE SIGNAL=15
-#?SESSION-X-2 TERMINATE SIGNAL=15
-#?RUNNER DAEMON-EXIT STATUS=0
index 631d299c80890afc0c1fb975f77a7a4ebabbb543..2dfcfd9663662f5e55e47ccc60142291f1e91d65 100644 (file)
@@ -1451,29 +1451,10 @@ handle_login1_seat_get_property (GDBusConnection       *connection,
         return NULL;
 }
 
-static gchar *
-escape_seat_id (const gchar *id)
-{
-    GString *s;
-    int i;
-
-    s = g_string_new ("");
-    for (i = 0; id[i]; i++)
-    {
-        if (isalnum (id[i]) || id[i] == '_')
-            g_string_append_c (s, id[i]);
-        else
-            g_string_append_printf (s, "_%02x", id[i]);
-    }
-
-    return g_string_free (s, FALSE);
-}
-
 static Login1Seat *
 add_login1_seat (GDBusConnection *connection, const gchar *id, gboolean emit_signal)
 {
     Login1Seat *seat;
-    gchar *escaped_id;
     GError *error = NULL;
     GDBusNodeInfo *login1_seat_info;
 
@@ -1491,6 +1472,13 @@ add_login1_seat (GDBusConnection *connection, const gchar *id, gboolean emit_sig
         handle_login1_seat_get_property,
     };
 
+    seat = g_malloc0 (sizeof (Login1Seat));
+    login1_seats = g_list_append (login1_seats, seat);
+    seat->id = g_strdup (id);
+    seat->path = g_strdup_printf ("/org/freedesktop/login1/seat/%s", seat->id);
+    seat->can_graphical = TRUE;
+    seat->can_multi_session = TRUE;
+
     login1_seat_info = g_dbus_node_info_new_for_xml (login1_seat_interface, &error);
     if (error)
         g_warning ("Failed to parse login1 seat D-Bus interface: %s", error->message);
@@ -1498,15 +1486,6 @@ add_login1_seat (GDBusConnection *connection, const gchar *id, gboolean emit_sig
     if (!login1_seat_info)
         return NULL;
 
-    seat = g_malloc0 (sizeof (Login1Seat));
-    login1_seats = g_list_append (login1_seats, seat);
-    seat->id = g_strdup (id);
-    escaped_id = escape_seat_id (seat->id);
-    seat->path = g_strdup_printf ("/org/freedesktop/login1/seat/%s", escaped_id);
-    g_free (escaped_id);
-    seat->can_graphical = TRUE;
-    seat->can_multi_session = TRUE;
-
     g_dbus_connection_register_object (connection,
                                        seat->path,
                                        login1_seat_info->interfaces[0],
diff --git a/tests/test-multi-seat-with-globbing-config-sections b/tests/test-multi-seat-with-globbing-config-sections
deleted file mode 100755 (executable)
index 4212357..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-./src/dbus-env ./src/test-runner multi-seat-with-globbing-config-sections test-gobject-greeter