]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Don't subclass Session - we can't know the type until it has authenticated
authorRobert Ancell <robert.ancell@canonical.com>
Wed, 24 Jul 2013 06:45:23 +0000 (18:45 +1200)
committerRobert Ancell <robert.ancell@canonical.com>
Wed, 24 Jul 2013 06:45:23 +0000 (18:45 +1200)
18 files changed:
src/Makefile.am
src/display-server.c
src/display-server.h
src/greeter.c
src/greeter.h
src/seat-unity.c
src/seat-xdmcp-session.c
src/seat-xlocal.c
src/seat-xremote.c
src/seat-xvnc.c
src/seat.c
src/session.c
src/session.h
src/x-greeter.c [deleted file]
src/x-greeter.h [deleted file]
src/x-server.c
src/x-session.c [deleted file]
src/x-session.h [deleted file]

index 9548058f7785551340c1448d627227d48a0796de..4b56fde26f5450bccc55eb88bc10966cdfc001ba 100644 (file)
@@ -50,8 +50,6 @@ lightdm_SOURCES = \
        vt.h \
        x-authority.c \
        x-authority.h \
-       x-greeter.c \
-       x-greeter.h \
        x-server-local.c \
        x-server-local.h \
        x-server-remote.c \
@@ -60,8 +58,6 @@ lightdm_SOURCES = \
        x-server-xvnc.h \
        x-server.c \
        x-server.h \
-       x-session.c \
-       x-session.h \
        xdmcp-protocol.c \
        xdmcp-protocol.h \
        xdmcp-server.c \
index 8afc973de63b229f76932781b0532b8db2e4cdee..fd9dac4f94c5ad623ce2443d687c64c81f71fbcb 100644 (file)
@@ -75,6 +75,17 @@ display_server_real_start (DisplayServer *server)
     return TRUE;
 }
 
