diff options
author | 2018-03-19 12:30:01 -0700 | |
---|---|---|
committer | 2018-03-19 12:30:01 -0700 | |
commit | bce37d2785d508983f9d0501f6d711ef55ffc124 (patch) | |
tree | d2f7edaff548f6459bdf09d687a137b23a024ac3 /src | |
parent | 373866da41cf86ec23fa3420b08a3d0a55151b58 (diff) | |
parent | 0e2c6457d479be61275be5bd206ba5ab09a9ad86 (diff) |
Merge pull request #14464 from yashykt/socklent
Change size_t to socklen_t in resolve_address
Diffstat (limited to 'src')
-rw-r--r-- | src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc | 4 | ||||
-rw-r--r-- | src/core/ext/filters/client_channel/lb_policy_factory.cc | 2 | ||||
-rw-r--r-- | src/core/ext/filters/client_channel/parse_address.cc | 6 | ||||
-rw-r--r-- | src/core/lib/iomgr/resolve_address.h | 17 | ||||
-rw-r--r-- | src/core/lib/iomgr/sockaddr_utils.cc | 9 | ||||
-rw-r--r-- | src/core/lib/iomgr/socket_utils_linux.cc | 2 | ||||
-rw-r--r-- | src/core/lib/iomgr/tcp_client_posix.cc | 2 | ||||
-rw-r--r-- | src/core/lib/iomgr/tcp_server_posix.cc | 7 | ||||
-rw-r--r-- | src/core/lib/iomgr/tcp_server_utils_posix_common.cc | 6 | ||||
-rw-r--r-- | src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc | 12 | ||||
-rw-r--r-- | src/core/lib/iomgr/udp_server.cc | 11 | ||||
-rw-r--r-- | src/core/lib/iomgr/unix_sockets_posix.cc | 3 |
12 files changed, 50 insertions, 31 deletions
diff --git a/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc b/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc index 47e1deef12..e805593dd8 100644 --- a/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +++ b/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc @@ -423,13 +423,13 @@ void ParseServer(const grpc_grpclb_server* server, * server->ip_address.bytes. */ const grpc_grpclb_ip_address* ip = &server->ip_address; if (ip->size == 4) { - addr->len = sizeof(grpc_sockaddr_in); + addr->len = static_cast<socklen_t>(sizeof(grpc_sockaddr_in)); grpc_sockaddr_in* addr4 = reinterpret_cast<grpc_sockaddr_in*>(&addr->addr); addr4->sin_family = GRPC_AF_INET; memcpy(&addr4->sin_addr, ip->bytes, ip->size); addr4->sin_port = netorder_port; } else if (ip->size == 16) { - addr->len = sizeof(grpc_sockaddr_in6); + addr->len = static_cast<socklen_t>(sizeof(grpc_sockaddr_in6)); grpc_sockaddr_in6* addr6 = (grpc_sockaddr_in6*)&addr->addr; addr6->sin6_family = GRPC_AF_INET6; memcpy(&addr6->sin6_addr, ip->bytes, ip->size); diff --git a/src/core/ext/filters/client_channel/lb_policy_factory.cc b/src/core/ext/filters/client_channel/lb_policy_factory.cc index 80646a10cc..7c8cba55b7 100644 --- a/src/core/ext/filters/client_channel/lb_policy_factory.cc +++ b/src/core/ext/filters/client_channel/lb_policy_factory.cc @@ -66,7 +66,7 @@ void grpc_lb_addresses_set_address(grpc_lb_addresses* addresses, size_t index, if (user_data != nullptr) GPR_ASSERT(addresses->user_data_vtable != nullptr); grpc_lb_address* target = &addresses->addresses[index]; memcpy(target->address.addr, address, address_len); - target->address.len = address_len; + target->address.len = static_cast<socklen_t>(address_len); target->is_balancer = is_balancer; target->balancer_name = gpr_strdup(balancer_name); target->user_data = user_data; diff --git a/src/core/ext/filters/client_channel/parse_address.cc b/src/core/ext/filters/client_channel/parse_address.cc index 92ea259cf0..b3900114ad 100644 --- a/src/core/ext/filters/client_channel/parse_address.cc +++ b/src/core/ext/filters/client_channel/parse_address.cc @@ -50,7 +50,7 @@ bool grpc_parse_unix(const grpc_uri* uri, if (path_len == maxlen) return false; un->sun_family = AF_UNIX; strcpy(un->sun_path, uri->path); - resolved_addr->len = sizeof(*un); + resolved_addr->len = static_cast<socklen_t>(sizeof(*un)); return true; } @@ -72,7 +72,7 @@ bool grpc_parse_ipv4_hostport(const char* hostport, grpc_resolved_address* addr, if (!gpr_split_host_port(hostport, &host, &port)) return false; // Parse IP address. memset(addr, 0, sizeof(*addr)); - addr->len = sizeof(grpc_sockaddr_in); + addr->len = static_cast<socklen_t>(sizeof(grpc_sockaddr_in)); grpc_sockaddr_in* in = reinterpret_cast<grpc_sockaddr_in*>(addr->addr); in->sin_family = GRPC_AF_INET; if (grpc_inet_pton(GRPC_AF_INET, host, &in->sin_addr) == 0) { @@ -118,7 +118,7 @@ bool grpc_parse_ipv6_hostport(const char* hostport, grpc_resolved_address* addr, if (!gpr_split_host_port(hostport, &host, &port)) return false; // Parse IP address. memset(addr, 0, sizeof(*addr)); - addr->len = sizeof(grpc_sockaddr_in6); + addr->len = static_cast<socklen_t>(sizeof(grpc_sockaddr_in6)); grpc_sockaddr_in6* in6 = reinterpret_cast<grpc_sockaddr_in6*>(addr->addr); in6->sin6_family = GRPC_AF_INET6; // Handle the RFC6874 syntax for IPv6 zone identifiers. diff --git a/src/core/lib/iomgr/resolve_address.h b/src/core/lib/iomgr/resolve_address.h index 68cdefcf03..fe0d834582 100644 --- a/src/core/lib/iomgr/resolve_address.h +++ b/src/core/lib/iomgr/resolve_address.h @@ -22,13 +22,28 @@ #include <grpc/support/port_platform.h> #include <stddef.h> + +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_UV +#include <uv.h> +#endif + +#ifdef GRPC_WINSOCK_SOCKET +#include <ws2tcpip.h> +#endif + +#ifdef GRPC_POSIX_SOCKET +#include <sys/socket.h> +#endif + #include "src/core/lib/iomgr/pollset_set.h" #define GRPC_MAX_SOCKADDR_SIZE 128 typedef struct { char addr[GRPC_MAX_SOCKADDR_SIZE]; - size_t len; + socklen_t len; } grpc_resolved_address; typedef struct { diff --git a/src/core/lib/iomgr/sockaddr_utils.cc b/src/core/lib/iomgr/sockaddr_utils.cc index bc3550a679..df25f7778a 100644 --- a/src/core/lib/iomgr/sockaddr_utils.cc +++ b/src/core/lib/iomgr/sockaddr_utils.cc @@ -58,7 +58,8 @@ int grpc_sockaddr_is_v4mapped(const grpc_resolved_address* resolved_addr, /* s6_addr32 would be nice, but it's non-standard. */ memcpy(&addr4_out->sin_addr, &addr6->sin6_addr.s6_addr[12], 4); addr4_out->sin_port = addr6->sin6_port; - resolved_addr4_out->len = sizeof(grpc_sockaddr_in); + resolved_addr4_out->len = + static_cast<socklen_t>(sizeof(grpc_sockaddr_in)); } return 1; } @@ -81,7 +82,7 @@ int grpc_sockaddr_to_v4mapped(const grpc_resolved_address* resolved_addr, memcpy(&addr6_out->sin6_addr.s6_addr[0], kV4MappedPrefix, 12); memcpy(&addr6_out->sin6_addr.s6_addr[12], &addr4->sin_addr, 4); addr6_out->sin6_port = addr4->sin_port; - resolved_addr6_out->len = sizeof(grpc_sockaddr_in6); + resolved_addr6_out->len = static_cast<socklen_t>(sizeof(grpc_sockaddr_in6)); return 1; } return 0; @@ -135,7 +136,7 @@ void grpc_sockaddr_make_wildcard4(int port, memset(resolved_wild_out, 0, sizeof(*resolved_wild_out)); wild_out->sin_family = GRPC_AF_INET; wild_out->sin_port = grpc_htons(static_cast<uint16_t>(port)); - resolved_wild_out->len = sizeof(grpc_sockaddr_in); + resolved_wild_out->len = static_cast<socklen_t>(sizeof(grpc_sockaddr_in)); } void grpc_sockaddr_make_wildcard6(int port, @@ -146,7 +147,7 @@ void grpc_sockaddr_make_wildcard6(int port, memset(resolved_wild_out, 0, sizeof(*resolved_wild_out)); wild_out->sin6_family = GRPC_AF_INET6; wild_out->sin6_port = grpc_htons(static_cast<uint16_t>(port)); - resolved_wild_out->len = sizeof(grpc_sockaddr_in6); + resolved_wild_out->len = static_cast<socklen_t>(sizeof(grpc_sockaddr_in6)); } int grpc_sockaddr_to_string(char** out, diff --git a/src/core/lib/iomgr/socket_utils_linux.cc b/src/core/lib/iomgr/socket_utils_linux.cc index 1364cd35f6..f506329f97 100644 --- a/src/core/lib/iomgr/socket_utils_linux.cc +++ b/src/core/lib/iomgr/socket_utils_linux.cc @@ -38,7 +38,7 @@ int grpc_accept4(int sockfd, grpc_resolved_address* resolved_addr, int nonblock, flags |= nonblock ? SOCK_NONBLOCK : 0; flags |= cloexec ? SOCK_CLOEXEC : 0; return accept4(sockfd, reinterpret_cast<grpc_sockaddr*>(resolved_addr->addr), - reinterpret_cast<socklen_t*>(&resolved_addr->len), flags); + &resolved_addr->len, flags); } #endif diff --git a/src/core/lib/iomgr/tcp_client_posix.cc b/src/core/lib/iomgr/tcp_client_posix.cc index c21fb40ab1..ba943d302a 100644 --- a/src/core/lib/iomgr/tcp_client_posix.cc +++ b/src/core/lib/iomgr/tcp_client_posix.cc @@ -295,7 +295,7 @@ void grpc_tcp_client_create_from_prepared_fd( do { GPR_ASSERT(addr->len < ~(socklen_t)0); err = connect(fd, reinterpret_cast<const grpc_sockaddr*>(addr->addr), - static_cast<socklen_t>(addr->len)); + addr->len); } while (err < 0 && errno == EINTR); if (err >= 0) { char* addr_str = grpc_sockaddr_to_uri(addr); diff --git a/src/core/lib/iomgr/tcp_server_posix.cc b/src/core/lib/iomgr/tcp_server_posix.cc index 1d9276a560..ce70116e1d 100644 --- a/src/core/lib/iomgr/tcp_server_posix.cc +++ b/src/core/lib/iomgr/tcp_server_posix.cc @@ -214,7 +214,7 @@ static void on_read(void* arg, grpc_error* err) { char* addr_str; char* name; memset(&addr, 0, sizeof(addr)); - addr.len = sizeof(struct sockaddr_storage); + addr.len = static_cast<socklen_t>(sizeof(struct sockaddr_storage)); /* Note: If we ever decide to return this address to the user, remember to strip off the ::ffff:0.0.0.0/96 prefix first. */ int fd = grpc_accept4(sp->fd, &addr, 1, 1); @@ -413,11 +413,12 @@ static grpc_error* tcp_server_add_port(grpc_tcp_server* s, as some previously created listener. */ if (requested_port == 0) { for (sp = s->head; sp; sp = sp->next) { - sockname_temp.len = sizeof(struct sockaddr_storage); + sockname_temp.len = + static_cast<socklen_t>(sizeof(struct sockaddr_storage)); if (0 == getsockname(sp->fd, reinterpret_cast<grpc_sockaddr*>(&sockname_temp.addr), - reinterpret_cast<socklen_t*>(&sockname_temp.len))) { + &sockname_temp.len)) { int used_port = grpc_sockaddr_get_port(&sockname_temp); if (used_port > 0) { memcpy(&sockname_temp, addr, sizeof(grpc_resolved_address)); diff --git a/src/core/lib/iomgr/tcp_server_utils_posix_common.cc b/src/core/lib/iomgr/tcp_server_utils_posix_common.cc index 76d3d62940..0734453364 100644 --- a/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +++ b/src/core/lib/iomgr/tcp_server_utils_posix_common.cc @@ -172,7 +172,7 @@ grpc_error* grpc_tcp_server_prepare_socket(int fd, GPR_ASSERT(addr->len < ~(socklen_t)0); if (bind(fd, reinterpret_cast<grpc_sockaddr*>(const_cast<char*>(addr->addr)), - static_cast<socklen_t>(addr->len)) < 0) { + addr->len) < 0) { err = GRPC_OS_ERROR(errno, "bind"); goto error; } @@ -182,10 +182,10 @@ grpc_error* grpc_tcp_server_prepare_socket(int fd, goto error; } - sockname_temp.len = sizeof(struct sockaddr_storage); + sockname_temp.len = static_cast<socklen_t>(sizeof(struct sockaddr_storage)); if (getsockname(fd, reinterpret_cast<grpc_sockaddr*>(sockname_temp.addr), - reinterpret_cast<socklen_t*>(&sockname_temp.len)) < 0) { + &sockname_temp.len) < 0) { err = GRPC_OS_ERROR(errno, "getsockname"); goto error; } diff --git a/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc b/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc index 29ff9ecda1..7fd86c57eb 100644 --- a/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +++ b/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc @@ -68,14 +68,14 @@ static grpc_error* get_unused_port(int* port) { if (dsmode == GRPC_DSMODE_IPV4) { grpc_sockaddr_make_wildcard4(0, &wild); } - if (bind(fd, reinterpret_cast<const grpc_sockaddr*>(wild.addr), - static_cast<socklen_t>(wild.len)) != 0) { + if (bind(fd, reinterpret_cast<const grpc_sockaddr*>(wild.addr), wild.len) != + 0) { err = GRPC_OS_ERROR(errno, "bind"); close(fd); return err; } - if (getsockname(fd, reinterpret_cast<grpc_sockaddr*>(wild.addr), - reinterpret_cast<socklen_t*>(&wild.len)) != 0) { + if (getsockname(fd, reinterpret_cast<grpc_sockaddr*>(wild.addr), &wild.len) != + 0) { err = GRPC_OS_ERROR(errno, "getsockname"); close(fd); return err; @@ -119,9 +119,9 @@ grpc_error* grpc_tcp_server_add_all_local_addrs(grpc_tcp_server* s, if (ifa_it->ifa_addr == nullptr) { continue; } else if (ifa_it->ifa_addr->sa_family == AF_INET) { - addr.len = sizeof(grpc_sockaddr_in); + addr.len = static_cast<socklen_t>(sizeof(grpc_sockaddr_in)); } else if (ifa_it->ifa_addr->sa_family == AF_INET6) { - addr.len = sizeof(grpc_sockaddr_in6); + addr.len = static_cast<socklen_t>(sizeof(grpc_sockaddr_in6)); } else { continue; } diff --git a/src/core/lib/iomgr/udp_server.cc b/src/core/lib/iomgr/udp_server.cc index 15a242abe2..04716a254d 100644 --- a/src/core/lib/iomgr/udp_server.cc +++ b/src/core/lib/iomgr/udp_server.cc @@ -347,7 +347,7 @@ static int bind_socket(grpc_socket_factory* socket_factory, int sockfd, : bind(sockfd, reinterpret_cast<grpc_sockaddr*>( const_cast<char*>(addr->addr)), - static_cast<socklen_t>(addr->len)); + addr->len); } /* Prepare a recently-created socket for listening. */ @@ -390,10 +390,10 @@ static int prepare_socket(grpc_socket_factory* socket_factory, int fd, goto error; } - sockname_temp.len = sizeof(struct sockaddr_storage); + sockname_temp.len = static_cast<socklen_t>(sizeof(struct sockaddr_storage)); if (getsockname(fd, reinterpret_cast<grpc_sockaddr*>(sockname_temp.addr), - reinterpret_cast<socklen_t*>(&sockname_temp.len)) < 0) { + &sockname_temp.len) < 0) { goto error; } @@ -575,10 +575,11 @@ int grpc_udp_server_add_port(grpc_udp_server* s, as some previously created listener. */ if (grpc_sockaddr_get_port(addr) == 0) { for (size_t i = 0; i < s->listeners.size(); ++i) { - sockname_temp.len = sizeof(struct sockaddr_storage); + sockname_temp.len = + static_cast<socklen_t>(sizeof(struct sockaddr_storage)); if (0 == getsockname(s->listeners[i].fd(), reinterpret_cast<grpc_sockaddr*>(sockname_temp.addr), - reinterpret_cast<socklen_t*>(&sockname_temp.len))) { + &sockname_temp.len)) { port = grpc_sockaddr_get_port(&sockname_temp); if (port > 0) { allocated_addr = static_cast<grpc_resolved_address*>( diff --git a/src/core/lib/iomgr/unix_sockets_posix.cc b/src/core/lib/iomgr/unix_sockets_posix.cc index 5d09b4a9b1..22fcaf57fc 100644 --- a/src/core/lib/iomgr/unix_sockets_posix.cc +++ b/src/core/lib/iomgr/unix_sockets_posix.cc @@ -61,7 +61,8 @@ grpc_error* grpc_resolve_unix_domain_address(const char* name, un = reinterpret_cast<struct sockaddr_un*>((*addrs)->addrs->addr); un->sun_family = AF_UNIX; strncpy(un->sun_path, name, sizeof(un->sun_path)); - (*addrs)->addrs->len = strlen(un->sun_path) + sizeof(un->sun_family) + 1; + (*addrs)->addrs->len = + static_cast<socklen_t>(strlen(un->sun_path) + sizeof(un->sun_family) + 1); return GRPC_ERROR_NONE; } |