aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Yuchen Zeng <zyc@google.com>2016-08-16 23:08:09 -0700
committerGravatar Yuchen Zeng <zyc@google.com>2016-08-16 23:08:09 -0700
commita0dbd9f4c1f256c7d80b06ae855e6168c99b72cf (patch)
treea316134776965c9070f2484617cd14d13203c7f6 /src/core
parent9248d35d12a82effb997e8d0e30962fc8b27b9f4 (diff)
Fix interop test failures
Diffstat (limited to 'src/core')
-rw-r--r--src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c3
-rw-r--r--src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c17
2 files changed, 14 insertions, 6 deletions
diff --git a/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c b/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c
index eea346e575..3208956dcf 100644
--- a/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c
+++ b/src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c
@@ -57,7 +57,6 @@ typedef struct fd_pair {
} fd_pair;
struct grpc_ares_ev_driver {
- int id;
bool closing;
ares_socket_t socks[ARES_GETSOCK_MAXNUM];
int bitmask;
@@ -141,7 +140,7 @@ void grpc_ares_notify_on_event(grpc_exec_ctx *exec_ctx,
grpc_closure_init(&ev_driver->driver_closure, driver_cb, ev_driver);
for (i = 0; i < ARES_GETSOCK_MAXNUM; i++) {
char *final_name;
- gpr_asprintf(&final_name, "host1%" PRIuPTR, i);
+ gpr_asprintf(&final_name, "ares_ev_driver-%" PRIuPTR, i);
if (ARES_GETSOCK_READABLE(ev_driver->bitmask, i) ||
ARES_GETSOCK_WRITABLE(ev_driver->bitmask, i)) {
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 203c98a50e..c1b487576a 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
@@ -94,6 +94,15 @@ static void destroy_request(grpc_ares_request *request) {
gpr_free(request->default_port);
}
+static uint16_t strhtons(const char *port) {
+ if (strcmp(port, "http") == 0) {
+ return htons(80);
+ } else if (strcmp(port, "https") == 0) {
+ return htons(443);
+ }
+ return htons((unsigned short)atoi(port));
+}
+
static void on_done_cb(void *arg, int status, int timeouts,
struct hostent *hostent) {
gpr_log(GPR_ERROR, "status: %d", status);
@@ -138,7 +147,7 @@ static void on_done_cb(void *arg, int status, int timeouts,
gpr_log(GPR_ERROR, "addr: %s", output);
gpr_log(GPR_ERROR, "port: %s", r->port);
addr->sin6_family = (sa_family_t)hostent->h_addrtype;
- addr->sin6_port = htons((unsigned short)atoi(r->port));
+ addr->sin6_port = strhtons(r->port);
} else {
char output[INET_ADDRSTRLEN];
gpr_log(GPR_ERROR, "AF_INET");
@@ -152,7 +161,7 @@ static void on_done_cb(void *arg, int status, int timeouts,
memcpy(&addr->sin_addr, hostent->h_addr_list[i - prev_naddr],
sizeof(struct in_addr));
addr->sin_family = (sa_family_t)hostent->h_addrtype;
- addr->sin_port = htons((unsigned short)atoi(r->port));
+ addr->sin_port = strhtons(r->port);
}
}
// ares_destroy(r->channel);
@@ -204,7 +213,7 @@ static int try_fake_resolve(const char *name, const char *port,
gpr_malloc(sizeof(grpc_resolved_address) * (*addresses)->naddrs);
(*addresses)->addrs[0].len = sizeof(struct sockaddr_in);
sa.sin_family = AF_INET;
- sa.sin_port = htons((unsigned short)atoi(port));
+ sa.sin_port = strhtons(port);
memcpy(&(*addresses)->addrs[0].addr, &sa, sizeof(struct sockaddr_in));
return 1;
}
@@ -217,7 +226,7 @@ static int try_fake_resolve(const char *name, const char *port,
gpr_malloc(sizeof(grpc_resolved_address) * (*addresses)->naddrs);
(*addresses)->addrs[0].len = sizeof(struct sockaddr_in6);
sa6.sin6_family = AF_INET6;
- sa6.sin6_port = htons((unsigned short)atoi(port));
+ sa6.sin6_port = strhtons(port);
memcpy(&(*addresses)->addrs[0].addr, &sa6, sizeof(struct sockaddr_in6));
ares_inet_ntop(AF_INET6, &sa6.sin6_addr, output, INET6_ADDRSTRLEN);
gpr_log(GPR_ERROR, "addr: %s", output);