Lines Matching refs:net_data

55 static struct net_data *init(void);
56 static struct netent *nw_to_net(struct nwent *, struct net_data *);
57 static void freepvt(struct net_data *);
58 static struct netent *fakeaddr(const char *, int af, struct net_data *);
70 struct net_data *net_data = init(); in getnetent() local
72 return (getnetent_p(net_data)); in getnetent()
77 struct net_data *net_data = init(); in getnetbyname() local
79 return (getnetbyname_p(name, net_data)); in getnetbyname()
84 struct net_data *net_data = init(); in getnetbyaddr() local
86 return (getnetbyaddr_p(net, type, net_data)); in getnetbyaddr()
91 struct net_data *net_data = init(); in setnetent() local
93 setnetent_p(stayopen, net_data); in setnetent()
99 struct net_data *net_data = init(); in endnetent() local
101 endnetent_p(net_data); in endnetent()
107 getnetent_p(struct net_data *net_data) { in getnetent_p() argument
110 if (!net_data || !(nw = net_data->nw)) in getnetent_p()
112 net_data->nww_last = (*nw->next)(nw); in getnetent_p()
113 net_data->nw_last = nw_to_net(net_data->nww_last, net_data); in getnetent_p()
114 return (net_data->nw_last); in getnetent_p()
118 getnetbyname_p(const char *name, struct net_data *net_data) { in getnetbyname_p() argument
123 if (!net_data || !(nw = net_data->nw)) in getnetbyname_p()
125 if (net_data->nw_stayopen && net_data->nw_last) { in getnetbyname_p()
126 if (!strcmp(net_data->nw_last->n_name, name)) in getnetbyname_p()
127 return (net_data->nw_last); in getnetbyname_p()
128 for (nap = net_data->nw_last->n_aliases; nap && *nap; nap++) in getnetbyname_p()
130 return (net_data->nw_last); in getnetbyname_p()
132 if ((np = fakeaddr(name, AF_INET, net_data)) != NULL) in getnetbyname_p()
134 net_data->nww_last = (*nw->byname)(nw, name, AF_INET); in getnetbyname_p()
135 net_data->nw_last = nw_to_net(net_data->nww_last, net_data); in getnetbyname_p()
136 if (!net_data->nw_stayopen) in getnetbyname_p()
138 return (net_data->nw_last); in getnetbyname_p()
142 getnetbyaddr_p(unsigned long net, int type, struct net_data *net_data) { in getnetbyaddr_p() argument
147 if (!net_data || !(nw = net_data->nw)) in getnetbyaddr_p()
149 if (net_data->nw_stayopen && net_data->nw_last) in getnetbyaddr_p()
150 if (type == net_data->nw_last->n_addrtype && in getnetbyaddr_p()
151 net == net_data->nw_last->n_net) in getnetbyaddr_p()
152 return (net_data->nw_last); in getnetbyaddr_p()
185 net_data->nww_last = (*nw->byaddr)(nw, addr, bits, AF_INET); in getnetbyaddr_p()
186 net_data->nw_last = nw_to_net(net_data->nww_last, net_data); in getnetbyaddr_p()
187 if (!net_data->nw_stayopen) in getnetbyaddr_p()
189 return (net_data->nw_last); in getnetbyaddr_p()
196 setnetent_p(int stayopen, struct net_data *net_data) { in setnetent_p() argument
199 if (!net_data || !(nw = net_data->nw)) in setnetent_p()
201 freepvt(net_data); in setnetent_p()
203 net_data->nw_stayopen = (stayopen != 0); in setnetent_p()
205 net_data_minimize(net_data); in setnetent_p()
209 endnetent_p(struct net_data *net_data) { in endnetent_p() argument
212 if ((net_data != NULL) && ((nw = net_data->nw) != NULL)) in endnetent_p()
218 static struct net_data *
220 struct net_data *net_data; in init() local
222 if (!(net_data = net_data_init(NULL))) in init()
224 if (!net_data->nw) { in init()
225 net_data->nw = (*net_data->irs->nw_map)(net_data->irs); in init()
227 if (!net_data->nw || !net_data->res) { in init()
232 (*net_data->nw->res_set)(net_data->nw, net_data->res, NULL); in init()
235 return (net_data); in init()
239 freepvt(struct net_data *net_data) { in freepvt() argument
240 if (net_data->nw_data) { in freepvt()
241 free(net_data->nw_data); in freepvt()
242 net_data->nw_data = NULL; in freepvt()
247 fakeaddr(const char *name, int af, struct net_data *net_data) { in fakeaddr() argument
255 RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL); in fakeaddr()
271 RES_SET_H_ERRNO(net_data->res, HOST_NOT_FOUND); in fakeaddr()
279 freepvt(net_data); in fakeaddr()
280 net_data->nw_data = malloc(sizeof (struct pvt)); in fakeaddr()
281 if (!net_data->nw_data) { in fakeaddr()
283 RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL); in fakeaddr()
286 pvt = net_data->nw_data; in fakeaddr()
300 nw_to_net(struct nwent *nwent, struct net_data *net_data) { in nw_to_net() argument
308 freepvt(net_data); in nw_to_net()
309 net_data->nw_data = malloc(sizeof (struct pvt)); in nw_to_net()
310 if (!net_data->nw_data) { in nw_to_net()
312 RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL); in nw_to_net()
315 pvt = net_data->nw_data; in nw_to_net()