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