MODRET authfile_getpwent(cmd_rec *cmd) { struct passwd *pwd = NULL; pwd = af_getpwent(); return pwd ? mod_create_data(cmd, pwd) : PR_DECLINED(cmd); }
static struct passwd *af_getpwuid(uid_t uid) { struct passwd *pwd = NULL; if (af_setpwent() < 0) return NULL; while ((pwd = af_getpwent()) != NULL) { if (pwd->pw_uid == uid) { /* Found the requested UID */ break; } } return pwd; }
static struct passwd *af_getpwnam(const char *name) { struct passwd *pwd = NULL; if (af_setpwent() < 0) { return NULL; } while ((pwd = af_getpwent()) != NULL) { pr_signals_handle(); if (strcmp(name, pwd->pw_name) == 0) { /* Found the requested user */ break; } } return pwd; }
MODRET authfile_getpwnam(cmd_rec *cmd) { struct passwd *pwd = NULL; const char *name = cmd->argv[0]; if (af_setpwent() < 0) return PR_DECLINED(cmd); /* Ugly -- we iterate through the file. Time-consuming. */ while ((pwd = af_getpwent()) != NULL) { if (strcmp(name, pwd->pw_name) == 0) { /* Found the requested name */ break; } } return pwd ? mod_create_data(cmd, pwd) : PR_DECLINED(cmd); }
static struct passwd *af_getpwuid(pool *p, uid_t uid) { struct passwd *pwd = NULL; if (af_setpwent(p) < 0) { return NULL; } while ((pwd = af_getpwent(p)) != NULL) { pr_signals_handle(); if (pwd->pw_uid == uid) { /* Found the requested UID */ break; } } return pwd; }