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);
 }
