8283N/A@@ -29,6 +29,7 @@ G_BEGIN_DECLS
8283N/A@@ -943,37 +945,35 @@ gdm_slave_add_user_authorization (GdmSla
8108N/A-gdm_slave_parse_enriched_login (GdmSlave *slave,
8108N/A+gdm_slave_parse_enriched_value (GdmSlave *slave,
8108N/A- if (username == NULL || username[0] == '\0') {
8108N/A+ if (value == NULL || value[0] == '\0') {
8108N/A- username_len = strlen (username);
8108N/A- if (username[username_len - 1] != '|') {
8108N/A- return g_strdup (username);
8108N/A+ /* Some keys that end with '|' can cause a script to be run to get
8108N/A+ value_len = strlen (value);
8108N/A+ if (value[value_len - 1] != '|') {
8108N/A /* Remove the pipe symbol */
8108N/A- command = g_strndup (username, username_len - 1);
8108N/A+ command = g_strndup (value, value_len - 1);
8108N/A@@ -985,7 +985,7 @@ gdm_slave_parse_enriched_login (GdmSlave
8108N/A+ g_debug ("GdmSlave: running '%s' to acquire value", command);
8108N/A env = get_script_environment (slave, NULL);
8108N/A@@ -1009,7 +1009,7 @@ gdm_slave_parse_enriched_login (GdmSlave
8108N/A- g_warning ("GdmSlave: Unable to launch
auto/timed login script '%s': %s", username, error->message);
8108N/A+ g_warning ("GdmSlave: Unable to launch script '%s': %s", value, error->message);
8108N/A@@ -1020,13 +1020,55 @@ gdm_slave_parse_enriched_login (GdmSlave
8108N/A if (std_output[0] != '\0') {
8108N/A- parsed_username = g_strdup (std_output);
8108N/A+ parsed_value = g_strdup (std_output);
8283N/A+gdm_slave_get_pam_service (GdmSlave *slave,
8108N/A+ gdm_settings_direct_get_string (GDM_KEY_PAM_SERVICE,
8283N/A+ g_debug ("GdmSlave: PAM service name configuration value: %s",
8283N/A+ pam_service = gdm_slave_parse_enriched_value (slave, temp);
8283N/A+ if (pam_service == NULL) {
8283N/A+ pam_service = g_strdup ("gdm-autologin");
8108N/A+ pam_service = g_strdup ("gdm");
8108N/A+ /* append "-autologin" to PAM service name if using autologin */
8108N/A+ temp = g_strdup_printf ("%s-autologin", pam_service);
8108N/A+ g_debug ("Using PAM service name %s", pam_service);
8108N/A@@ -1070,9 +1112,8 @@ gdm_slave_get_timed_login_details (GdmSl
8108N/A- *usernamep = gdm_slave_parse_enriched_login (slave,
- slave->priv->display_name);
+ *usernamep = gdm_slave_parse_enriched_value (slave,
@@ -593,10 +593,14 @@ on_session_conversation_started (GdmSess
if (slave->priv->greeter_server != NULL) {
gdm_greeter_server_request_timed_login (slave->priv->greeter_server, username, delay);
g_debug ("GdmSimpleSlave: begin auto login for user '%s'", username);
+ pam_service = gdm_slave_get_pam_service (GDM_SLAVE (slave), TRUE);
gdm_session_setup_for_user (GDM_SESSION (slave->priv->session),
+ pam_service, username);
@@ -889,9 +893,13 @@ static void
on_greeter_begin_verification (GdmGreeterServer *greeter_server,
g_debug ("GdmSimpleSlave: begin verification");
- gdm_session_setup (GDM_SESSION (slave->priv->session),
+ pam_service = gdm_slave_get_pam_service (GDM_SLAVE (slave), FALSE);
+ gdm_session_setup (GDM_SESSION (slave->priv->session), pam_service);
@@ -899,10 +907,14 @@ on_greeter_begin_auto_login (GdmGreeterS
g_debug ("GdmSimpleSlave: begin auto login for user '%s'", username);
+ pam_service = gdm_slave_get_pam_service (GDM_SLAVE (slave), TRUE);
gdm_session_setup_for_user (GDM_SESSION (slave->priv->session),
+ pam_service, username);
@@ -910,10 +922,14 @@ on_greeter_begin_verification_for_user (
g_debug ("GdmSimpleSlave: begin verification");
+ pam_service = gdm_slave_get_pam_service (GDM_SLAVE (slave), FALSE);
gdm_session_setup_for_user (GDM_SESSION (slave->priv->session),
+ pam_service, username);
@@ -396,9 +396,14 @@ static void
on_greeter_begin_verification (GdmGreeterServer *greeter_server,
g_debug ("GdmFactorySlave: begin verification");
+ pam_service = gdm_slave_get_pam_service (GDM_SLAVE (slave), FALSE);
gdm_session_setup (GDM_SESSION (slave->priv->session),
@@ -406,10 +411,14 @@ on_greeter_begin_verification_for_user (
g_debug ("GdmFactorySlave: begin verification for user");
+ pam_service = gdm_slave_get_pam_service (GDM_SLAVE (slave), FALSE);
gdm_session_setup_for_user (GDM_SESSION (slave->priv->session),
+ pam_service, username);
@@ -80,6 +80,8 @@ void gdm_slave_set_busy_c
gboolean gdm_slave_run_script (GdmSlave *slave,
+char * gdm_slave_get_pam_service (GdmSlave *slave,
+ gboolean is_autologin);
void gdm_slave_stopped (GdmSlave *slave);
void gdm_slave_set_console_session_id (GdmSlave *slave,