* Install PAM configuration
* Run greeters inside the "lightdm-greeter" PAM service
* Handle setresgid and setresuid not being available
++ * Use xsession directory from lightdm.conf in liblightdm
Overview of changes in lightdm 1.2.0
update_sessions (void)
{
GDir *directory;
++ gboolean result;
GError *error = NULL;
+ GKeyFile *config_key_file = NULL;
+ gchar *config_path = NULL;
+ gchar *xsessions_dir = g_strdup (XSESSIONS_DIR);
+
if (have_sessions)
return;
- directory = g_dir_open (XSESSIONS_DIR, 0, &error);
+ config_path = g_build_filename (CONFIG_DIR, "lightdm.conf", NULL);
+ config_key_file = g_key_file_new ();
- if (!g_key_file_load_from_file (config_key_file, config_path, G_KEY_FILE_NONE, &error)) {
- if (error) {
- g_warning ("Failed to open configuration file: %s", error->message);
- g_clear_error (&error);
- }
- }
- else {
++ result = g_key_file_load_from_file (config_key_file, config_path, G_KEY_FILE_NONE, &error);
++ if (error)
++ g_warning ("Failed to open configuration file: %s", error->message);
++ g_clear_error (&error);
++ if (result)
++ {
+ gchar *xd_value = g_key_file_get_string (config_key_file, "LightDM", "xsessions-directory", NULL);
- if (xd_value) {
++ if (xd_value)
++ {
+ g_free (xsessions_dir);
+ xsessions_dir = xd_value;
+ }
+ }
+ g_key_file_free (config_key_file);
+ g_free (config_path);
+
+ directory = g_dir_open (xsessions_dir, 0, &error);
if (error)
g_warning ("Failed to open sessions directory: %s", error->message);
g_clear_error (&error);
- if (!directory) {
+ if (!directory)
++ {
+ g_free (xsessions_dir);
return;
+ }
while (TRUE)
{