+void
+display_server_setup_session (DisplayServer *server, Session *session)
+{
+    return DISPLAY_SERVER_GET_CLASS (server)->setup_session (server, session);
+}
+
+static void
+display_server_real_setup_session (DisplayServer *server, Session *session)
+{
+}
+
 void
 display_server_stop (DisplayServer *server)
 {
@@ -111,6 +122,7 @@ display_server_class_init (DisplayServerClass *klass)
 {
     klass->get_vt = display_server_real_get_vt;
     klass->start = display_server_real_start;
+    klass->setup_session = display_server_real_setup_session;
     klass->stop = display_server_real_stop;
 
     g_type_class_add_private (klass, sizeof (DisplayServerPrivate));
index dbd8a67be0a3bfc2d810251e7ea93befd0288e1b..d8551067f97a1d0b91cfa6cae8bbbcf28faca8f5 100644 (file)
 
 #include <glib-object.h>
 
+typedef struct DisplayServer DisplayServer;
+
+#include "session.h"
+
 G_BEGIN_DECLS
 
 #define DISPLAY_SERVER_TYPE (display_server_get_type())
@@ -23,11 +27,11 @@ G_BEGIN_DECLS
 
 typedef struct DisplayServerPrivate DisplayServerPrivate;
 
-typedef struct
+struct DisplayServer
 {
     GObject               parent_instance;
     DisplayServerPrivate *priv;
-} DisplayServer;
+};
 
 typedef struct
 {
@@ -38,6 +42,7 @@ typedef struct
 
     gint (*get_vt)(DisplayServer *server);
     gboolean (*start)(DisplayServer *server);
+    void (*setup_session)(DisplayServer *server, Session *session);
     void (*stop)(DisplayServer *server);
 } DisplayServerClass;
 
@@ -51,6 +56,8 @@ gint display_server_get_vt (DisplayServer *server);
 
 gboolean display_server_start (DisplayServer *server);
 
+void display_server_setup_session (DisplayServer *server, Session *session);
+
 void display_server_stop (DisplayServer *server);
 
 gboolean display_server_get_is_stopping (DisplayServer *server);
index 6a796b70280d698a65441ef7d98ef01c3ceb1251..52bf5987e16f7e9242f4716540a9634b1317d611 100644 (file)
@@ -94,6 +94,12 @@ typedef enum
 
 static gboolean read_cb (GIOChannel *source, GIOCondition condition, gpointer data);
 
+Greeter *
+greeter_new (void)
+{
+    return g_object_new (GREETER_TYPE, NULL);
+}
+
 void
 greeter_set_pam_services (Greeter *greeter, const gchar *pam_service, const gchar *autologin_pam_service)
 {
index aa9fbc8ea1dafa0309d9969d812c49bc185729b6..db60e3c24a29098f6e92c4868b4187897e87c6d2 100644 (file)
@@ -40,6 +40,8 @@ typedef struct
 
 GType greeter_get_type (void);
 
+Greeter *greeter_new (void);
+
 void greeter_set_pam_services (Greeter *greeter, const gchar *pam_service, const gchar *autologin_pam_service);
 
 void greeter_set_allow_guest (Greeter *greeter, gboolean allow_guest);
index 3e18735f2fb79bb236bcf617cb5811246482d3ca..0789ed0d61c0f11cd4d14e216ffb71eeee4fbc3a 100644 (file)
@@ -17,8 +17,6 @@
 #include "seat-unity.h"
 #include "configuration.h"
 #include "x-server-local.h"
-#include "x-greeter.h"
-#include "x-session.h"
 #include "vt.h"
 #include "plymouth.h"
 
@@ -482,23 +480,23 @@ seat_unity_create_display_server (Seat *seat)
 static Greeter *
 seat_unity_create_greeter_session (Seat *seat)
 {
-    XGreeter *greeter_session;
+    Greeter *greeter_session;
 
-    greeter_session = x_greeter_new ();
+    greeter_session = greeter_new ();
     session_set_env (SESSION (greeter_session), "XDG_SEAT", "seat0");
 
-    return GREETER (greeter_session);
+    return greeter_session;
 }
 
 static Session *
 seat_unity_create_session (Seat *seat)
 {
-    XSession *session;
+    Session *session;
 
-    session = x_session_new ();
-    session_set_env (SESSION (session), "XDG_SEAT", "seat0");
+    session = session_new ();
+    session_set_env (session, "XDG_SEAT", "seat0");
 
-    return SESSION (session);
+    return session;
 }
 
 static void
index 479aad6f3bd4b7ff6b266e50c12fd2069a991a0a..2c063fb82688b73bcf77cc56f0bb66351034e581 100644 (file)
@@ -13,8 +13,6 @@
 
 #include "seat-xdmcp-session.h"
 #include "x-server-remote.h"
-#include "x-greeter.h"
-#include "x-session.h"
 
 struct SeatXDMCPSessionPrivate
 {
@@ -50,18 +48,6 @@ seat_xdmcp_session_create_display_server (Seat *seat)
     return DISPLAY_SERVER (x_server);
 }
 
-static Greeter *
-seat_xdmcp_session_create_greeter_session (Seat *seat)
-{
-    return GREETER (x_greeter_new ());
-}
-
-static Session *
-seat_xdmcp_session_create_session (Seat *seat)
-{
-    return SESSION (x_session_new ());
-}
-
 static void
 seat_xdmcp_session_init (SeatXDMCPSession *seat)
 {
@@ -87,8 +73,6 @@ seat_xdmcp_session_class_init (SeatXDMCPSessionClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
     seat_class->create_display_server = seat_xdmcp_session_create_display_server;
-    seat_class->create_greeter_session = seat_xdmcp_session_create_greeter_session;
-    seat_class->create_session = seat_xdmcp_session_create_session;
     object_class->finalize = seat_xdmcp_session_finalize;
 
     g_type_class_add_private (klass, sizeof (SeatXDMCPSessionPrivate));
index f33607c20f8e3391bf42c64dd68e3ebaa2ec5489..96e734094fce644f0619d18b92432c4d4058653a 100644 (file)
@@ -14,8 +14,6 @@
 #include "seat-xlocal.h"
 #include "configuration.h"
 #include "x-server-local.h"
-#include "x-greeter.h"
-#include "x-session.h"
 #include "vt.h"
 
 G_DEFINE_TYPE (SeatXLocal, seat_xlocal, SEAT_TYPE);
@@ -109,23 +107,23 @@ seat_xlocal_create_display_server (Seat *seat)
 static Greeter *
 seat_xlocal_create_greeter_session (Seat *seat)
 {
-    XGreeter *greeter_session;
+    Greeter *greeter_session;
 
-    greeter_session = x_greeter_new ();
+    greeter_session = SEAT_CLASS (seat_xlocal_parent_class)->create_greeter_session (seat);
     session_set_env (SESSION (greeter_session), "XDG_SEAT", "seat0");
 
-    return GREETER (greeter_session);
+    return greeter_session;
 }
 
 static Session *
 seat_xlocal_create_session (Seat *seat)
 {
-    XSession *session;
+    Session *session;
 
-    session = x_session_new ();
+    session = SEAT_CLASS (seat_xlocal_parent_class)->create_session (seat);
     session_set_env (SESSION (session), "XDG_SEAT", "seat0");
 
-    return SESSION (session);
+    return session;
 }
 
 static void
index dcc356822bf985585cca2ce39d5ea95fb75125e5..211def13852ca895a835cf8862d3924e83926bd1 100644 (file)
@@ -14,8 +14,6 @@
 #include "seat-xremote.h"
 #include "configuration.h"
 #include "x-server-remote.h"
-#include "x-greeter.h"
-#include "x-session.h"
 
 G_DEFINE_TYPE (SeatXRemote, seat_xremote, SEAT_TYPE);
 
@@ -48,18 +46,23 @@ seat_xremote_create_display_server (Seat *seat)
 static Greeter *
 seat_xremote_create_greeter_session (Seat *seat)
 {
-    XGreeter *greeter_session;
+    Greeter *greeter_session;
 
-    greeter_session = x_greeter_new ();
+    greeter_session = SEAT_CLASS (seat_xremote_parent_class)->create_greeter_session (seat);
     session_set_env (SESSION (greeter_session), "XDG_SEAT", "seat0");
 
-    return GREETER (greeter_session);
+    return greeter_session;
 }
 
 static Session *
 seat_xremote_create_session (Seat *seat)
 {
-    return SESSION (x_session_new ());
+    Session *session;
+
+    session = SEAT_CLASS (seat_xremote_parent_class)->create_session (seat);
+    session_set_env (SESSION (session), "XDG_SEAT", "seat0");
+
+    return session;
 }
 
 static void
index f96b43556f88c76e0a954a6fea2b7854006151cd..150972f35b2954fc4c1dee89e9d906a33b9afe69 100644 (file)
@@ -11,8 +11,6 @@
 
 #include "seat-xvnc.h"
 #include "x-server-xvnc.h"
-#include "x-greeter.h"
-#include "x-session.h"
 #include "configuration.h"
 
 G_DEFINE_TYPE (SeatXVNC, seat_xvnc, SEAT_TYPE);
@@ -66,18 +64,6 @@ seat_xvnc_create_display_server (Seat *seat)
     return DISPLAY_SERVER (x_server);
 }
 
-static Greeter *
-seat_xvnc_create_greeter_session (Seat *seat)
-{
-    return GREETER (x_greeter_new ());
-}
-
-static Session *
-seat_xvnc_create_session (Seat *seat)
-{
-    return SESSION (x_session_new ());
-}
-
 static void
 seat_xvnc_run_script (Seat *seat, DisplayServer *display_server, Process *script)
 {
@@ -126,8 +112,6 @@ seat_xvnc_class_init (SeatXVNCClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
     seat_class->create_display_server = seat_xvnc_create_display_server;
-    seat_class->create_greeter_session = seat_xvnc_create_greeter_session;
-    seat_class->create_session = seat_xvnc_create_session;
     seat_class->run_script = seat_xvnc_run_script;
     object_class->finalize = seat_xdmcp_session_finalize;
 
index 36cf7f09faf3eb21e5e834ec8a921b62b4b6654f..8c8268a98dbcc74ac7916a2df776b32278eb761d 100644 (file)
@@ -1354,6 +1354,18 @@ seat_real_start (Seat *seat)
     return TRUE;
 }
 
+static Greeter *
+seat_real_create_greeter_session (Seat *seat)
+{
+    return greeter_new ();
+}
+
+static Session *
+seat_real_create_session (Seat *seat)
+{
+    return session_new ();
+}
+
 static void
 seat_real_set_active_session (Seat *seat, Session *session)
 {
@@ -1447,6 +1459,8 @@ seat_class_init (SeatClass *klass)
     klass->get_start_local_sessions = seat_real_get_start_local_sessions;
     klass->setup = seat_real_setup;
     klass->start = seat_real_start;
+    klass->create_greeter_session = seat_real_create_greeter_session;
+    klass->create_session = seat_real_create_session;
     klass->set_active_session = seat_real_set_active_session;
     klass->get_active_session = seat_real_get_active_session;
     klass->run_script = seat_real_run_script;
index 1f481e88e775378e13246699dac8a5270db6fb96..22a11cd303e5a0e1ac88c178dbb5dcfe1130f662 100644 (file)
@@ -119,6 +119,12 @@ struct SessionPrivate
 
 G_DEFINE_TYPE (Session, session, G_TYPE_OBJECT);
 
+Session *
+session_new (void)
+{
+    return g_object_new (SESSION_TYPE, NULL);
+}
+
 void
 session_set_pam_service (Session *session, const gchar *pam_service)
 {
@@ -469,6 +475,8 @@ session_real_start (Session *session)
 
     g_return_val_if_fail (session->priv->pid == 0, FALSE);
 
+    display_server_setup_session (session->priv->display_server, session);
+
     /* Create pipes to talk to the child */
     if (pipe (to_child_pipe) < 0 || pipe (from_child_pipe) < 0)
     {
@@ -648,6 +656,8 @@ session_real_run (Session *session)
     g_return_if_fail (session->priv->argv != NULL);
     g_return_if_fail (session->priv->pid != 0);
 
+    display_server_setup_session (session->priv->display_server, session);
+
     session->priv->command_run = TRUE;
 
     command = g_strjoinv (" ", session->priv->argv);
@@ -762,6 +772,7 @@ static void
 session_init (Session *session)
 {
     session->priv = G_TYPE_INSTANCE_GET_PRIVATE (session, SESSION_TYPE, SessionPrivate);
+    session->priv->log_filename = g_strdup (".xsession-errors");
 }
 
 static void
index f1cefb0899b9cc4b0d998ca4362e168016ec6541..6e2b2e77a0adfeda4c4e8f6e9c669291306b55e7 100644 (file)
@@ -16,6 +16,8 @@
 
 #include <security/pam_appl.h>
 
+typedef struct Session Session;
+
 #include "display-server.h"
 #include "accounts.h"
 #include "x-authority.h"
@@ -29,11 +31,11 @@ G_BEGIN_DECLS
 
 typedef struct SessionPrivate SessionPrivate;
 
-typedef struct
+struct Session
 {
     GObject         parent_instance;
     SessionPrivate *priv;
-} Session;
+};
 
 typedef struct
 {
@@ -60,6 +62,8 @@ typedef enum
 
 GType session_get_type (void);
 
+Session *session_new (void);
+
 void session_set_pam_service (Session *session, const gchar *pam_service);
 
 void session_set_username (Session *session, const gchar *username);
diff --git a/src/x-greeter.c b/src/x-greeter.c
deleted file mode 100644 (file)
index 3144529..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2013 Robert Ancell.
- * Author: Robert Ancell <robert.ancell@canonical.com>
- * 
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
- * license.
- */
-
-#include <errno.h>
-#include <string.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-#include "x-greeter.h"
-#include "x-server.h"
-#include "configuration.h"
-
-G_DEFINE_TYPE (XGreeter, x_greeter, GREETER_TYPE);
-
-XGreeter *
-x_greeter_new (void)
-{
-    return g_object_new (XGREETER_TYPE, NULL);
-}
-
-static void
-setup_env (XGreeter *greeter)
-{
-    DisplayServer *display_server;
-    gint vt;
-
-    display_server = session_get_display_server (SESSION (greeter));
-
-    vt = display_server_get_vt (display_server);
-    if (vt > 0)
-    {
-        gchar *t;
-
-        t = g_strdup_printf ("/dev/tty%d", vt);
-        session_set_tty (SESSION (greeter), t);
-        g_free (t);
-
-        t = g_strdup_printf ("%d", vt);
-        session_set_env (SESSION (greeter), "XDG_VTNR", t);
-        g_free (t);
-    }
-
-    session_set_env (SESSION (greeter), "DISPLAY", x_server_get_address (X_SERVER (display_server)));
-    session_set_tty (SESSION (greeter), x_server_get_address (X_SERVER (display_server)));
-    session_set_xdisplay (SESSION (greeter), x_server_get_address (X_SERVER (display_server)));
-    session_set_remote_host_name (SESSION (greeter), x_server_get_hostname (X_SERVER (display_server)));
-    session_set_x_authority (SESSION (greeter),
-                             x_server_get_authority (X_SERVER (display_server)),
-                             config_get_boolean (config_get_instance (), "LightDM", "user-authority-in-system-dir"));
-}
-
-static gboolean
-x_greeter_start (Session *session)
-{
-    setup_env (XGREETER (session));
-    return SESSION_CLASS (x_greeter_parent_class)->start (session);
-}
-
-static void
-x_greeter_run (Session *session)
-{
-    setup_env (XGREETER (session));
-    SESSION_CLASS (x_greeter_parent_class)->run (session);
-}
-
-static void
-x_greeter_init (XGreeter *session)
-{
-}
-
-static void
-x_greeter_class_init (XGreeterClass *klass)
-{
-    SessionClass *session_class = SESSION_CLASS (klass);
-
-    session_class->start = x_greeter_start;
-    session_class->run = x_greeter_run;
-}
diff --git a/src/x-greeter.h b/src/x-greeter.h
deleted file mode 100644 (file)
index c724b6c..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2013 Robert Ancell.
- * Author: Robert Ancell <robert.ancell@canonical.com>
- * 
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
- * license.
- */
-
-#ifndef XGREETER_H_
-#define XGREETER_H_
-
-#include "greeter.h"
-
-G_BEGIN_DECLS
-
-#define XGREETER_TYPE (x_greeter_get_type())
-#define XGREETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XGREETER_TYPE, XGreeter))
-
-typedef struct XGreeterPrivate XGreeterPrivate;
-
-typedef struct
-{
-    Greeter          parent_instance;
-    XGreeterPrivate *priv;
-} XGreeter;
-
-typedef struct
-{
-    GreeterClass parent_class;
-} XGreeterClass;
-
-GType x_greeter_get_type (void);
-
-XGreeter *x_greeter_new (void);
-
-G_END_DECLS
-
-#endif /* XGREETER_H_ */
index 7a5d6da6389b6a38871a124df3e301f4975d0eeb..8bc14dc4868ad125d82acbfb7a9d25f46bcd2eac 100644 (file)
@@ -14,7 +14,7 @@
 #include <xcb/xcb.h>
 
 #include "x-server.h"
-#include "x-session.h"
+#include "configuration.h"
 
 struct XServerPrivate
 {  
@@ -133,6 +133,36 @@ x_server_start (DisplayServer *display_server)
 }
 
 static void
+x_server_setup_session (DisplayServer *display_server, Session *session)
+{
+    gint vt;
+
+    display_server = session_get_display_server (session);
+
+    vt = display_server_get_vt (display_server);
+    if (vt > 0)
+    {
+        gchar *t;
+
+        t = g_strdup_printf ("/dev/tty%d", vt);
+        session_set_tty (session, t);
+        g_free (t);
+
+        t = g_strdup_printf ("%d", vt);
+        session_set_env (session, "XDG_VTNR", t);
+        g_free (t);
+    }
+
+    session_set_env (session, "DISPLAY", x_server_get_address (X_SERVER (display_server)));
+    session_set_tty (session, x_server_get_address (X_SERVER (display_server)));
+    session_set_xdisplay (session, x_server_get_address (X_SERVER (display_server)));
+    session_set_remote_host_name (session, x_server_get_hostname (X_SERVER (display_server)));
+    session_set_x_authority (session,
+                             x_server_get_authority (X_SERVER (display_server)),
+                             config_get_boolean (config_get_instance (), "LightDM", "user-authority-in-system-dir"));
+}
+
+void
 x_server_init (XServer *server)
 {
     server->priv = G_TYPE_INSTANCE_GET_PRIVATE (server, X_SERVER_TYPE, XServerPrivate);
@@ -162,6 +192,7 @@ x_server_class_init (XServerClass *klass)
     DisplayServerClass *display_server_class = DISPLAY_SERVER_CLASS (klass);
 
     display_server_class->start = x_server_start;
+    display_server_class->setup_session = x_server_setup_session;
     object_class->finalize = x_server_finalize;
 
     g_type_class_add_private (klass, sizeof (XServerPrivate));
diff --git a/src/x-session.c b/src/x-session.c
deleted file mode 100644 (file)
index 27cbcb1..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2010-2011 Robert Ancell.
- * Author: Robert Ancell <robert.ancell@canonical.com>
- * 
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
- * license.
- */
-
-#include <errno.h>
-#include <string.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-#include "x-session.h"
-#include "x-server.h"
-#include "configuration.h"
-
-G_DEFINE_TYPE (XSession, x_session, SESSION_TYPE);
-
-XSession *
-x_session_new (void)
-{
-    XSession *session;
-
-    session = g_object_new (XSESSION_TYPE, NULL);
-    session_set_log_file (SESSION (session), ".xsession-errors");
-
-    return session;
-}
-
-static void
-setup_env (XSession *session)
-{
-    DisplayServer *display_server;
-    gint vt;
-
-    display_server = session_get_display_server (SESSION (session));
-
-    vt = display_server_get_vt (display_server);
-    if (vt > 0)
-    {
-        gchar *t;
-
-        t = g_strdup_printf ("/dev/tty%d", vt);
-        session_set_tty (SESSION (session), t);
-        g_free (t);
-
-        t = g_strdup_printf ("%d", vt);
-        session_set_env (SESSION (session), "XDG_VTNR", t);
-        g_free (t);
-    }
-
-    session_set_env (SESSION (session), "DISPLAY", x_server_get_address (X_SERVER (display_server)));
-    session_set_tty (SESSION (session), x_server_get_address (X_SERVER (display_server)));
-    session_set_xdisplay (SESSION (session), x_server_get_address (X_SERVER (display_server)));
-    session_set_remote_host_name (SESSION (session), x_server_get_hostname (X_SERVER (display_server)));
-    session_set_x_authority (SESSION (session),
-                             x_server_get_authority (X_SERVER (display_server)),
-                             config_get_boolean (config_get_instance (), "LightDM", "user-authority-in-system-dir"));
-}
-
-static gboolean
-x_session_start (Session *session)
-{
-    setup_env (XSESSION (session));
-    return SESSION_CLASS (x_session_parent_class)->start (session);
-}
-
-static void
-x_session_run (Session *session)
-{
-    setup_env (XSESSION (session));
-    SESSION_CLASS (x_session_parent_class)->run (session);
-}
-
-static void
-x_session_init (XSession *session)
-{
-}
-
-static void
-x_session_class_init (XSessionClass *klass)
-{
-    SessionClass *session_class = SESSION_CLASS (klass);
-
-    session_class->start = x_session_start;
-    session_class->run = x_session_run;
-}
diff --git a/src/x-session.h b/src/x-session.h
deleted file mode 100644 (file)
index 012f7db..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2010-2011 Robert Ancell.
- * Author: Robert Ancell <robert.ancell@canonical.com>
- * 
- * This program is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later
- * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
- * license.
- */
-
-#ifndef XSESSION_H_
-#define XSESSION_H_
-
-#include "session.h"
-
-G_BEGIN_DECLS
-
-#define XSESSION_TYPE (x_session_get_type())
-#define XSESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XSESSION_TYPE, XSession))
-
-typedef struct XSessionPrivate XSessionPrivate;
-
-typedef struct
-{
-    Session          parent_instance;
-    XSessionPrivate *priv;
-} XSession;
-
-typedef struct
-{
-    SessionClass parent_class;
-} XSessionClass;
-
-GType x_session_get_type (void);
-
-XSession *x_session_new (void);
-
-G_END_DECLS
-
-#endif /* XSESSION_H_ */