entrance: formating
This commit is contained in:
parent
af02c01ca7
commit
9b3911a4fb
|
@ -35,49 +35,53 @@ static char *_passwd = NULL;
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_entrance_pam_conv(int num_msg, const struct pam_message **msg,
|
_entrance_pam_conv(int num_msg, const struct pam_message **msg,
|
||||||
struct pam_response **resp, void *appdata_ptr EINA_UNUSED) {
|
struct pam_response **resp, void *appdata_ptr EINA_UNUSED)
|
||||||
int i, result = PAM_SUCCESS;
|
{
|
||||||
*resp = (struct pam_response *) calloc(num_msg, sizeof(struct pam_response));
|
int i, result = PAM_SUCCESS;
|
||||||
for (i = 0; i < num_msg; ++i){
|
*resp = (struct pam_response *) calloc(num_msg, sizeof(struct pam_response));
|
||||||
resp[i]->resp=0;
|
for (i = 0; i < num_msg; ++i)
|
||||||
resp[i]->resp_retcode=0;
|
{
|
||||||
switch(msg[i]->msg_style){
|
resp[i]->resp=0;
|
||||||
case PAM_PROMPT_ECHO_ON:
|
resp[i]->resp_retcode=0;
|
||||||
// We assume PAM is asking for the username
|
switch(msg[i]->msg_style)
|
||||||
PT("echo on\n");
|
{
|
||||||
resp[i]->resp = _login;
|
case PAM_PROMPT_ECHO_ON:
|
||||||
break;
|
// We assume PAM is asking for the username
|
||||||
|
PT("echo on\n");
|
||||||
|
resp[i]->resp = _login;
|
||||||
|
break;
|
||||||
|
|
||||||
case PAM_PROMPT_ECHO_OFF:
|
case PAM_PROMPT_ECHO_OFF:
|
||||||
PT("echo off\n");
|
PT("echo off\n");
|
||||||
resp[i]->resp = _passwd;
|
resp[i]->resp = _passwd;
|
||||||
_passwd = NULL;
|
_passwd = NULL;
|
||||||
break;
|
break;
|
||||||
case PAM_ERROR_MSG:
|
case PAM_ERROR_MSG:
|
||||||
PT("error msg\n");
|
PT("error msg\n");
|
||||||
case PAM_TEXT_INFO:
|
case PAM_TEXT_INFO:
|
||||||
PT("info ");
|
PT("info ");
|
||||||
fprintf(stderr, "%s\n", msg[i]->msg);
|
fprintf(stderr, "%s\n", msg[i]->msg);
|
||||||
break;
|
break;
|
||||||
case PAM_SUCCESS:
|
case PAM_SUCCESS:
|
||||||
PT("success :)\n");
|
PT("success :)\n");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
PT("default\n");
|
PT("default\n");
|
||||||
|
}
|
||||||
}
|
if (result != PAM_SUCCESS) break;
|
||||||
if (result != PAM_SUCCESS) break;
|
|
||||||
}
|
}
|
||||||
if (result != PAM_SUCCESS) {
|
if (result != PAM_SUCCESS)
|
||||||
for (i = 0; i < num_msg; ++i){
|
{
|
||||||
|
for (i = 0; i < num_msg; ++i)
|
||||||
|
{
|
||||||
if (resp[i]->resp==0) continue;
|
if (resp[i]->resp==0) continue;
|
||||||
free(resp[i]->resp);
|
free(resp[i]->resp);
|
||||||
resp[i]->resp=0;
|
resp[i]->resp=0;
|
||||||
};
|
}
|
||||||
free(*resp);
|
free(*resp);
|
||||||
*resp=0;
|
*resp=0;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
static char *
|
||||||
|
@ -93,7 +97,7 @@ _get_running_username(void)
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
entrance_pam_open_session()
|
entrance_pam_open_session(void)
|
||||||
{
|
{
|
||||||
last_result = pam_setcred(_pam_handle, PAM_ESTABLISH_CRED);
|
last_result = pam_setcred(_pam_handle, PAM_ESTABLISH_CRED);
|
||||||
switch (last_result)
|
switch (last_result)
|
||||||
|
@ -126,12 +130,14 @@ entrance_pam_open_session()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
entrance_pam_close_session() {
|
entrance_pam_close_session(void)
|
||||||
|
{
|
||||||
PT("PAM close session\n");
|
PT("PAM close session\n");
|
||||||
last_result = pam_close_session(_pam_handle, PAM_SILENT);
|
last_result = pam_close_session(_pam_handle, PAM_SILENT);
|
||||||
switch (last_result) {
|
switch (last_result) {
|
||||||
default:
|
default:
|
||||||
//case PAM_SESSION_ERROR:
|
//case PAM_SESSION_ERROR:
|
||||||
|
PT("error on close session");
|
||||||
pam_setcred(_pam_handle, PAM_DELETE_CRED);
|
pam_setcred(_pam_handle, PAM_DELETE_CRED);
|
||||||
entrance_pam_end();
|
entrance_pam_end();
|
||||||
case PAM_SUCCESS:
|
case PAM_SUCCESS:
|
||||||
|
@ -152,7 +158,8 @@ entrance_pam_close_session() {
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
entrance_pam_end() {
|
entrance_pam_end(void)
|
||||||
|
{
|
||||||
int result;
|
int result;
|
||||||
result = pam_end(_pam_handle, last_result);
|
result = pam_end(_pam_handle, last_result);
|
||||||
_pam_handle = NULL;
|
_pam_handle = NULL;
|
||||||
|
@ -160,7 +167,7 @@ entrance_pam_end() {
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
entrance_pam_authenticate()
|
entrance_pam_authenticate(void)
|
||||||
{
|
{
|
||||||
last_result = pam_authenticate(_pam_handle, 0);
|
last_result = pam_authenticate(_pam_handle, 0);
|
||||||
switch (last_result)
|
switch (last_result)
|
||||||
|
@ -216,7 +223,8 @@ entrance_pam_authenticate()
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
entrance_pam_init(const char *service, const char *display, const char *user) {
|
entrance_pam_init(const char *service, const char *display, const char *user)
|
||||||
|
{
|
||||||
int status;
|
int status;
|
||||||
|
|
||||||
if (!service && !*service) goto pam_error;
|
if (!service && !*service) goto pam_error;
|
||||||
|
@ -255,7 +263,8 @@ entrance_pam_item_set(ENTRANCE_PAM_ITEM_TYPE type, const void *value)
|
||||||
}
|
}
|
||||||
|
|
||||||
const void *
|
const void *
|
||||||
entrance_pam_item_get(ENTRANCE_PAM_ITEM_TYPE type) {
|
entrance_pam_item_get(ENTRANCE_PAM_ITEM_TYPE type)
|
||||||
|
{
|
||||||
const void *data;
|
const void *data;
|
||||||
last_result = pam_get_item(_pam_handle, type, &data);
|
last_result = pam_get_item(_pam_handle, type, &data);
|
||||||
switch (last_result) {
|
switch (last_result) {
|
||||||
|
@ -271,12 +280,14 @@ entrance_pam_item_get(ENTRANCE_PAM_ITEM_TYPE type) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
entrance_pam_env_set(const char *env, const char *value) {
|
entrance_pam_env_set(const char *env, const char *value)
|
||||||
|
{
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
if (!env || !value) return 1;
|
if (!env || !value) return 1;
|
||||||
snprintf(buf, sizeof(buf), "%s=%s", env, value);
|
snprintf(buf, sizeof(buf), "%s=%s", env, value);
|
||||||
last_result = pam_putenv(_pam_handle, buf);
|
last_result = pam_putenv(_pam_handle, buf);
|
||||||
switch (last_result) {
|
switch (last_result)
|
||||||
|
{
|
||||||
default:
|
default:
|
||||||
case PAM_PERM_DENIED:
|
case PAM_PERM_DENIED:
|
||||||
case PAM_ABORT:
|
case PAM_ABORT:
|
||||||
|
@ -285,7 +296,7 @@ entrance_pam_env_set(const char *env, const char *value) {
|
||||||
return 1;
|
return 1;
|
||||||
case PAM_SUCCESS:
|
case PAM_SUCCESS:
|
||||||
break;
|
break;
|
||||||
};
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,13 +16,13 @@ typedef enum ENTRANCE_PAM_ITEM_TYPE_ {
|
||||||
int entrance_pam_item_set(ENTRANCE_PAM_ITEM_TYPE type, const void *value);
|
int entrance_pam_item_set(ENTRANCE_PAM_ITEM_TYPE type, const void *value);
|
||||||
const void *entrance_pam_item_get(ENTRANCE_PAM_ITEM_TYPE);
|
const void *entrance_pam_item_get(ENTRANCE_PAM_ITEM_TYPE);
|
||||||
int entrance_pam_env_set(const char *env, const char *value);
|
int entrance_pam_env_set(const char *env, const char *value);
|
||||||
char **entrance_pam_env_list_get();
|
char **entrance_pam_env_list_get(void);
|
||||||
int entrance_pam_init(const char *service, const char *display, const char *user);
|
int entrance_pam_init(const char *service, const char *display, const char *user);
|
||||||
void entrance_pam_shutdown();
|
void entrance_pam_shutdown(void);
|
||||||
int entrance_pam_open_session();
|
int entrance_pam_open_session(void);
|
||||||
void entrance_pam_close_session();
|
void entrance_pam_close_session(void);
|
||||||
int entrance_pam_authenticate();
|
int entrance_pam_authenticate(void);
|
||||||
int entrance_pam_auth_set(const char *login, const char *passwd);
|
int entrance_pam_auth_set(const char *login, const char *passwd);
|
||||||
int entrance_pam_end();
|
int entrance_pam_end(void);
|
||||||
|
|
||||||
#endif /* ENTRANCE_PAM_H_ */
|
#endif /* ENTRANCE_PAM_H_ */
|
||||||
|
|
Loading…
Reference in New Issue