13e12c5d1SDavid du Colombier #include "lib.h" 23e12c5d1SDavid du Colombier #include <stddef.h> 33e12c5d1SDavid du Colombier #include <pwd.h> 43e12c5d1SDavid du Colombier #include <string.h> 53e12c5d1SDavid du Colombier 63e12c5d1SDavid du Colombier static struct passwd holdpw; 73e12c5d1SDavid du Colombier static char dirbuf[40] = "/usr/"; 83e12c5d1SDavid du Colombier static char *rc = "/bin/rc"; 93e12c5d1SDavid du Colombier 103e12c5d1SDavid du Colombier struct passwd * getpwnam(const char * name)113e12c5d1SDavid du Colombiergetpwnam(const char *name) 123e12c5d1SDavid du Colombier { 133e12c5d1SDavid du Colombier int num; 143e12c5d1SDavid du Colombier char *nam, *mem; 153e12c5d1SDavid du Colombier 163e12c5d1SDavid du Colombier num = 0; 17*781103c4SDavid du Colombier nam = (char *)name; 183e12c5d1SDavid du Colombier mem = 0; 193e12c5d1SDavid du Colombier if(_getpw(&num, &nam, &mem)){ 203e12c5d1SDavid du Colombier holdpw.pw_name = nam; 213e12c5d1SDavid du Colombier holdpw.pw_uid = num; 223e12c5d1SDavid du Colombier holdpw.pw_gid = num; 233e12c5d1SDavid du Colombier strncpy(dirbuf+5, nam, sizeof(dirbuf)-6); 243e12c5d1SDavid du Colombier holdpw.pw_dir = dirbuf; 253e12c5d1SDavid du Colombier holdpw.pw_shell = rc; 263e12c5d1SDavid du Colombier return &holdpw; 273e12c5d1SDavid du Colombier } 283e12c5d1SDavid du Colombier return NULL; 293e12c5d1SDavid du Colombier } 30