Lines Matching defs:sv

96 	struct lcl_sv	sv;
123 struct irs_sv *sv;
128 if ((sv = memget(sizeof *sv)) == NULL) {
132 memset(sv, 0x5e, sizeof *sv);
134 memput(sv, sizeof *sv);
139 sv->private = pvt;
140 sv->close = sv_close;
141 sv->next = sv_next;
142 sv->byname = sv_byname;
143 sv->byport = sv_byport;
144 sv->rewind = sv_rewind;
145 sv->minimize = sv_minimize;
146 sv->res_get = NULL;
147 sv->res_set = NULL;
151 return (sv);
164 if (pvt->sv.fp)
165 fclose(pvt->sv.fp);
185 > sizeof pvt->sv.line)
187 key.data = pvt->sv.line;
188 key.size = SPRINTF((pvt->sv.line, "%s/%s", name,
196 return (sv_db_rec(&pvt->sv, &key, &data));
228 ports = (u_short *)pvt->sv.line;
244 return (sv_db_rec(&pvt->sv, &key, &data));
260 if (pvt->sv.fp) {
261 if (fseek(pvt->sv.fp, 0L, SEEK_SET) == 0)
263 (void)fclose(pvt->sv.fp);
264 pvt->sv.fp = NULL;
279 if ((pvt->sv.fp = fopen(_PATH_SERVICES, "r")) == NULL)
281 if (fcntl(fileno(pvt->sv.fp), F_SETFD, 1) < 0) {
282 (void)fclose(pvt->sv.fp);
283 pvt->sv.fp = NULL;
292 if (pvt->dbh == NULL && pvt->sv.fp == NULL)
294 if (pvt->sv.fp == NULL)
306 return (sv_db_rec(&pvt->sv, &key, &data));
311 if (pvt->sv.fp == NULL)
313 return (irs_lclsv_fnxt(&pvt->sv));
326 if (pvt->sv.fp != NULL) {
327 (void)fclose(pvt->sv.fp);
328 pvt->sv.fp = NULL;
335 irs_lclsv_fnxt(struct lcl_sv *sv) {
339 if ((p = fgets(sv->line, BUFSIZ, sv->fp)) == NULL)
343 sv->serv.s_name = p;
353 sv->serv.s_port = htons((u_short)strtol(p, &cp, 10));
357 sv->serv.s_proto = p;
359 q = sv->serv.s_aliases = sv->serv_aliases;
370 if (q < &sv->serv_aliases[IRS_SV_MAXALIASES - 1])
378 return (&sv->serv);
385 sv_db_rec(struct lcl_sv *sv, DBT *key, DBT *data) {
394 sv->serv.s_port = ((u_short *)key->data)[1];
396 if ((size_t)n > sizeof(sv->line)) {
397 n = sizeof(sv->line);
399 memcpy(sv->line, p, n);
400 sv->serv.s_name = sv->line;
401 if ((sv->serv.s_proto = strchr(sv->line, '/')) != NULL)
402 *(sv->serv.s_proto)++ = '\0';
408 if (key->size > sizeof(sv->line))
409 key->size = sizeof(sv->line);
411 memcpy(sv->line, key->data, key->size);
412 sv->serv.s_name = sv->line;
413 if ((sv->serv.s_proto = strchr(sv->line, '/')) != NULL)
414 *(sv->serv.s_proto)++ = '\0';
415 sv->serv.s_port = *(u_short *)data->data;
419 q = sv->serv.s_aliases = sv->serv_aliases;
420 while (data->size > 0 && q < &sv->serv_aliases[IRS_SV_MAXALIASES - 1]) {
428 return (&sv->serv);