diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c | 21 | ||||
-rw-r--r-- | src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c | 24 |
2 files changed, 25 insertions, 20 deletions
diff --git a/src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c b/src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c index b7cdc63d75..4ad40f8615 100644 --- a/src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c +++ b/src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c @@ -253,10 +253,11 @@ static void dns_ares_next(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver, args->on_complete = on_complete; args->resolver = resolver; GRPC_RESOLVER_REF(resolver, "ares-next"); - grpc_closure_sched(exec_ctx, grpc_closure_create( - dns_ares_next_locked, args, - grpc_combiner_scheduler(r->combiner, false)), - GRPC_ERROR_NONE); + grpc_closure_sched( + exec_ctx, + grpc_closure_create(dns_ares_next_locked, args, + grpc_combiner_scheduler(r->base.combiner, false)), + GRPC_ERROR_NONE); } static void dns_ares_start_resolving_locked(grpc_exec_ctx *exec_ctx, @@ -286,7 +287,6 @@ static void dns_ares_maybe_finish_next_locked(grpc_exec_ctx *exec_ctx, static void dns_ares_destroy(grpc_exec_ctx *exec_ctx, grpc_resolver *gr) { gpr_log(GPR_DEBUG, "dns_ares_destroy"); ares_dns_resolver *r = (ares_dns_resolver *)gr; - GRPC_COMBINER_UNREF(exec_ctx, r->combiner, "dns_ares_destroy"); if (r->resolved_result != NULL) { grpc_channel_args_destroy(exec_ctx, r->resolved_result); } @@ -309,8 +309,7 @@ static grpc_resolver *dns_ares_create(grpc_exec_ctx *exec_ctx, if (path[0] == '/') ++path; // Create resolver. ares_dns_resolver *r = gpr_zalloc(sizeof(ares_dns_resolver)); - r->combiner = grpc_combiner_create(NULL); - grpc_resolver_init(&r->base, &dns_ares_resolver_vtable, r->combiner); + grpc_resolver_init(&r->base, &dns_ares_resolver_vtable, args->combiner); r->name_to_resolve = gpr_strdup(path); r->default_port = gpr_strdup(default_port); r->channel_args = grpc_channel_args_copy(args->args); @@ -325,16 +324,16 @@ static grpc_resolver *dns_ares_create(grpc_exec_ctx *exec_ctx, GRPC_DNS_MIN_CONNECT_TIMEOUT_SECONDS * 1000, GRPC_DNS_RECONNECT_MAX_BACKOFF_SECONDS * 1000); grpc_closure_init(&r->dns_ares_shutdown_locked, dns_ares_shutdown_locked, r, - grpc_combiner_scheduler(r->combiner, false)); + grpc_combiner_scheduler(r->base.combiner, false)); grpc_closure_init(&r->dns_ares_channel_saw_error_locked, dns_ares_channel_saw_error_locked, r, - grpc_combiner_scheduler(r->combiner, false)); + grpc_combiner_scheduler(r->base.combiner, false)); grpc_closure_init(&r->dns_ares_on_retry_timer_locked, dns_ares_on_retry_timer_locked, r, - grpc_combiner_scheduler(r->combiner, false)); + grpc_combiner_scheduler(r->base.combiner, false)); grpc_closure_init(&r->dns_ares_on_resolved_locked, dns_ares_on_resolved_locked, r, - grpc_combiner_scheduler(r->combiner, false)); + grpc_combiner_scheduler(r->base.combiner, false)); return &r->base; } diff --git a/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c b/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c index f077e1b091..7a104665c1 100644 --- a/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c +++ b/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c @@ -95,16 +95,16 @@ static uint16_t strhtons(const char *port) { static void grpc_ares_request_unref(grpc_exec_ctx *exec_ctx, grpc_ares_request *r) { - // If there are no pending queries, invoke on_done callback and destroy the - // request + /* If there are no pending queries, invoke on_done callback and destroy the + request */ if (gpr_unref(&r->pending_queries)) { - // TODO(zyc): Sort results with RPC6724 before invoking on_done. + /* TODO(zyc): Sort results with RPC6724 before invoking on_done. */ if (exec_ctx == NULL) { - // A new exec_ctx is created here, as the c-ares interface does not - // provide one in ares_host_callback. It's safe to schedule on_done with - // the newly created exec_ctx, since the caller has been warned not to - // acquire locks in on_done. ares_dns_resolver is using combiner to - // protect resources needed by on_done. + /* A new exec_ctx is created here, as the c-ares interface does not + provide one in ares_host_callback. It's safe to schedule on_done with + the newly created exec_ctx, since the caller has been warned not to + acquire locks in on_done. ares_dns_resolver is using combiner to + protect resources needed by on_done. */ grpc_exec_ctx new_exec_ctx = GRPC_EXEC_CTX_INIT; grpc_closure_sched(&new_exec_ctx, r->on_done, r->error); grpc_exec_ctx_finish(&new_exec_ctx); @@ -197,6 +197,12 @@ void grpc_resolve_address_ares_impl(grpc_exec_ctx *exec_ctx, const char *name, grpc_pollset_set *interested_parties, grpc_closure *on_done, grpc_resolved_addresses **addrs) { + /* TODO(zyc): Enable tracing after #9603 is checked in */ + /* if (grpc_dns_trace) { + gpr_log(GPR_DEBUG, "resolve_address (blocking): name=%s, default_port=%s", + name, default_port); + } */ + /* parse name, splitting it into host and port parts */ char *host; char *port; @@ -241,7 +247,7 @@ void grpc_resolve_address_ares_impl(grpc_exec_ctx *exec_ctx, const char *name, ares_gethostbyname(*channel, r->host, AF_INET6, on_done_cb, r); } ares_gethostbyname(*channel, r->host, AF_INET, on_done_cb, r); - // TODO(zyc): Handle CNAME records here. + /* TODO(zyc): Handle CNAME records here. */ grpc_ares_ev_driver_start(exec_ctx, r->ev_driver); grpc_ares_request_unref(exec_ctx, r); return; |