Lines Matching defs:pvt
99 struct pvt {
117 static int initdb(struct pvt *);
124 struct pvt *pvt;
133 if (!(pvt = memget(sizeof *pvt))) {
138 memset(pvt, 0, sizeof *pvt);
139 pw->private = pvt;
155 struct pvt *pvt = (struct pvt *)this->private;
157 if (pvt->pw_db) {
158 (void)(pvt->pw_db->close)(pvt->pw_db);
159 pvt->pw_db = NULL;
161 if (pvt->line)
162 memput(pvt->line, pvt->max);
163 memput(pvt, sizeof *pvt);
169 struct pvt *pvt = (struct pvt *)this->private;
172 char bf[sizeof(pvt->pw_keynum) + 1];
174 if (!initdb(pvt))
177 ++pvt->pw_keynum;
179 memcpy(bf + 1, (char *)&pvt->pw_keynum, sizeof(pvt->pw_keynum));
181 key.size = sizeof(pvt->pw_keynum) + 1;
182 return (hashpw(this, &key) ? &pvt->passwd : NULL);
187 struct pvt *pvt = (struct pvt *)this->private;
192 if (!initdb(pvt))
202 return (rval ? &pvt->passwd : NULL);
208 struct pvt *pvt = (struct pvt *)this->private;
213 if (!initdb(pvt))
223 return (rval ? &pvt->passwd : NULL);
228 struct pvt *pvt = (struct pvt *)this->private;
230 pvt->pw_keynum = 0;
235 struct pvt *pvt = (struct pvt *)this->private;
237 if (pvt->pw_db != NULL) {
238 (void) (*pvt->pw_db->close)(pvt->pw_db);
239 pvt->pw_db = NULL;
246 initdb(struct pvt *pvt) {
249 if (pvt->pw_db) {
250 if (lseek((*pvt->pw_db->fd)(pvt->pw_db), 0L, SEEK_CUR) >= 0L)
253 (void) (*pvt->pw_db->close)(pvt->pw_db);
255 pvt->pw_db = dbopen((p = _PATH_SMP_DB), O_RDONLY, 0, DB_HASH, NULL);
256 if (!pvt->pw_db)
257 pvt->pw_db = dbopen((p =_PATH_MP_DB), O_RDONLY,
259 if (pvt->pw_db)
261 if (!pvt->warned) {
263 pvt->warned++;
270 struct pvt *pvt = (struct pvt *)this->private;
274 if ((pvt->pw_db->get)(pvt->pw_db, key, &data, 0))
277 if (data.size > pvt->max) {
278 size_t newlen = pvt->max + 1024;
283 if (pvt->line != NULL) {
284 memcpy(p, pvt->line, pvt->max);
285 memput(pvt->line, pvt->max);
287 pvt->max = newlen;
288 pvt->line = p;
292 t = pvt->line;
293 l = pvt->line + pvt->max;
298 EXPAND(pvt->passwd.pw_name);
299 EXPAND(pvt->passwd.pw_passwd);
300 SCALAR(pvt->passwd.pw_uid);
301 SCALAR(pvt->passwd.pw_gid);
302 SCALAR(pvt->passwd.pw_change);
303 EXPAND(pvt->passwd.pw_class);
304 EXPAND(pvt->passwd.pw_gecos);
305 EXPAND(pvt->passwd.pw_dir);
306 EXPAND(pvt->passwd.pw_shell);
307 SCALAR(pvt->passwd.pw_expire);