version 1.31, 2004/03/10 21:23:17 |
version 1.32, 2004/04/20 23:21:23 |
|
|
int |
int |
local_passwd(char *uname, int authenticated) |
local_passwd(char *uname, int authenticated) |
{ |
{ |
struct passwd *pw; |
struct passwd *pw, *opw; |
login_cap_t *lc; |
login_cap_t *lc; |
sigset_t fullset; |
sigset_t fullset; |
time_t period; |
time_t period; |
|
|
warnx("unknown user %s.", uname); |
warnx("unknown user %s.", uname); |
return(1); |
return(1); |
} |
} |
|
if ((opw = pw_dup(pw)) == NULL) { |
|
warn(NULL); |
|
return(1); |
|
} |
if ((lc = login_getclass(pw->pw_class)) == NULL) { |
if ((lc = login_getclass(pw->pw_class)) == NULL) { |
warnx("unable to get login class for user %s.", uname); |
warnx("unable to get login class for user %s.", uname); |
return(1); |
return(1); |
|
|
pw_error(_PATH_MASTERPASSWD, 1, 1); |
pw_error(_PATH_MASTERPASSWD, 1, 1); |
|
|
/* Update master.passwd file and rebuild spwd.db. */ |
/* Update master.passwd file and rebuild spwd.db. */ |
pw_copy(pfd, tfd, pw); |
pw_copy(pfd, tfd, pw, opw); |
|
free(opw); |
if (pw_mkdb(uname, pwflags) < 0) |
if (pw_mkdb(uname, pwflags) < 0) |
pw_error(NULL, 0, 1); |
pw_error(NULL, 0, 1); |
|
|