summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2015-11-19 14:24:49 +1300
committerRobert Ancell <robert.ancell@canonical.com>2015-11-19 14:24:49 +1300
commit09c292be4c9cdecf0e2ab0d3fd169c4fd32dc760 (patch)
tree9fe0da98aad80c942d31ec09d1ce4e525cd44efd
parent6021ea6e6804c49420cbfbfcaf371807e1d9c086 (diff)
downloadlightdm-09c292be4c9cdecf0e2ab0d3fd169c4fd32dc760.tar.gz
Don't start LightDM if the XDMCP server is configured with a key that doesn't exist
-rw-r--r--src/lightdm.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/lightdm.c b/src/lightdm.c
index b5f02d68..21895111 100644
--- a/src/lightdm.c
+++ b/src/lightdm.c
@@ -907,7 +907,7 @@ bus_acquired_cb (GDBusConnection *connection,
keys = g_key_file_new ();
result = g_key_file_load_from_file (keys, path, G_KEY_FILE_NONE, &error);
if (error)
- g_debug ("Error getting key %s", error->message);
+ g_warning ("Unable to load keys from %s: %s", path, error->message);
g_clear_error (&error);
if (result)
@@ -915,7 +915,7 @@ bus_acquired_cb (GDBusConnection *connection,
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 ("Key %s not defined", key_name);
+ g_warning ("Key %s not defined", key_name);
}
g_free (path);
g_key_file_free (keys);
@@ -924,9 +924,18 @@ bus_acquired_cb (GDBusConnection *connection,
xdmcp_server_set_key (xdmcp_server, key);
g_free (key_name);
g_free (key);
-
- g_debug ("Starting XDMCP server on UDP/IP port %d", xdmcp_server_get_port (xdmcp_server));
- xdmcp_server_start (xdmcp_server);
+
+ if (key_name && !key)
+ {
+ exit_code = EXIT_FAILURE;
+ display_manager_stop (display_manager);
+ return;
+ }
+ else
+ {
+ g_debug ("Starting XDMCP server on UDP/IP port %d", xdmcp_server_get_port (xdmcp_server));
+ xdmcp_server_start (xdmcp_server);
+ }
}
/* Start the VNC server */