aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/iomgr/tcp_client_posix.c
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-06-01 17:04:17 -0700
committerGravatar Craig Tiller <ctiller@google.com>2015-06-01 17:04:17 -0700
commit8e0b08a33d819d0a2523ec439d545296e1ad2086 (patch)
tree5613a61a51db9c5a5f7ecc5fec8cfd0eb0b2c436 /src/core/iomgr/tcp_client_posix.c
parent3c1331f920569ba3a182e13321db26796d6e920e (diff)
parentfa275a97b968060383fe27c26b1d85f08d9582f9 (diff)
Merge branch 'count-the-things' into we-dont-need-no-backup
Diffstat (limited to 'src/core/iomgr/tcp_client_posix.c')
-rw-r--r--src/core/iomgr/tcp_client_posix.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/core/iomgr/tcp_client_posix.c b/src/core/iomgr/tcp_client_posix.c
index f88ce19448..981c326511 100644
--- a/src/core/iomgr/tcp_client_posix.c
+++ b/src/core/iomgr/tcp_client_posix.c
@@ -48,6 +48,7 @@
#include "src/core/iomgr/sockaddr_utils.h"
#include "src/core/iomgr/socket_utils_posix.h"
#include "src/core/iomgr/tcp_posix.h"
+#include "src/core/support/string.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/time.h>
@@ -187,6 +188,8 @@ void grpc_tcp_client_connect(void (*cb)(void *arg, grpc_endpoint *ep),
struct sockaddr_in6 addr6_v4mapped;
struct sockaddr_in addr4_copy;
grpc_fd *fdobj;
+ char *name;
+ char *addr_str;
/* Use dualstack sockets where available. */
if (grpc_sockaddr_to_v4mapped(addr, &addr6_v4mapped)) {
@@ -213,20 +216,23 @@ void grpc_tcp_client_connect(void (*cb)(void *arg, grpc_endpoint *ep),
err = connect(fd, addr, addr_len);
} while (err < 0 && errno == EINTR);
- fdobj = grpc_fd_create(fd);
+ grpc_sockaddr_to_string(&addr_str, addr, 1);
+ gpr_asprintf(&name, "tcp-client:%s", addr_str);
+
+ fdobj = grpc_fd_create(fd, name);
grpc_pollset_set_add_fd(interested_parties, fdobj);
if (err >= 0) {
cb(arg,
grpc_tcp_create(fdobj, GRPC_TCP_DEFAULT_READ_SLICE_SIZE));
- return;
+ goto done;
}
if (errno != EWOULDBLOCK && errno != EINPROGRESS) {
- gpr_log(GPR_ERROR, "connect error: %s", strerror(errno));
+ gpr_log(GPR_ERROR, "connect error to '%s': %s", strerror(errno));
grpc_fd_orphan(fdobj, NULL, NULL);
cb(arg, NULL);
- return;
+ goto done;
}
ac = gpr_malloc(sizeof(async_connect));
@@ -238,8 +244,12 @@ void grpc_tcp_client_connect(void (*cb)(void *arg, grpc_endpoint *ep),
ac->write_closure.cb = on_writable;
ac->write_closure.cb_arg = ac;
- grpc_alarm_init(&ac->alarm, deadline, on_alarm, ac, gpr_now());
grpc_fd_notify_on_write(ac->fd, &ac->write_closure);
+ grpc_alarm_init(&ac->alarm, deadline, on_alarm, ac, gpr_now());
+
+done:
+ gpr_free(name);
+ gpr_free(addr_str);
}
#endif