2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
10 #include <afsconfig.h>
11 #include <afs/param.h>
19 #include <security/pam_appl.h>
20 #include "afs_pam_msg.h"
21 #include "afs_message.h"
26 pam_afs_printf(struct pam_conv *pam_convp, int error, int fmt_msgid, ...)
29 char buf[PAM_MAX_MSG_SIZE];
32 struct pam_message mesg;
33 struct pam_message *mesgp = &mesg;
34 struct pam_response *resp = NULL;
37 if (pam_convp == NULL || pam_convp->conv == NULL)
40 fmt_msg = pam_afs_message(fmt_msgid, &freeit);
41 va_start(args, fmt_msgid);
42 vsprintf(buf, fmt_msg, args);
47 mesg.msg_style = error ? PAM_ERROR_MSG : PAM_TEXT_INFO;
49 errcode = (*(pam_convp->conv)) (1, &mesgp, &resp, pam_convp->appdata_ptr);
60 pam_afs_prompt(struct pam_conv *pam_convp, char **response, int echo,
64 char buf[PAM_MAX_MSG_SIZE];
67 struct pam_message mesg;
68 struct pam_message *mesgp = &mesg;
69 struct pam_response *resp = NULL;
72 if (pam_convp == NULL || pam_convp->conv == NULL || response == NULL)
77 fmt_msg = pam_afs_message(fmt_msgid, &freeit);
78 va_start(args, fmt_msgid);
79 vsprintf(buf, fmt_msg, args);
84 mesg.msg_style = echo ? PAM_PROMPT_ECHO_ON : PAM_PROMPT_ECHO_OFF;
87 errcode = (*(pam_convp->conv)) (1, &mesgp, &resp, pam_convp->appdata_ptr);
89 *response = resp->resp;
91 free(resp); /* but not resp->resp */