~ubuntu-branches/debian/stretch/lightdm/stretch

« back to all changes in this revision

Viewing changes to src/seat-xremote.c

  • Committer: Package Import Robot
  • Author(s): Yves-Alexis Perez
  • Date: 2013-10-20 20:45:55 UTC
  • mfrom: (1.1.17)
  • Revision ID: package-import@ubuntu.com-20131020204555-0ht6bt0lw5bof9fn
Tags: 1.8.2-1
* New upstream release.
* debian/patches:
  - 01_set-default-path, 02_default-config, 05_debianize-pam-files
    refreshed.
  - 03_quit-plymouth disabled for now, to check if problem is really fixed
    upstream.
* debian/control:
  - rename liblightdm-qt-2-0 to liblightdm-qt-3-0 to match updated soname.

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
 
14
14
#include "seat-xremote.h"
15
15
#include "configuration.h"
16
 
#include "xserver-remote.h"
17
 
#include "xsession.h"
 
16
#include "x-server-remote.h"
18
17
 
19
18
G_DEFINE_TYPE (SeatXRemote, seat_xremote, SEAT_TYPE);
20
19
 
26
25
}
27
26
 
28
27
static DisplayServer *
29
 
seat_xremote_create_display_server (Seat *seat)
 
28
seat_xremote_create_display_server (Seat *seat, const gchar *session_type)
30
29
{
31
 
    XServerRemote *xserver;
 
30
    XServerRemote *x_server;
32
31
    const gchar *hostname;
33
32
    gint number;
34
33
 
 
34
    if (strcmp (session_type, "x") != 0)
 
35
    {
 
36
        l_warning (seat, "X remote seat only supports X display servers, not '%s'", session_type);
 
37
        return NULL;
 
38
    }
 
39
 
35
40
    hostname = seat_get_string_property (seat, "xserver-hostname");
36
41
    if (!hostname)
37
42
        hostname = "localhost";
38
43
    number = seat_get_integer_property (seat, "xserver-display-number");
39
44
 
40
 
    g_debug ("Starting remote X display %s:%d", hostname, number);
41
 
 
42
 
    xserver = xserver_remote_new (hostname, number, NULL);
43
 
 
44
 
    return DISPLAY_SERVER (xserver);
 
45
    l_debug (seat, "Starting remote X display %s:%d", hostname, number);
 
46
 
 
47
    x_server = x_server_remote_new (hostname, number, NULL);
 
48
 
 
49
    return DISPLAY_SERVER (x_server);
 
50
}
 
51
 
 
52
static Greeter *
 
53
seat_xremote_create_greeter_session (Seat *seat)
 
54
{
 
55
    Greeter *greeter_session;
 
56
    const gchar *xdg_seat;
 
57
 
 
58
    greeter_session = SEAT_CLASS (seat_xremote_parent_class)->create_greeter_session (seat);
 
59
    xdg_seat = seat_get_string_property (seat, "xdg-seat");
 
60
    if (!xdg_seat)
 
61
        xdg_seat = "seat0";
 
62
    l_debug (seat, "Setting XDG_SEAT=%s", xdg_seat);
 
63
    session_set_env (SESSION (greeter_session), "XDG_SEAT", xdg_seat);
 
64
 
 
65
    return greeter_session;
45
66
}
46
67
 
47
68
static Session *
48
 
seat_xremote_create_session (Seat *seat, Display *display)
 
69
seat_xremote_create_session (Seat *seat)
49
70
{
50
 
    XServerRemote *xserver;
51
 
    XSession *session;
52
 
 
53
 
    xserver = XSERVER_REMOTE (display_get_display_server (display));
54
 
 
55
 
    session = xsession_new (XSERVER (xserver));
56
 
    session_set_remote_host_name (SESSION (session), xserver_get_hostname (XSERVER (xserver)));
57
 
 
58
 
    return SESSION (session);
 
71
    Session *session;
 
72
    const gchar *xdg_seat;
 
73
 
 
74
    session = SEAT_CLASS (seat_xremote_parent_class)->create_session (seat);
 
75
    xdg_seat = seat_get_string_property (seat, "xdg-seat");
 
76
    if (!xdg_seat)
 
77
        xdg_seat = "seat0";
 
78
    l_debug (seat, "Setting XDG_SEAT=%s", xdg_seat);
 
79
    session_set_env (SESSION (session), "XDG_SEAT", xdg_seat);
 
80
 
 
81
    return session;
59
82
}
60
83
 
61
84
static void
62
 
seat_xremote_run_script (Seat *seat, Display *display, Process *script)
 
85
seat_xremote_run_script (Seat *seat, DisplayServer *display_server, Process *script)
63
86
{
64
 
    XServerRemote *xserver;
65
 
 
66
 
    xserver = XSERVER_REMOTE (display_get_display_server (display));
67
 
    process_set_env (script, "DISPLAY", xserver_get_address (XSERVER (xserver)));  
68
 
    process_set_env (script, "REMOTE_HOST", xserver_get_hostname (XSERVER (xserver)));
69
 
 
70
 
    SEAT_CLASS (seat_xremote_parent_class)->run_script (seat, display, script);
 
87
    XServerRemote *x_server;
 
88
 
 
89
    x_server = X_SERVER_REMOTE (display_server);
 
90
    process_set_env (script, "DISPLAY", x_server_get_address (X_SERVER (x_server)));  
 
91
    process_set_env (script, "REMOTE_HOST", x_server_get_hostname (X_SERVER (x_server)));
 
92
 
 
93
    SEAT_CLASS (seat_xremote_parent_class)->run_script (seat, display_server, script);
71
94
}
72
95
 
73
96
static void
82
105
 
83
106
    seat_class->setup = seat_xremote_setup;
84
107
    seat_class->create_display_server = seat_xremote_create_display_server;
 
108
    seat_class->create_greeter_session = seat_xremote_create_greeter_session;
85
109
    seat_class->create_session = seat_xremote_create_session;
86
110
    seat_class->run_script = seat_xremote_run_script;
87
111
}