version 1.75, 2006/08/03 03:34:41 |
version 1.76, 2007/08/23 02:49:43 |
|
|
struct passwd * |
struct passwd * |
getpwnamallow(const char *user) |
getpwnamallow(const char *user) |
{ |
{ |
#ifdef HAVE_LOGIN_CAP |
|
extern login_cap_t *lc; |
extern login_cap_t *lc; |
#ifdef BSD_AUTH |
#ifdef BSD_AUTH |
auth_session_t *as; |
auth_session_t *as; |
#endif |
#endif |
#endif |
|
struct passwd *pw; |
struct passwd *pw; |
|
|
parse_server_match_config(&options, user, |
parse_server_match_config(&options, user, |
|
|
} |
} |
if (!allowed_user(pw)) |
if (!allowed_user(pw)) |
return (NULL); |
return (NULL); |
#ifdef HAVE_LOGIN_CAP |
|
if ((lc = login_getclass(pw->pw_class)) == NULL) { |
if ((lc = login_getclass(pw->pw_class)) == NULL) { |
debug("unable to get login class: %s", user); |
debug("unable to get login class: %s", user); |
return (NULL); |
return (NULL); |
|
|
} |
} |
if (as != NULL) |
if (as != NULL) |
auth_close(as); |
auth_close(as); |
#endif |
|
#endif |
#endif |
if (pw != NULL) |
if (pw != NULL) |
return (pwcopy(pw)); |
return (pwcopy(pw)); |