Home | History | Annotate | Download | only in irs

Lines Matching refs:sv

98 	struct lcl_sv	sv;
125 struct irs_sv *sv;
130 if ((sv = memget(sizeof *sv)) == NULL) {
134 memset(sv, 0x5e, sizeof *sv);
136 memput(sv, sizeof *sv);
141 sv->private = pvt;
142 sv->close = sv_close;
143 sv->next = sv_next;
144 sv->byname = sv_byname;
145 sv->byport = sv_byport;
146 sv->rewind = sv_rewind;
147 sv->minimize = sv_minimize;
148 sv->res_get = NULL;
149 sv->res_set = NULL;
153 return (sv);
166 if (pvt->sv.fp)
167 fclose(pvt->sv.fp);
187 > sizeof pvt->sv.line)
189 key.data = pvt->sv.line;
190 key.size = SPRINTF((pvt->sv.line, "%s/%s", name,
198 return (sv_db_rec(&pvt->sv, &key, &data));
230 ports = (u_short *)pvt->sv.line;
246 return (sv_db_rec(&pvt->sv, &key, &data));
262 if (pvt->sv.fp) {
263 if (fseek(pvt->sv.fp, 0L, SEEK_SET) == 0)
265 (void)fclose(pvt->sv.fp);
266 pvt->sv.fp = NULL;
281 if ((pvt->sv.fp = fopen(_PATH_SERVICES, "r")) == NULL)
283 if (fcntl(fileno(pvt->sv.fp), F_SETFD, 1) < 0) {
284 (void)fclose(pvt->sv.fp);
285 pvt->sv.fp = NULL;
294 if (pvt->dbh == NULL && pvt->sv.fp == NULL)
296 if (pvt->sv.fp == NULL)
308 return (sv_db_rec(&pvt->sv, &key, &data));
313 if (pvt->sv.fp == NULL)
315 return (irs_lclsv_fnxt(&pvt->sv));
328 if (pvt->sv.fp != NULL) {
329 (void)fclose(pvt->sv.fp);
330 pvt->sv.fp = NULL;
337 irs_lclsv_fnxt(struct lcl_sv *sv) {
341 if ((p = fgets(sv->line, BUFSIZ, sv->fp)) == NULL)
345 sv->serv.s_name = p;
355 sv->serv.s_port = htons((u_short)strtol(p, &cp, 10));
359 sv->serv.s_proto = p;
361 q = sv->serv.s_aliases = sv->serv_aliases;
372 if (q < &sv->serv_aliases[IRS_SV_MAXALIASES - 1])
380 return (&sv->serv);
387 sv_db_rec(struct lcl_sv *sv, DBT *key, DBT *data) {
396 sv->serv.s_port = ((u_short *)key->data)[1];
398 if ((size_t)n > sizeof(sv->line)) {
399 n = sizeof(sv->line);
401 memcpy(sv->line, p, n);
402 sv->serv.s_name = sv->line;
403 if ((sv->serv.s_proto = strchr(sv->line, '/')) != NULL)
404 *(sv->serv.s_proto)++ = '\0';
410 if (key->size > sizeof(sv->line))
411 key->size = sizeof(sv->line);
413 memcpy(sv->line, key->data, key->size);
414 sv->serv.s_name = sv->line;
415 if ((sv->serv.s_proto = strchr(sv->line, '/')) != NULL)
416 *(sv->serv.s_proto)++ = '\0';
417 sv->serv.s_port = *(u_short *)data->data;
421 q = sv->serv.s_aliases = sv->serv_aliases;
422 while (data->size > 0 && q < &sv->serv_aliases[IRS_SV_MAXALIASES - 1]) {
430 return (&sv->serv);