mirror of
https://github.com/hyprwm/hyprlock.git
synced 2026-05-20 03:38:06 +02:00
pam: start conversation right away (#1003)
* Revert "auth: don't start pam conversation before the initial input happens (#409)"
This reverts commit 3bedae4436.
* pam: fix some logic cleanup
This commit is contained in:
parent
d332164dd9
commit
927e09fb7d
1 changed files with 6 additions and 11 deletions
|
|
@ -27,18 +27,17 @@ int conv(int num_msg, const struct pam_message** msg, struct pam_response** resp
|
|||
const auto PROMPTCHANGED = PROMPT != CONVERSATIONSTATE->prompt;
|
||||
Log::logger->log(Log::INFO, "PAM_PROMPT: {}", PROMPT);
|
||||
|
||||
if (PROMPTCHANGED)
|
||||
g_pHyprlock->enqueueForceUpdateTimers();
|
||||
|
||||
// Some pam configurations ask for the password twice for whatever reason (Fedora su for example)
|
||||
// When the prompt is the same as the last one, I guess our answer can be the same.
|
||||
if (!initialPrompt && PROMPTCHANGED) {
|
||||
if (initialPrompt || PROMPTCHANGED) {
|
||||
CONVERSATIONSTATE->prompt = PROMPT;
|
||||
g_pHyprlock->enqueueForceUpdateTimers();
|
||||
|
||||
CONVERSATIONSTATE->waitForInput();
|
||||
}
|
||||
|
||||
// Needed for unlocks via SIGUSR1
|
||||
if (g_pHyprlock->isUnlocked())
|
||||
if (g_pHyprlock->m_bTerminate)
|
||||
return PAM_CONV_ERR;
|
||||
|
||||
pamReply[i].resp = strdup(CONVERSATIONSTATE->input.c_str());
|
||||
|
|
@ -83,18 +82,14 @@ void CPam::init() {
|
|||
while (true) {
|
||||
resetConversation();
|
||||
|
||||
// Initial input
|
||||
m_sConversationState.prompt = "Password: ";
|
||||
waitForInput();
|
||||
|
||||
// For grace or SIGUSR1 unlocks
|
||||
if (g_pHyprlock->isUnlocked())
|
||||
if (g_pHyprlock->m_bTerminate)
|
||||
return;
|
||||
|
||||
const auto AUTHENTICATED = auth();
|
||||
|
||||
// For SIGUSR1 unlocks
|
||||
if (g_pHyprlock->isUnlocked())
|
||||
if (g_pHyprlock->m_bTerminate)
|
||||
return;
|
||||
|
||||
if (!AUTHENTICATED)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue