lightdm_CFLAGS = \
$(LIGHTDM_CFLAGS) \
$(WARN_CFLAGS) \
- -DLIGHTDM_BINARY=\"lightdm\" \
- -DCONFIG_FILE=\"$(sysconfdir)/lightdm/lightdm.conf\" \
- -DKEY_FILE=\"$(sysconfdir)/lightdm/keys.conf\" \
+ -DCONFIG_DIR=\"$(sysconfdir)/lightdm\" \
-DLOG_DIR=\"$(localstatedir)/log/lightdm\" \
-DRUN_DIR=\"$(localstatedir)/run/lightdm\" \
-DCACHE_DIR=\"$(localstatedir)/cache/lightdm\" \
key_name = config_get_string (config_get_instance (), "XDMCPServer", "key");
if (key_name)
{
+ gchar *dir, *path;
GKeyFile *keys;
GError *error = NULL;
+ dir = config_get_string (config_get_instance (), "LightDM", "config-directory");
+ path = g_build_filename (dir, "keys.conf", NULL);
+ g_free (dir);
+
keys = g_key_file_new ();
- if (g_key_file_load_from_file (keys, KEY_FILE, G_KEY_FILE_NONE, &error))
+ if (g_key_file_load_from_file (keys, path, G_KEY_FILE_NONE, &error))
{
if (g_key_file_has_key (keys, "keyring", key_name, NULL))
key = g_key_file_get_string (keys, "keyring", key_name, NULL);
else
g_debug ("Error getting key %s", error->message);
g_clear_error (&error);
+ g_free (path);
g_key_file_free (keys);
}
if (key)
gchar *xgreeters_dir = NULL;
gchar *greeter_session = NULL;
gchar *user_session = NULL;
+ gchar *config_dir;
gchar *log_dir = NULL;
gchar *run_dir = NULL;
gchar *cache_dir = NULL;
return EXIT_FAILURE;
}
g_clear_error (&error);
+
if (config_path)
+ {
+ config_dir = g_path_get_basename (config_path);
+ config_dir = path_make_absolute (config_dir);
explicit_config = TRUE;
+ }
else
- config_path = g_strdup (CONFIG_FILE);
+ {
+ config_dir = g_strdup (CONFIG_DIR);
+ config_path = g_build_filename (config_dir, "lightdm.conf", NULL);
+ }
+ config_set_string (config_get_instance (), "LightDM", "config-directory", config_dir);
+ g_free (config_dir);
+
if (test_mode)
{
no_root = TRUE;
if (show_version)
{
/* NOTE: Is not translated so can be easily parsed */
- g_printerr ("%s %s\n", LIGHTDM_BINARY, VERSION);
+ g_printerr ("lightdm %s\n", VERSION);
return EXIT_SUCCESS;
}
g_debug ("Starting Light Display Manager %s, UID=%i PID=%i", VERSION, getuid (), getpid ());
+ g_debug ("Loaded configuration from %s", config_path);
+ g_free (config_path);
+
g_bus_own_name (getuid () == 0 ? G_BUS_TYPE_SYSTEM : G_BUS_TYPE_SESSION,
LDM_BUS_NAME,
G_BUS_NAME_OWNER_FLAGS_NONE,
if (getenv ("DISPLAY"))
g_debug ("Using Xephyr for X servers");
- g_debug ("Loaded configuration from %s", config_path);
-
display_manager = display_manager_new ();
g_signal_connect (display_manager, "stopped", G_CALLBACK (display_manager_stopped_cb), NULL);
key_name = config_get_string (config_get_instance (), "SeatDefaults", "xdmcp-key");
if (key_name)
{
+ gchar *dir, *path;
GKeyFile *keys;
GError *error = NULL;
+ dir = config_get_string (config_get_instance (), "LightDM", "config-directory");
+ path = g_build_filename (dir, "keys.conf", NULL);
+ g_free (dir);
+
keys = g_key_file_new ();
- if (g_key_file_load_from_file (keys, KEY_FILE, G_KEY_FILE_NONE, &error))
+ if (g_key_file_load_from_file (keys, path, G_KEY_FILE_NONE, &error))
{
if (g_key_file_has_key (keys, "keyring", key_name, NULL))
key = g_key_file_get_string (keys, "keyring", key_name, NULL);
}
else
g_debug ("Error getting key %s", error->message);
+ g_free (path);
g_clear_error (&error);
g_key_file_free (keys);
}