aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Yuchen Zeng <zyc@google.com>2016-08-10 05:04:53 -0700
committerGravatar Yuchen Zeng <zyc@google.com>2016-08-10 05:04:53 -0700
commitdb53cc0961e8f48bc2f45193052fbef22242d1ed (patch)
tree1d865d3d5bae6ef4fc9c571c194216d686518f09 /src
parentb48000c7a75232bc78f5819dabf3c73c668f17ec (diff)
Fix node test
Diffstat (limited to 'src')
-rw-r--r--src/core/ext/resolver/dns/c_ares/dns_resolver.c8
-rw-r--r--src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c7
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;