You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sddm/sddm-auth2.patch

91 lines
3.8 KiB

--- ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/auth/AuthenticatorApp.cpp.auth2 2013-11-06 20:54:19.505419712 +0100
+++ ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/auth/AuthenticatorApp.cpp 2013-11-06 20:54:28.079461963 +0100
@@ -158,6 +158,28 @@ namespace SDDM {
return true;
}
+ QString AuthenticatorApp::requestDisplay() {
+ qDebug() << " AUTH: requestDisplay start";
+ QDataStream inStream(&m_input);
+ QDataStream outStream(&m_output);
+ quint32 command = quint32(AuthMessages::AuthNone);
+ qDebug() << " AUTH: Requesting Display";
+ QString display;
+
+ outStream << quint32(AuthMessages::RequestDisplay);
+
+ inStream >> command;
+ if (command != quint32(AuthMessages::Display)) {
+ qDebug() << " AUTH: Received out of order message" << command << "when waiting for SessionID";
+ handleMessage(AuthMessages(command));
+ return display;
+ }
+ inStream >> display;
+
+ qDebug() << " AUTH: requestDisplay end";
+ return display;
+ }
+
void AuthenticatorApp::slotLoginFailed() {
QDataStream outStream(&m_output);
outStream << quint32(AuthMessages::LoginFailed);
--- ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/auth/AuthenticatorApp.h.auth2 2013-11-06 20:54:15.730401120 +0100
+++ ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/auth/AuthenticatorApp.h 2013-11-06 20:54:48.392562174 +0100
@@ -42,6 +42,7 @@ namespace SDDM {
QProcessEnvironment requestEnvironment(const QString &user);
int requestSessionId();
bool requestCookieTo(const QString &path, const QString &user);
+ QString requestDisplay();
signals:
void started(const QString &user, const QString &session, const QString &password, bool passwordless);
--- ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/auth/Method.cpp.auth2 2013-11-06 20:54:12.875387062 +0100
+++ ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/auth/Method.cpp 2013-11-06 20:54:29.735470126 +0100
@@ -100,15 +100,17 @@ namespace SDDM {
if (!m_pam)
return false;
-/*
+
+ QString display = AuthenticatorApp::instance()->requestDisplay();
+
// set tty
- if (!m_pam->setItem(PAM_TTY, ":0"))
+ if (!m_pam->setItem(PAM_TTY, qPrintable(display)))
return false;
// set display name
- if (!m_pam->setItem(PAM_XDISPLAY, ":0"))
+ if (!m_pam->setItem(PAM_XDISPLAY, qPrintable(display)))
return false;
-*/
+
// set username
if (!m_pam->setItem(PAM_USER, qPrintable(m_user)))
return false;
--- ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/daemon/Authenticator.cpp.auth2 2013-11-06 20:54:08.851367254 +0100
+++ ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/daemon/Authenticator.cpp 2013-11-06 20:54:31.903480815 +0100
@@ -106,6 +106,9 @@ namespace SDDM {
stream << quint32(AuthMessages::CookieLink);
break;
}
+ case AuthMessages::RequestDisplay:
+ stream << quint32(AuthMessages::Display) << m_display->name();
+ break;
default:
qWarning() << " DAEMON: Child sent message type" << quint32(command) << "which cannot be handled.";
break;
--- ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/common/Messages.h.auth2 2013-11-06 20:54:10.842377053 +0100
+++ ./sddm-50ca5b20354b6d338ce8836a613af19cedb1dca2/src/common/Messages.h 2013-11-06 20:54:34.084491570 +0100
@@ -51,7 +51,9 @@ namespace SDDM {
RequestSessionID,
SessionID,
RequestCookieLink,
- CookieLink
+ CookieLink,
+ RequestDisplay,
+ Display
};
enum Capability {