diff options
author | Yuchen Zeng <zyc@google.com> | 2016-08-10 05:04:53 -0700 |
---|---|---|
committer | Yuchen Zeng <zyc@google.com> | 2016-08-10 05:04:53 -0700 |
commit | db53cc0961e8f48bc2f45193052fbef22242d1ed (patch) | |
tree | 1d865d3d5bae6ef4fc9c571c194216d686518f09 /src | |
parent | b48000c7a75232bc78f5819dabf3c73c668f17ec (diff) |
Fix node test
Diffstat (limited to 'src')
-rw-r--r-- | src/core/ext/resolver/dns/c_ares/dns_resolver.c | 8 | ||||
-rw-r--r-- | src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c | 7 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/core/ext/resolver/dns/c_ares/dns_resolver.c b/src/core/ext/resolver/dns/c_ares/dns_resolver.c index e741f19b6f..bbc6ceaf6d 100644 --- a/src/core/ext/resolver/dns/c_ares/dns_resolver.c +++ b/src/core/ext/resolver/dns/c_ares/dns_resolver.c @@ -177,6 +177,11 @@ static void dns_on_resolved(grpc_exec_ctx *exec_ctx, void *arg, grpc_client_config_set_lb_policy(config, lb_policy); GRPC_LB_POLICY_UNREF(exec_ctx, lb_policy, "construction"); } + if (r->pollent) { + grpc_polling_entity_del_from_pollset_set(exec_ctx, r->pollent, + r->base.pollset_set); + r->pollent = NULL; + } grpc_resolved_addresses_destroy(addresses); } else { gpr_log(GPR_ERROR, "addresses == NULL"); @@ -228,6 +233,9 @@ static void dns_next(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver, r->pollent = pollent; grpc_polling_entity_add_to_pollset_set(exec_ctx, pollent, r->base.pollset_set); + } else { + gpr_log(GPR_ERROR, "pollent is NULL"); + r->pollent = NULL; } r->resolving = 1; r->addresses = NULL; 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 224f0957db..ef9ec96dc6 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 @@ -242,14 +242,18 @@ grpc_ares_request *grpc_resolve_address_ares_impl( err = grpc_error_set_str(GRPC_ERROR_CREATE("unparseable host:port"), GRPC_ERROR_STR_TARGET_ADDRESS, name); grpc_exec_ctx_sched(exec_ctx, on_done, err, NULL); + goto done; } else if (port == NULL) { if (default_port == NULL) { err = grpc_error_set_str(GRPC_ERROR_CREATE("no port in name"), GRPC_ERROR_STR_TARGET_ADDRESS, name); grpc_exec_ctx_sched(exec_ctx, on_done, err, NULL); + goto done; } port = gpr_strdup(default_port); - } else if (try_fake_resolve(host, port, addrs)) { + } + + if (try_fake_resolve(host, port, addrs)) { grpc_exec_ctx_sched(exec_ctx, on_done, GRPC_ERROR_NONE, NULL); } else { err = grpc_ares_ev_driver_create(&ev_driver, pollset_set); @@ -269,6 +273,7 @@ grpc_ares_request *grpc_resolve_address_ares_impl( grpc_exec_ctx_sched(exec_ctx, &r->request_closure, GRPC_ERROR_NONE, NULL); } +done: gpr_free(host); gpr_free(port); return r; |