Lines Matching refs:resolver

49 	struct rdns_resolver *resolver = req->resolver;  in rdns_send_request()  local
70 if (resolver->curve_plugin == NULL) { in rdns_send_request()
82 r = resolver->curve_plugin->cb.curve_plugin.send_cb (req, in rdns_send_request()
83 resolver->curve_plugin->data, in rdns_send_request()
88 r = resolver->curve_plugin->cb.curve_plugin.send_cb (req, in rdns_send_request()
89 resolver->curve_plugin->data, in rdns_send_request()
99 req->async_event = resolver->async->add_write (resolver->async->data, in rdns_send_request()
131 req->async_event = resolver->async->add_timer (resolver->async->data, in rdns_send_request()
148 rep->resolver = req->resolver; in rdns_make_reply()
165 struct rdns_resolver *resolver = ioc->resolver; in rdns_find_dns_request() local
185 struct rdns_resolver *resolver = req->resolver; in rdns_parse_reply() local
245 t = rdns_parse_rr (resolver, in, elt, &pos, rep, &r); in rdns_parse_reply()
280 struct rdns_resolver *resolver; in rdns_process_read() local
286 resolver = ioc->resolver; in rdns_process_read()
289 if (resolver->curve_plugin == NULL) { in rdns_process_read()
296 r = resolver->curve_plugin->cb.curve_plugin.recv_cb (ioc, in, in rdns_process_read()
297 sizeof (in), resolver->curve_plugin->data, &req, in rdns_process_read()
309 if (req->resolver->ups && req->io->srv->ups_elt) { in rdns_process_read()
310 req->resolver->ups->ok (req->io->srv->ups_elt, in rdns_process_read()
311 req->resolver->ups->data); in rdns_process_read()
333 struct rdns_resolver *resolver; in rdns_process_timer() local
338 resolver = req->resolver; in rdns_process_timer()
340 if (req->resolver->ups && req->io->srv->ups_elt) { in rdns_process_timer()
341 req->resolver->ups->fail (req->io->srv->ups_elt, in rdns_process_timer()
342 req->resolver->ups->data, "timeout waiting reply"); in rdns_process_timer()
361 if (resolver->ups) { in rdns_process_timer()
362 cnt = resolver->ups->count (resolver->ups->data); in rdns_process_timer()
366 UPSTREAM_FOREACH (resolver->servers, serv) { in rdns_process_timer()
377 if (resolver->ups) { in rdns_process_timer()
380 elt = resolver->ups->select_retransmit ( in rdns_process_timer()
384 resolver->ups->data); in rdns_process_timer()
391 UPSTREAM_SELECT_ROUND_ROBIN (resolver->servers, serv); in rdns_process_timer()
395 UPSTREAM_SELECT_ROUND_ROBIN (resolver->servers, serv); in rdns_process_timer()
433 if (req->resolver->ups && req->io->srv->ups_elt) { in rdns_process_timer()
434 req->resolver->ups->fail (req->io->srv->ups_elt, in rdns_process_timer()
435 req->resolver->ups->data, "cannot send retransmit after timeout"); in rdns_process_timer()
463 struct rdns_resolver *resolver = (struct rdns_resolver*)arg; in rdns_process_periodic() local
465 UPSTREAM_RESCAN (resolver->servers, time (NULL)); in rdns_process_periodic()
471 struct rdns_resolver *resolver = (struct rdns_resolver*)arg; in rdns_process_ioc_refresh() local
476 if (resolver->max_ioc_uses > 0) { in rdns_process_ioc_refresh()
477 UPSTREAM_FOREACH (resolver->servers, serv) { in rdns_process_ioc_refresh()
480 if (ioc->uses > resolver->max_ioc_uses) { in rdns_process_ioc_refresh()
497 nioc->resolver = resolver; in rdns_process_ioc_refresh()
498 nioc->async_io = resolver->async->add_read (resolver->async->data, in rdns_process_ioc_refresh()
516 struct rdns_resolver *resolver; in rdns_process_retransmit() local
520 resolver = req->resolver; in rdns_process_retransmit()
522 resolver->async->del_write (resolver->async->data, in rdns_process_retransmit()
543 if (req->resolver->ups && req->io->srv->ups_elt) { in rdns_process_retransmit()
544 req->resolver->ups->fail (req->io->srv->ups_elt, in rdns_process_retransmit()
545 req->resolver->ups->data, "retransmit send failed"); in rdns_process_retransmit()
564 rdns_select_request_upstream (struct rdns_resolver *resolver, in rdns_select_request_upstream() argument
571 if (resolver->ups) { in rdns_select_request_upstream()
575 elt = resolver->ups->select_retransmit (req->requested_names[0].name, in rdns_select_request_upstream()
578 resolver->ups->data); in rdns_select_request_upstream()
581 elt = resolver->ups->select (req->requested_names[0].name, in rdns_select_request_upstream()
582 req->requested_names[0].len, resolver->ups->data); in rdns_select_request_upstream()
590 UPSTREAM_SELECT_ROUND_ROBIN (resolver->servers, serv); in rdns_select_request_upstream()
594 UPSTREAM_SELECT_ROUND_ROBIN (resolver->servers, serv); in rdns_select_request_upstream()
605 struct rdns_resolver *resolver, in rdns_make_request_full() argument
626 if (resolver == NULL || !resolver->initialized) { in rdns_make_request_full()
627 if (resolver == NULL) { in rdns_make_request_full()
643 req->resolver = resolver; in rdns_make_request_full()
717 HASH_FIND (hh, resolver->fake_elts, idx, sizeof (*idx) + clen, in rdns_make_request_full()
738 if (!rdns_format_dns_name (resolver, last_name, clen, in rdns_make_request_full()
791 req->async = resolver->async; in rdns_make_request_full()
793 serv = rdns_select_request_upstream (resolver, req, false, NULL); in rdns_make_request_full()
805 req->async_event = resolver->async->add_write (resolver->async->data, in rdns_make_request_full()
817 if (resolver->ups && serv->ups_elt) { in rdns_make_request_full()
818 resolver->ups->fail (serv->ups_elt, resolver->ups->data, in rdns_make_request_full()
825 serv = rdns_select_request_upstream (resolver, req, in rdns_make_request_full()
840 if (resolver->ups && serv->ups_elt) { in rdns_make_request_full()
841 resolver->ups->fail (serv->ups_elt, resolver->ups->data, in rdns_make_request_full()
860 REF_RETAIN (req->resolver); in rdns_make_request_full()
866 rdns_resolver_init (struct rdns_resolver *resolver) in rdns_resolver_init() argument
872 if (!resolver->async_binded) { in rdns_resolver_init()
877 if (resolver->servers == NULL) { in rdns_resolver_init()
883 UPSTREAM_FOREACH (resolver->servers, serv) { in rdns_resolver_init()
904 ioc->resolver = resolver; in rdns_resolver_init()
905 ioc->async_io = resolver->async->add_read (resolver->async->data, in rdns_resolver_init()
913 if (resolver->async->add_periodic) { in rdns_resolver_init()
914 resolver->periodic = resolver->async->add_periodic (resolver->async->data, in rdns_resolver_init()
915 UPSTREAM_REVIVE_TIME, rdns_process_periodic, resolver); in rdns_resolver_init()
918 resolver->initialized = true; in rdns_resolver_init()
924 rdns_resolver_register_plugin (struct rdns_resolver *resolver, in rdns_resolver_register_plugin() argument
927 if (resolver != NULL && plugin != NULL) { in rdns_resolver_register_plugin()
930 resolver->curve_plugin = plugin; in rdns_resolver_register_plugin()
936 rdns_resolver_add_server (struct rdns_resolver *resolver, in rdns_resolver_add_server() argument
972 UPSTREAM_ADD (resolver->servers, serv, priority); in rdns_resolver_add_server()
978 rdns_resolver_set_logger (struct rdns_resolver *resolver, in rdns_resolver_set_logger() argument
981 resolver->logger = logger; in rdns_resolver_set_logger()
982 resolver->log_data = log_data; in rdns_resolver_set_logger()
986 rdns_resolver_set_log_level (struct rdns_resolver *resolver, in rdns_resolver_set_log_level() argument
989 resolver->log_level = level; in rdns_resolver_set_log_level()
993 rdns_resolver_set_upstream_lib (struct rdns_resolver *resolver, in rdns_resolver_set_upstream_lib() argument
997 resolver->ups = ups_ctx; in rdns_resolver_set_upstream_lib()
998 resolver->ups->data = ups_data; in rdns_resolver_set_upstream_lib()
1003 rdns_resolver_set_max_io_uses (struct rdns_resolver *resolver, in rdns_resolver_set_max_io_uses() argument
1006 if (resolver->refresh_ioc_periodic != NULL) { in rdns_resolver_set_max_io_uses()
1007 resolver->async->del_periodic (resolver->async->data, in rdns_resolver_set_max_io_uses()
1008 resolver->refresh_ioc_periodic); in rdns_resolver_set_max_io_uses()
1009 resolver->refresh_ioc_periodic = NULL; in rdns_resolver_set_max_io_uses()
1012 resolver->max_ioc_uses = max_ioc_uses; in rdns_resolver_set_max_io_uses()
1013 if (check_time > 0.0 && resolver->async->add_periodic) { in rdns_resolver_set_max_io_uses()
1014 resolver->refresh_ioc_periodic = in rdns_resolver_set_max_io_uses()
1015 resolver->async->add_periodic (resolver->async->data, in rdns_resolver_set_max_io_uses()
1016 check_time, rdns_process_ioc_refresh, resolver); in rdns_resolver_set_max_io_uses()
1021 rdns_resolver_free (struct rdns_resolver *resolver) in rdns_resolver_free() argument
1027 if (resolver->initialized) { in rdns_resolver_free()
1028 if (resolver->periodic != NULL) { in rdns_resolver_free()
1029 resolver->async->del_periodic (resolver->async->data, resolver->periodic); in rdns_resolver_free()
1031 if (resolver->refresh_ioc_periodic != NULL) { in rdns_resolver_free()
1032 resolver->async->del_periodic (resolver->async->data, in rdns_resolver_free()
1033 resolver->refresh_ioc_periodic); in rdns_resolver_free()
1035 if (resolver->curve_plugin != NULL && resolver->curve_plugin->dtor != NULL) { in rdns_resolver_free()
1036 resolver->curve_plugin->dtor (resolver, resolver->curve_plugin->data); in rdns_resolver_free()
1039 UPSTREAM_FOREACH_SAFE (resolver->servers, serv, stmp) { in rdns_resolver_free()
1045 UPSTREAM_DEL (resolver->servers, serv); in rdns_resolver_free()
1051 free (resolver->async); in rdns_resolver_free()
1052 free (resolver); in rdns_resolver_free()
1073 rdns_resolver_async_bind (struct rdns_resolver *resolver, in rdns_resolver_async_bind() argument
1076 if (resolver != NULL && ctx != NULL) { in rdns_resolver_async_bind()
1077 resolver->async = ctx; in rdns_resolver_async_bind()
1078 resolver->async_binded = true; in rdns_resolver_async_bind()
1083 rdns_resolver_set_dnssec (struct rdns_resolver *resolver, bool enabled) in rdns_resolver_set_dnssec() argument
1085 if (resolver) { in rdns_resolver_set_dnssec()
1086 resolver->enable_dnssec = enabled; in rdns_resolver_set_dnssec()
1091 void rdns_resolver_set_fake_reply (struct rdns_resolver *resolver, in rdns_resolver_set_fake_reply() argument
1107 HASH_FIND (hh, resolver->fake_elts, srch, len + sizeof (*srch), fake_rep); in rdns_resolver_set_fake_reply()
1132 HASH_ADD (hh, resolver->fake_elts, key, sizeof (*srch) + len, fake_rep); in rdns_resolver_set_fake_reply()