diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2015-11-19 14:24:49 +1300 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2015-11-19 14:24:49 +1300 |
commit | 09c292be4c9cdecf0e2ab0d3fd169c4fd32dc760 (patch) | |
tree | 9fe0da98aad80c942d31ec09d1ce4e525cd44efd /src/lightdm.c | |
parent | 6021ea6e6804c49420cbfbfcaf371807e1d9c086 (diff) | |
download | lightdm-09c292be4c9cdecf0e2ab0d3fd169c4fd32dc760.tar.gz |
Don't start LightDM if the XDMCP server is configured with a key that doesn't exist
Diffstat (limited to 'src/lightdm.c')
-rw-r--r-- | src/lightdm.c | 19 |
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 */ |