summaryrefslogtreecommitdiff
path: root/daemon/gdm-welcome-session.c
diff options
context:
space:
mode:
Diffstat (limited to 'daemon/gdm-welcome-session.c')
-rw-r--r--daemon/gdm-welcome-session.c34
1 files changed, 31 insertions, 3 deletions
diff --git a/daemon/gdm-welcome-session.c b/daemon/gdm-welcome-session.c
index 778d5dce..055cc03b 100644
--- a/daemon/gdm-welcome-session.c
+++ b/daemon/gdm-welcome-session.c
@@ -59,6 +59,7 @@ struct GdmWelcomeSessionPrivate
{
GdmSession *session;
char *command;
+ char *log_file;
GPid pid;
char *user_name;
@@ -94,6 +95,7 @@ enum {
PROP_RUNTIME_DIR,
PROP_SERVER_ADDRESS,
PROP_COMMAND,
+ PROP_LOG_FILE,
PROP_SERVER_DBUS_PATH,
PROP_SERVER_DBUS_INTERFACE,
PROP_SERVER_ENV_VAR_NAME
@@ -771,12 +773,17 @@ on_conversation_started (GdmSession *session,
char *log_path;
char *log_file;
- log_file = g_strdup_printf ("%s-greeter.log", welcome_session->priv->x11_display_name);
- log_path = g_build_filename (LOGDIR, log_file, NULL);
- g_free (log_file);
+ if (welcome_session->priv->log_file == NULL) {
+ log_file = g_strdup_printf ("%s-greeter.log", welcome_session->priv->x11_display_name);
+ log_path = g_build_filename (LOGDIR, log_file, NULL);
+ g_free (log_file);
+ } else {
+ log_path = g_strdup (welcome_session->priv->log_file);
+ }
gdm_session_setup_for_program (GDM_SESSION (welcome_session->priv->session),
"gdm-welcome",
+ welcome_session->priv->user_name,
log_path);
g_free (log_path);
}
@@ -1007,6 +1014,14 @@ _gdm_welcome_session_set_command (GdmWelcomeSession *welcome_session,
}
static void
+_gdm_welcome_session_set_log_file (GdmWelcomeSession *welcome_session,
+ const char *log_file)
+{
+ g_free (welcome_session->priv->log_file);
+ welcome_session->priv->log_file = g_strdup (log_file);
+}
+
+static void
_gdm_welcome_session_set_server_env_var_name (GdmWelcomeSession *welcome_session,
const char *name)
{
@@ -1067,6 +1082,9 @@ gdm_welcome_session_set_property (GObject *object,
case PROP_COMMAND:
_gdm_welcome_session_set_command (self, g_value_get_string (value));
break;
+ case PROP_LOG_FILE:
+ _gdm_welcome_session_set_log_file (self, g_value_get_string (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1126,6 +1144,9 @@ gdm_welcome_session_get_property (GObject *object,
case PROP_COMMAND:
g_value_set_string (value, self->priv->command);
break;
+ case PROP_LOG_FILE:
+ g_value_set_string (value, self->priv->log_file);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1241,6 +1262,13 @@ gdm_welcome_session_class_init (GdmWelcomeSessionClass *klass)
"command",
NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property (object_class,
+ PROP_LOG_FILE,
+ g_param_spec_string ("log-file",
+ "log file",
+ "log file",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
signals [STARTED] =
g_signal_new ("started",
G_OBJECT_CLASS_TYPE (object_class),