commit 5685d65267627038533edd92c2655d0c8023766b
Author: Halton Huo <halton.huo@sun.com>
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);
}