Lines Matching refs:sv

90 	struct lcl_sv	sv;  member
117 struct irs_sv *sv; in irs_lcl_sv() local
122 if ((sv = memget(sizeof *sv)) == NULL) { in irs_lcl_sv()
126 memset(sv, 0x5e, sizeof *sv); in irs_lcl_sv()
128 memput(sv, sizeof *sv); in irs_lcl_sv()
133 sv->private = pvt; in irs_lcl_sv()
134 sv->close = sv_close; in irs_lcl_sv()
135 sv->next = sv_next; in irs_lcl_sv()
136 sv->byname = sv_byname; in irs_lcl_sv()
137 sv->byport = sv_byport; in irs_lcl_sv()
138 sv->rewind = sv_rewind; in irs_lcl_sv()
139 sv->minimize = sv_minimize; in irs_lcl_sv()
140 sv->res_get = NULL; in irs_lcl_sv()
141 sv->res_set = NULL; in irs_lcl_sv()
145 return (sv); in irs_lcl_sv()
158 if (pvt->sv.fp) in sv_close()
159 fclose(pvt->sv.fp); in sv_close()
179 > sizeof pvt->sv.line) in sv_byname()
181 key.data = pvt->sv.line; in sv_byname()
182 key.size = SPRINTF((pvt->sv.line, "%s/%s", name, in sv_byname()
190 return (sv_db_rec(&pvt->sv, &key, &data)); in sv_byname()
222 ports = (u_short *)pvt->sv.line; in sv_byport()
238 return (sv_db_rec(&pvt->sv, &key, &data)); in sv_byport()
254 if (pvt->sv.fp) { in sv_rewind()
255 if (fseek(pvt->sv.fp, 0L, SEEK_SET) == 0) in sv_rewind()
257 (void)fclose(pvt->sv.fp); in sv_rewind()
258 pvt->sv.fp = NULL; in sv_rewind()
273 if ((pvt->sv.fp = fopen(_PATH_SERVICES, "r")) == NULL) in sv_rewind()
275 if (fcntl(fileno(pvt->sv.fp), F_SETFD, 1) < 0) { in sv_rewind()
276 (void)fclose(pvt->sv.fp); in sv_rewind()
277 pvt->sv.fp = NULL; in sv_rewind()
286 if (pvt->dbh == NULL && pvt->sv.fp == NULL) in sv_next()
288 if (pvt->sv.fp == NULL) in sv_next()
300 return (sv_db_rec(&pvt->sv, &key, &data)); in sv_next()
305 if (pvt->sv.fp == NULL) in sv_next()
307 return (irs_lclsv_fnxt(&pvt->sv)); in sv_next()
320 if (pvt->sv.fp != NULL) { in sv_minimize()
321 (void)fclose(pvt->sv.fp); in sv_minimize()
322 pvt->sv.fp = NULL; in sv_minimize()
329 irs_lclsv_fnxt(struct lcl_sv *sv) { in irs_lclsv_fnxt() argument
333 if ((p = fgets(sv->line, BUFSIZ, sv->fp)) == NULL) in irs_lclsv_fnxt()
337 sv->serv.s_name = p; in irs_lclsv_fnxt()
347 sv->serv.s_port = htons((u_short)strtol(p, &cp, 10)); in irs_lclsv_fnxt()
351 sv->serv.s_proto = p; in irs_lclsv_fnxt()
353 q = sv->serv.s_aliases = sv->serv_aliases; in irs_lclsv_fnxt()
364 if (q < &sv->serv_aliases[IRS_SV_MAXALIASES - 1]) in irs_lclsv_fnxt()
372 return (&sv->serv); in irs_lclsv_fnxt()
379 sv_db_rec(struct lcl_sv *sv, DBT *key, DBT *data) { in sv_db_rec() argument
388 sv->serv.s_port = ((u_short *)key->data)[1]; in sv_db_rec()
390 if ((size_t)n > sizeof(sv->line)) { in sv_db_rec()
391 n = sizeof(sv->line); in sv_db_rec()
393 memcpy(sv->line, p, n); in sv_db_rec()
394 sv->serv.s_name = sv->line; in sv_db_rec()
395 if ((sv->serv.s_proto = strchr(sv->line, '/')) != NULL) in sv_db_rec()
396 *(sv->serv.s_proto)++ = '\0'; in sv_db_rec()
402 if (key->size > sizeof(sv->line)) in sv_db_rec()
403 key->size = sizeof(sv->line); in sv_db_rec()
405 memcpy(sv->line, key->data, key->size); in sv_db_rec()
406 sv->serv.s_name = sv->line; in sv_db_rec()
407 if ((sv->serv.s_proto = strchr(sv->line, '/')) != NULL) in sv_db_rec()
408 *(sv->serv.s_proto)++ = '\0'; in sv_db_rec()
409 sv->serv.s_port = *(u_short *)data->data; in sv_db_rec()
413 q = sv->serv.s_aliases = sv->serv_aliases; in sv_db_rec()
414 while (data->size > 0 && q < &sv->serv_aliases[IRS_SV_MAXALIASES - 1]) { in sv_db_rec()
422 return (&sv->serv); in sv_db_rec()