summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Cameron <brian.cameron@sun.com>2005-08-20 18:39:33 +0000
committerBrian Cameron <bcameron@src.gnome.org>2005-08-20 18:39:33 +0000
commitb861079369fb0f61e58eda7f67441659a3db41e3 (patch)
tree37c33e1cf1506cf1486b6fe11b491baef6749c41
parente0ea01b3ad1170d4ae053dd0fcf0fa0fb2d959b3 (diff)
downloadgdm-b861079369fb0f61e58eda7f67441659a3db41e3.tar.gz
Honor Default Session gdm.conf setting when using autologin. Fixes bug
2005-08-20 Brian Cameron <brian.cameron@sun.com> * daemon/gdm.c, daemon/slave.c: Honor Default Session gdm.conf setting when using autologin. Fixes bug #313996. Patch by HansPetter Jansson <hpj@novell.com>
-rw-r--r--ChangeLog6
-rw-r--r--daemon/gdm.c3
-rw-r--r--daemon/slave.c7
3 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 50109549..e4db8cb7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-08-20 Brian Cameron <brian.cameron@sun.com>
+
+ * daemon/gdm.c, daemon/slave.c: Honor Default Session
+ gdm.conf setting when using autologin. Fixes bug
+ #313996. Patch by HansPetter Jansson <hpj@novell.com>
+
2005-08-18 Brian Cameron <brian.cameron@sun.com>
* gui/gdmflexiserver.c: Fix reading of configuration
diff --git a/daemon/gdm.c b/daemon/gdm.c
index dece5c39..d206cd31 100644
--- a/daemon/gdm.c
+++ b/daemon/gdm.c
@@ -149,6 +149,7 @@ gchar *GdmGtkRC = NULL;
gchar *GdmGtkTheme = NULL;
gchar *GdmSessDir = NULL;
gchar *GdmXsession = NULL;
+gchar *GdmDefaultSession = NULL;
gchar *GdmAutomaticLogin = NULL;
gboolean GdmAutomaticLoginEnable = FALSE;
gboolean GdmAlwaysRestartServer = FALSE;
@@ -463,6 +464,7 @@ gdm_config_parse (void)
GdmXsession = g_build_filename (EXPANDED_SYSCONFDIR,
"gdm", "Xsession", NULL);
}
+ GdmDefaultSession = ve_config_get_string (cfg, GDM_KEY_DEFAULTSESSION);
GdmSuspend = ve_config_get_string (cfg, GDM_KEY_SUSPEND);
GdmUser = ve_config_get_string (cfg, GDM_KEY_USER);
GdmUserAuthDir = ve_config_get_string (cfg, GDM_KEY_UAUTHDIR);
@@ -4262,6 +4264,7 @@ gdm_handle_user_message (GdmConnection *conn, const char *msg, gpointer data)
!(print_defaultstring_if_key (cfg, conn, key, GDM_KEY_UAUTHFILE, GdmUserAuthFile)) &&
!(print_defaultstring_if_key (cfg, conn, key, GDM_KEY_UAUTHFB, GdmUserAuthFB)) &&
!(print_defaultstring_if_key (cfg, conn, key, GDM_KEY_SESSDIR, GdmSessDir)) &&
+ !(print_defaultstring_if_key (cfg, conn, key, GDM_KEY_DEFAULTSESSION, GdmDefaultSession)) &&
#ifdef ENABLE_IPV6
!(print_defaultstring_if_key (cfg, conn, key, GDM_KEY_MULTICAST_ADDR, GdmMulticastAddr)) &&
#endif
diff --git a/daemon/slave.c b/daemon/slave.c
index d8b9d012..f2d522ed 100644
--- a/daemon/slave.c
+++ b/daemon/slave.c
@@ -3421,7 +3421,12 @@ find_a_session (void)
int i;
char *session;
- session = NULL;
+ if (!ve_string_empty (GdmDefaultSession) &&
+ is_session_ok (GdmDefaultSession))
+ session = g_strdup (GdmDefaultSession);
+ else
+ session = NULL;
+
for (i = 0; try[i] != NULL && session == NULL; i ++) {
if (is_session_ok (try[i]))
session = g_strdup (try[i]);