diff --git a/test/core/util/port_windows.c b/test/core/util/port_windows.c index 279aa2d21b3..17058c33533 100644 --- a/test/core/util/port_windows.c +++ b/test/core/util/port_windows.c @@ -35,14 +35,13 @@ #include "test/core/util/test_config.h" #if defined(GPR_WINSOCK_SOCKET) && defined(GRPC_TEST_PICK_PORT) +#include "src/core/iomgr/sockaddr_utils.h" #include "test/core/util/port.h" -#include -#include +#include #include #include #include -#include #include @@ -50,7 +49,7 @@ static int is_port_available(int *port, int is_tcp) { const int proto = is_tcp ? IPPROTO_TCP : 0; - const int fd = socket(AF_INET, is_tcp ? SOCK_STREAM : SOCK_DGRAM, proto); + const SOCKET fd = socket(AF_INET, is_tcp ? SOCK_STREAM : SOCK_DGRAM, proto); int one = 1; struct sockaddr_in addr; socklen_t alen = sizeof(addr); @@ -64,9 +63,9 @@ static int is_port_available(int *port, int is_tcp) { } /* Reuseaddr lets us start up a server immediately after it exits */ - if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)) < 0) { + if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const char*)&one, sizeof(one)) < 0) { gpr_log(GPR_ERROR, "setsockopt() failed: %s", strerror(errno)); - close(fd); + closesocket(fd); return 0; } @@ -76,14 +75,14 @@ static int is_port_available(int *port, int is_tcp) { addr.sin_port = htons(*port); if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) { gpr_log(GPR_DEBUG, "bind(port=%d) failed: %s", *port, strerror(errno)); - close(fd); + closesocket(fd); return 0; } /* Get the bound port number */ if (getsockname(fd, (struct sockaddr *)&addr, &alen) < 0) { gpr_log(GPR_ERROR, "getsockname() failed: %s", strerror(errno)); - close(fd); + closesocket(fd); return 0; } GPR_ASSERT(alen <= sizeof(addr)); @@ -95,7 +94,7 @@ static int is_port_available(int *port, int is_tcp) { GPR_ASSERT(*port == actual_port); } - close(fd); + closesocket(fd); return 1; } @@ -120,7 +119,7 @@ int grpc_pick_unused_port(void) { int port; try++; if (try == 1) { - port = getpid() % (65536 - 30000) + 30000; + port = _getpid() % (65536 - 30000) + 30000; } else if (try <= NUM_RANDOM_PORTS_TO_PICK) { port = rand() % (65536 - 30000) + 30000; } else {