module-transaction: Add support for initiating PAM Conversations
Modules have the ability to start PAM conversations, so while the transaction code can handle them we did not have a way to init them. Yet. So add some APIs allowing this, making it easier from the go side to handle the conversations. In this commit we only support text-based conversations, but code is designed with the idea of supporting binary cases too. Added the integration tests using the module that is now able to both start conversation and handle them using Go only.
This commit is contained in:
@@ -59,6 +59,11 @@ static inline void init_pam_conv(struct pam_conv *conv, uintptr_t appdata)
|
||||
conv->appdata_ptr = (void *)appdata;
|
||||
}
|
||||
|
||||
static inline int start_pam_conv(struct pam_conv *pc, int num_msgs, const struct pam_message **msgs, struct pam_response **out_resp)
|
||||
{
|
||||
return pc->conv(num_msgs, msgs, out_resp, pc->appdata_ptr);
|
||||
}
|
||||
|
||||
// pam_start_confdir is a recent PAM api to declare a confdir (mostly for
|
||||
// tests) weaken the linking dependency to detect if it’s present.
|
||||
int pam_start_confdir(const char *service_name, const char *user, const struct pam_conv *pam_conversation,
|
||||
|
||||
Reference in New Issue
Block a user