Lines Matching defs:net_data

72 static struct net_data *init(void);
73 static void freepvt(struct net_data *);
74 static struct hostent *fakeaddr(const char *, int, struct net_data *);
86 struct net_data *net_data = init();
88 return (gethostbyname_p(name, net_data));
93 struct net_data *net_data = init();
95 return (gethostbyname2_p(name, af, net_data));
100 struct net_data *net_data = init();
102 return (gethostbyaddr_p(addr, len, af, net_data));
107 struct net_data *net_data = init();
109 return (gethostent_p(net_data));
114 struct net_data *net_data = init();
115 sethostent_p(stayopen, net_data);
121 struct net_data *net_data = init();
122 endhostent_p(net_data);
128 gethostbyname_p(const char *name, struct net_data *net_data) {
131 if (!net_data)
134 if (net_data->res->options & RES_USE_INET6) {
135 hp = gethostbyname2_p(name, AF_INET6, net_data);
139 return (gethostbyname2_p(name, AF_INET, net_data));
143 gethostbyname2_p(const char *name, int af, struct net_data *net_data) {
150 if (!net_data || !(ho = net_data->ho))
152 if (net_data->ho_stayopen && net_data->ho_last &&
153 net_data->ho_last->h_addrtype == af) {
154 if (ns_samename(name, net_data->ho_last->h_name) == 1)
155 return (net_data->ho_last);
156 for (hap = net_data->ho_last->h_aliases; hap && *hap; hap++)
158 return (net_data->ho_last);
160 if (!strchr(name, '.') && (cp = res_hostalias(net_data->res, name,
163 if ((hp = fakeaddr(name, af, net_data)) != NULL)
166 net_data->res->retry = __res_retry(net_data->res->retry);
168 net_data->ho_last = (*ho->byname2)(ho, name, af);
170 net_data->res->retry = __res_retry_reset();
172 if (!net_data->ho_stayopen)
174 return (net_data->ho_last);
178 gethostbyaddr_p(const char *addr, int len, int af, struct net_data *net_data) {
182 if (!net_data || !(ho = net_data->ho))
184 if (net_data->ho_stayopen && net_data->ho_last &&
185 net_data->ho_last->h_length == len)
186 for (hap = net_data->ho_last->h_addr_list;
190 return (net_data->ho_last);
191 net_data->ho_last = (*ho->byaddr)(ho, addr, len, af);
192 if (!net_data->ho_stayopen)
194 return (net_data->ho_last);
199 gethostent_p(struct net_data *net_data) {
203 if (!net_data || !(ho = net_data->ho))
207 (net_data->res->options & RES_USE_INET6) == 0U)
209 net_data->ho_last = hp;
210 return (net_data->ho_last);
215 sethostent_p(int stayopen, struct net_data *net_data) {
218 if (!net_data || !(ho = net_data->ho))
220 freepvt(net_data);
222 net_data->ho_stayopen = (stayopen != 0);
224 net_data_minimize(net_data);
228 endhostent_p(struct net_data *net_data) {
231 if ((net_data != NULL) && ((ho = net_data->ho) != NULL))
278 struct net_data *net_data = init();
282 if (net_data == NULL) {
326 options = net_data->res->options;
327 net_data->res->options &= ~RES_USE_INET6;
331 he2 = gethostbyname2_p(name, AF_INET6, net_data);
338 tmp_err = net_data->res->res_h_errno;
346 he2 = gethostbyname2_p(name, AF_INET, net_data);
348 *error_num = net_data->res->res_h_errno;
354 net_data->res->options = options;
366 struct net_data *net_data = init();
373 if (src == NULL|| net_data == NULL) {
409 he1 = gethostbyaddr_p(cp, 4, AF_INET, net_data);
411 *error_num = net_data->res->res_h_errno;
433 he1 = gethostbyaddr_p(src, 16, AF_INET6, net_data);
435 *error_num = net_data->res->res_h_errno;
966 static struct net_data *
968 struct net_data *net_data;
970 if (!(net_data = net_data_init(NULL)))
972 if (!net_data->ho) {
973 net_data->ho = (*net_data->irs->ho_map)(net_data->irs);
974 if (!net_data->ho || !net_data->res) {
981 if (net_data && net_data->res)
982 RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL);
986 (*net_data->ho->res_set)(net_data->ho, net_data->res, NULL);
989 return (net_data);
993 freepvt(struct net_data *net_data) {
994 if (net_data->ho_data) {
995 free(net_data->ho_data);
996 net_data->ho_data = NULL;
1001 fakeaddr(const char *name, int af, struct net_data *net_data) {
1004 freepvt(net_data);
1005 net_data->ho_data = malloc(sizeof (struct pvt));
1006 if (!net_data->ho_data) {
1008 RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL);
1011 pvt = net_data->ho_data;
1031 RES_SET_H_ERRNO(net_data->res, HOST_NOT_FOUND);
1036 if (af == AF_INET && (net_data->res->options & RES_USE_INET6) != 0U) {
1050 RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL);
1059 RES_SET_H_ERRNO(net_data->res, NETDB_SUCCESS);
1076 old_options = net_data->res->options;
1077 net_data->res->options &= ~RES_DNSRCH;
1078 net_data->res->options |= RES_DEFNAMES;
1080 net_data->res->options = old_options;
1081 RES_SET_H_ERRNO(net_data->res, HOST_NOT_FOUND);
1084 net_data->res->options = old_options;
1089 RES_SET_H_ERRNO(net_data->res, HOST_NOT_FOUND);