Add error propagation

pull/6897/head
Craig Tiller 9 years ago
parent 0ca68b7cb1
commit ba94748801
  1. 12
      src/core/lib/iomgr/socket_utils_common_posix.c
  2. 13
      src/core/lib/iomgr/socket_utils_posix.h

@ -117,14 +117,18 @@ grpc_error *grpc_set_socket_ipv6_recvpktinfo_if_possible(int fd) {
return GRPC_ERROR_NONE; return GRPC_ERROR_NONE;
} }
int grpc_set_socket_sndbuf(int fd, int buffer_size_bytes) { grpc_error *grpc_set_socket_sndbuf(int fd, int buffer_size_bytes) {
return 0 == setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &buffer_size_bytes, return 0 == setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &buffer_size_bytes,
sizeof(buffer_size_bytes)); sizeof(buffer_size_bytes))
? GRPC_ERROR_NONE
: GRPC_OS_ERROR(errno, "setsockopt(SO_SNDBUF)");
} }
int grpc_set_socket_rcvbuf(int fd, int buffer_size_bytes) { grpc_error *grpc_set_socket_rcvbuf(int fd, int buffer_size_bytes) {
return 0 == setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &buffer_size_bytes, return 0 == setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &buffer_size_bytes,
sizeof(buffer_size_bytes)); sizeof(buffer_size_bytes))
? GRPC_ERROR_NONE
: GRPC_OS_ERROR(errno, "setsockopt(SO_RCVBUF)");
} }
/* set a socket to close on exec */ /* set a socket to close on exec */

@ -66,27 +66,22 @@ grpc_error *grpc_set_socket_low_latency(int fd, int low_latency);
int grpc_ipv6_loopback_available(void); int grpc_ipv6_loopback_available(void);
/* Tries to set SO_NOSIGPIPE if available on this platform. /* Tries to set SO_NOSIGPIPE if available on this platform.
Returns 1 on success, 0 on failure.
If SO_NO_SIGPIPE is not available, returns 1. */ If SO_NO_SIGPIPE is not available, returns 1. */
grpc_error *grpc_set_socket_no_sigpipe_if_possible(int fd); grpc_error *grpc_set_socket_no_sigpipe_if_possible(int fd);
/* Tries to set IP_PKTINFO if available on this platform. /* Tries to set IP_PKTINFO if available on this platform.
Returns 1 on success, 0 on failure.
If IP_PKTINFO is not available, returns 1. */ If IP_PKTINFO is not available, returns 1. */
grpc_error *grpc_set_socket_ip_pktinfo_if_possible(int fd); grpc_error *grpc_set_socket_ip_pktinfo_if_possible(int fd);
/* Tries to set IPV6_RECVPKTINFO if available on this platform. /* Tries to set IPV6_RECVPKTINFO if available on this platform.
Returns 1 on success, 0 on failure.
If IPV6_RECVPKTINFO is not available, returns 1. */ If IPV6_RECVPKTINFO is not available, returns 1. */
grpc_error *grpc_set_socket_ipv6_recvpktinfo_if_possible(int fd); grpc_error *grpc_set_socket_ipv6_recvpktinfo_if_possible(int fd);
/* Tries to set the socket's send buffer to given size. /* Tries to set the socket's send buffer to given size. */
Returns 1 on success, 0 on failure. */ grpc_error *grpc_set_socket_sndbuf(int fd, int buffer_size_bytes);
int grpc_set_socket_sndbuf(int fd, int buffer_size_bytes);
/* Tries to set the socket's receive buffer to given size. /* Tries to set the socket's receive buffer to given size. */
Returns 1 on success, 0 on failure. */ grpc_error *grpc_set_socket_rcvbuf(int fd, int buffer_size_bytes);
int grpc_set_socket_rcvbuf(int fd, int buffer_size_bytes);
/* An enum to keep track of IPv4/IPv6 socket modes. /* An enum to keep track of IPv4/IPv6 socket modes.

Loading…
Cancel
Save