diff options
author | Ted Gould <ted@gould.cx> | 2012-08-29 15:23:12 +0000 |
---|---|---|
committer | Tarmac <> | 2012-08-29 15:23:12 +0000 |
commit | 85ef6a7db86d8e8f34c24126dd6bf0609d37968e (patch) | |
tree | 3babe1da719fa37d066b591df93ed7374ec1b19f /src/pam-freerdp.c | |
parent | 0f1fce81e56f13852b79db0ca40879547cb1a6af (diff) | |
parent | d3eea7ac32b46236e27d337b7a1b712de61dd0d7 (diff) | |
download | libpam-x2go-85ef6a7db86d8e8f34c24126dd6bf0609d37968e.tar.gz libpam-x2go-85ef6a7db86d8e8f34c24126dd6bf0609d37968e.tar.bz2 libpam-x2go-85ef6a7db86d8e8f34c24126dd6bf0609d37968e.zip |
Addign clarification comments. Approved by .
Diffstat (limited to 'src/pam-freerdp.c')
-rw-r--r-- | src/pam-freerdp.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/pam-freerdp.c b/src/pam-freerdp.c index 4714165..7770970 100644 --- a/src/pam-freerdp.c +++ b/src/pam-freerdp.c @@ -48,14 +48,20 @@ get_item (pam_handle_t * pamh, int type) /* Check to see if we just have the value. If we do, great let's dup it some we're consitently allocating memory */ if (type != PAM_TYPE_DOMAIN) { + /* If it's not a domain we can use the PAM functions because the PAM + functions don't support the domain */ char * value = NULL; if (pam_get_item(pamh, type, (const void **)&value) == PAM_SUCCESS && value != NULL) { return value; } if (type == PAM_AUTHTOK && global_password != NULL) { + /* If we're looking for a password, we didn't get one, before + prompting see if we've got a global one. */ return global_password; } } else { + /* Here we only have domains, so we can see if the global domain is + useful for us, if we have it */ if (global_domain != NULL) { return global_domain; } @@ -122,10 +128,13 @@ get_item (pam_handle_t * pamh, int type) char * retval = NULL; if (promptval != NULL) { /* Can't believe it really would be at this point, but let's be sure */ if (type != PAM_TYPE_DOMAIN) { + /* We can only use the PAM functions if it's not the domain */ pam_set_item(pamh, type, (const void *)promptval); /* We're returning the value saved by PAM so we can clear promptval */ pam_get_item(pamh, type, (const void **)&retval); - } else { + } + if (type == PAM_TYPE_DOMAIN) { + /* The domain can be saved globally so we can use it for open */ if (global_domain != NULL) { free(global_domain); } @@ -133,6 +142,7 @@ get_item (pam_handle_t * pamh, int type) retval = global_domain; } if (type == PAM_AUTHTOK) { + /* We also save the password globally if we've got one */ if (global_password != NULL) { memset(global_password, 0, strlen(global_password)); munlock(global_password, strlen(global_password)); |