Add SOCK_NONBLOCK option to UDP sockets.

pull/3123/head
Robbie Shade 10 years ago
parent 400e0cdd32
commit 8ff671feb6
  1. 6
      src/core/iomgr/udp_server.c

@ -370,7 +370,8 @@ int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr, int addr_len,
/* Try listening on IPv6 first. */
addr = (struct sockaddr *)&wild6;
addr_len = sizeof(wild6);
fd = grpc_create_dualstack_socket(addr, SOCK_DGRAM, IPPROTO_UDP, &dsmode);
fd = grpc_create_dualstack_socket(addr, SOCK_DGRAM | SOCK_NONBLOCK,
IPPROTO_UDP, &dsmode);
allocated_port1 = add_socket_to_server(s, fd, addr, addr_len, read_cb);
if (fd >= 0 && dsmode == GRPC_DSMODE_DUALSTACK) {
goto done;
@ -384,7 +385,8 @@ int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr, int addr_len,
addr_len = sizeof(wild4);
}
fd = grpc_create_dualstack_socket(addr, SOCK_DGRAM, IPPROTO_UDP, &dsmode);
fd = grpc_create_dualstack_socket(addr, SOCK_DGRAM | SOCK_NONBLOCK,
IPPROTO_UDP, &dsmode);
if (fd < 0) {
gpr_log(GPR_ERROR, "Unable to create socket: %s", strerror(errno));
}

Loading…
Cancel
Save