commit 5685d65267627038533edd92c2655d0c8023766b Author: Halton Huo Date: Mon Apr 19 16:00:07 2010 +0800 gdm-26-xdmcp-seatid.diff, specify seat-id when create a XDMCP greeter display. Because ':' is not acceptable as valid dbus names, use g_strcanon to replace invalid characters into '_'. diff --git a/daemon/gdm-xdmcp-greeter-display.c b/daemon/gdm-xdmcp-greeter-display.c index 2273f4b..6e8c621 100644 --- a/daemon/gdm-xdmcp-greeter-display.c +++ b/daemon/gdm-xdmcp-greeter-display.c @@ -104,17 +104,22 @@ gdm_xdmcp_greeter_display_new (const char *hostname, { GObject *object; char *x11_display; + char *seat_id; x11_display = g_strdup_printf ("%s:%d", hostname, number); + seat_id = g_strdup_printf ("/org/freedesktop/ConsoleKit/XDMCP%s", x11_display); + seat_id = g_strcanon (seat_id, "ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-/", '_'); object = g_object_new (GDM_TYPE_XDMCP_GREETER_DISPLAY, "remote-hostname", hostname, "x11-display-number", number, "x11-display-name", x11_display, + "seat-id", seat_id, "is-local", FALSE, "remote-address", address, "session-number", session_number, NULL); g_free (x11_display); + g_free (seat_id); return GDM_DISPLAY (object); }