diff options
author | 2016-04-11 09:37:42 +0200 | |
---|---|---|
committer | 2016-04-11 09:38:35 +0200 | |
commit | d699a28f486efba71da9df0e278edd7193b2e465 (patch) | |
tree | f1b04ce05437427072a8b41e0d63952496d06086 /third_party/grpc/src/core | |
parent | 97f8148005a8e974b9460c3c7b77d708b33a7e36 (diff) |
Patch gRPC so that it compiles and works under msys2.
The patch is being upstreamed, but for the time being, we need to maintain it in our source tree.
Change-Id: I6a52dd0b0b57828030693dacdda23a906a2bee4f
Diffstat (limited to 'third_party/grpc/src/core')
-rw-r--r-- | third_party/grpc/src/core/iomgr/tcp_server_posix.c | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/third_party/grpc/src/core/iomgr/tcp_server_posix.c b/third_party/grpc/src/core/iomgr/tcp_server_posix.c index 5e07f8261c..44b970d72e 100644 --- a/third_party/grpc/src/core/iomgr/tcp_server_posix.c +++ b/third_party/grpc/src/core/iomgr/tcp_server_posix.c @@ -280,13 +280,38 @@ static int prepare_socket(int fd, const struct sockaddr *addr, goto error; } - if (!grpc_set_socket_nonblocking(fd, 1) || !grpc_set_socket_cloexec(fd, 1) || - (addr->sa_family != AF_UNIX && (!grpc_set_socket_low_latency(fd, 1) || - !grpc_set_socket_reuse_addr(fd, 1))) || - !grpc_set_socket_no_sigpipe_if_possible(fd)) { - gpr_log(GPR_ERROR, "Unable to configure socket %d: %s", fd, - strerror(errno)); - goto error; + + if (!grpc_set_socket_nonblocking(fd, 1)) { + gpr_log(GPR_ERROR, "Unable to set socket %d to nonblocking mode: %s", fd, + strerror(errno)); + goto error; + } + if (!grpc_set_socket_cloexec(fd, 1)) { + gpr_log(GPR_ERROR, "Unable to set socket %d to close-on-exec: %s", fd, + strerror(errno)); + goto error; + } + + if (addr->sa_family != AF_UNIX) { + if (!grpc_set_socket_low_latency(fd, 1)) { + gpr_log(GPR_ERROR, "Unable to set socket %d to low-latency mode: %s", fd, + strerror(errno)); + goto error; + } + +#if !defined(__MSYS__) + if (!grpc_set_socket_reuse_addr(fd, 1)) { + gpr_log(GPR_ERROR, "Unable to set SO_REUSEADDR on socket %d: %s", fd, + strerror(errno)); + goto error; + } +#endif + + if (!grpc_set_socket_no_sigpipe_if_possible(fd)) { + gpr_log(GPR_ERROR, "Unable to set SO_NOSIGPIPE on socket %d: %s", fd, + strerror(errno)); + goto error; + } } GPR_ASSERT(addr_len < ~(socklen_t)0); |