swaylock: fix pam conversation
This commit is contained in:
parent
1fc6e45a85
commit
b8f8398ae6
20
main.c
20
main.c
@ -48,16 +48,26 @@ int function_conversation(int num_msg, const struct pam_message **msg,
|
|||||||
"PAM_TEXT_INFO",
|
"PAM_TEXT_INFO",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* PAM expects an array of responses, one for each message */
|
||||||
|
struct pam_response *pam_reply = calloc(num_msg, sizeof(struct pam_response));
|
||||||
|
*resp = pam_reply;
|
||||||
|
|
||||||
for(int i=0; i<num_msg; ++i) {
|
for(int i=0; i<num_msg; ++i) {
|
||||||
sway_log(L_DEBUG, "msg[%d]: (%s) %s", i,
|
sway_log(L_DEBUG, "msg[%d]: (%s) %s", i,
|
||||||
msg_style_names[msg[i]->msg_style],
|
msg_style_names[msg[i]->msg_style],
|
||||||
msg[i]->msg);
|
msg[i]->msg);
|
||||||
}
|
|
||||||
|
|
||||||
struct pam_response *pam_reply = malloc(sizeof(struct pam_response));
|
switch (msg[i]->msg_style) {
|
||||||
pam_reply[0].resp = password;
|
case PAM_PROMPT_ECHO_OFF:
|
||||||
pam_reply[0].resp_retcode = 0;
|
case PAM_PROMPT_ECHO_ON:
|
||||||
*resp = pam_reply;
|
pam_reply[i].resp = password;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PAM_ERROR_MSG:
|
||||||
|
case PAM_TEXT_INFO:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return PAM_SUCCESS;
|
return PAM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user