]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Set PAM_TTY to the display name, not the tty device
authorRobert Ancell <robert.ancell@canonical.com>
Thu, 15 Sep 2011 23:36:45 +0000 (09:36 +1000)
committerRobert Ancell <robert.ancell@canonical.com>
Thu, 15 Sep 2011 23:36:45 +0000 (09:36 +1000)
NEWS
src/display.c
src/pam-session.c
src/pam-session.h

diff --git a/NEWS b/NEWS
index 095cb50c77295a51c238ddedd9f21dd29cc01208..f7f3e0c62571d2796ed86b60c86a4f1121552cac 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+Overview of changes in lightdm 0.9.7
+
+    * Set PAM_TTY to the display name, not the tty device
+
 Overview of changes in lightdm 0.9.6
 
     * Only unlock displays if switched to from greeter
index f690fb3a1e7ea4bd51e2d59bf783849d74198fd7..0ee760afab60d587859d31baaf15198a8d4d2b69 100644 (file)
@@ -314,7 +314,7 @@ autologin (Display *display, const gchar *username, gboolean start_greeter_if_fa
     display->priv->start_greeter_if_fail = start_greeter_if_fail;
 
     display->priv->in_user_session = TRUE;
-    authentication = pam_session_new (display->priv->pam_autologin_service, username, display->priv->tty, display->priv->xdisplay);
+    authentication = pam_session_new (display->priv->pam_autologin_service, username, display->priv->xdisplay);
     g_signal_connect (authentication, "got-messages", G_CALLBACK (autologin_pam_message_cb), display);
     g_signal_connect (authentication, "authentication-result", G_CALLBACK (autologin_authentication_result_cb), display);
 
@@ -572,7 +572,7 @@ greeter_connected_cb (Greeter *greeter, Display *display)
 static PAMSession *
 greeter_start_authentication_cb (Greeter *greeter, const gchar *username, Display *display)
 {
-    return pam_session_new (display->priv->pam_service, username, display->priv->tty, display->priv->xdisplay);
+    return pam_session_new (display->priv->pam_service, username, display->priv->xdisplay);
 }
 
 static gboolean
@@ -649,7 +649,7 @@ start_greeter_session (Display *display)
     g_free (log_dir);
     g_free (filename);
 
-    authentication = pam_session_new (display->priv->pam_service, user_get_name (user), display->priv->tty, display->priv->xdisplay);
+    authentication = pam_session_new (display->priv->pam_service, user_get_name (user), display->priv->xdisplay);
     g_object_unref (user);
 
     display->priv->session = create_session (display, authentication, display->priv->greeter_session, TRUE, log_filename);
index 10be758ba7807f2477e07e52e9d164b857c44707..bea1206c82f8e70ee4a229b3c19b9ab39dd2bc6d 100644 (file)
@@ -36,9 +36,6 @@ struct PAMSessionPrivate
     /* Username when using passwd module */
     gchar *username;
 
-    /* TTY */
-    gchar *tty;
-
     /* X Display */
     gchar *xdisplay;
 
@@ -89,7 +86,7 @@ pam_session_set_use_passwd_file (gchar *passwd_file_)
 static int pam_conv_cb (int num_msg, const struct pam_message **msg, struct pam_response **resp, void *app_data);
 
 PAMSession *
-pam_session_new (const gchar *service, const gchar *username, const gchar *tty, const gchar *xdisplay)
+pam_session_new (const gchar *service, const gchar *username, const gchar *xdisplay)
 {
     PAMSession *self = g_object_new (PAM_SESSION_TYPE, NULL);
     struct pam_conv conversation = { pam_conv_cb, self };
@@ -97,7 +94,6 @@ pam_session_new (const gchar *service, const gchar *username, const gchar *tty,
 
     self->priv->service = g_strdup (service);
     self->priv->username = g_strdup (username);
-    self->priv->tty = g_strdup (tty ? tty : "");
     self->priv->xdisplay = g_strdup (xdisplay ? xdisplay : "");
 
     if (!passwd_file)
@@ -131,8 +127,7 @@ pam_session_open (PAMSession *session)
 
     if (!passwd_file && getuid () == 0)
     {
-        pam_set_item (session->priv->pam_handle, PAM_TTY, session->priv->tty);
-        pam_set_item (session->priv->pam_handle, PAM_XDISPLAY, session->priv->xdisplay);
+        pam_set_item (session->priv->pam_handle, PAM_TTY, session->priv->xdisplay);
         result = pam_open_session (session->priv->pam_handle, 0);
         g_debug ("pam_open_session(%p, 0) -> %d (%s)",
                  session->priv->pam_handle,
@@ -551,7 +546,6 @@ pam_session_finalize (GObject *object)
 
     g_free (self->priv->service);
     g_free (self->priv->username);
-    g_free (self->priv->tty);
     g_free (self->priv->xdisplay);
     if (self->priv->user)
         g_object_unref (self->priv->user);
index f075d38fea43af94250e6587650e5e5745fdde4a..ce83e57665f8d8d7deb8086a90a26428094626af 100644 (file)
@@ -46,7 +46,7 @@ void pam_session_set_use_pam (void);
 
 void pam_session_set_use_passwd_file (gchar *passwd_file);
 
-PAMSession *pam_session_new (const gchar *service, const gchar *username, const gchar *tty, const gchar *xdisplay);
+PAMSession *pam_session_new (const gchar *service, const gchar *username, const gchar *xdisplay);
 
 gboolean pam_session_authenticate (PAMSession *session, GError **error);