~lightdm-team/lightdm/1.4

« back to all changes in this revision

Viewing changes to src/seat-xlocal.c

  • Committer: Robert Ancell
  • Date: 2011-07-20 08:30:27 UTC
  • Revision ID: robert.ancell@canonical.com-20110720083027-aaw6vpxtnr2xz8xd
XDMCP keys now stored in keys.conf

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
    XServerLocal *xserver;
33
33
    XDisplay *display;
34
34
    const gchar *config_section;
35
 
    gchar *command = NULL, *layout = NULL, *config_file = NULL, *xdmcp_manager = NULL, *key = NULL;
 
35
    gchar *command = NULL, *layout = NULL, *config_file = NULL, *xdmcp_manager = NULL, *key_name = NULL, *key = NULL;
36
36
    gint port = 0;
37
37
 
38
38
    g_debug ("Starting Local X Display");
84
84
        xserver_local_set_xdmcp_port (xserver, port);
85
85
 
86
86
    if (config_section)
87
 
        key = config_get_string (config_get_instance (), config_section, "xdmcp-key");
88
 
    if (!key)
89
 
        key = config_get_string (config_get_instance (), "SeatDefaults", "xdmcp-key");
 
87
        key_name = config_get_string (config_get_instance (), config_section, "xdmcp-key");
 
88
    if (!key_name)
 
89
        key_name = config_get_string (config_get_instance (), "SeatDefaults", "xdmcp-key");
 
90
    if (key_name)
 
91
    {
 
92
        GKeyFile *keys;
 
93
        GError *error = NULL;
 
94
 
 
95
        keys = g_key_file_new ();
 
96
        if (g_key_file_load_from_file (keys, KEY_FILE, G_KEY_FILE_NONE, &error))
 
97
        {
 
98
            if (g_key_file_has_key (keys, "keyring", key_name, NULL))
 
99
                key = g_key_file_get_string (keys, "keyring", key_name, NULL);
 
100
            else
 
101
                g_debug ("Key %s not defined", error->message);
 
102
        }
 
103
        else
 
104
            g_debug ("Error getting key %s", error->message);
 
105
        g_clear_error (&error);
 
106
        g_key_file_free (keys);
 
107
    }
90
108
    if (key)
91
109
        xserver_local_set_xdmcp_key (xserver, key);
 
110
    g_free (key_name);
92
111
    g_free (key);
93
112
 
94
113
    display = xdisplay_new (XSERVER (xserver));