diff options
author | 2015-09-22 10:42:19 -0700 | |
---|---|---|
committer | 2015-09-22 10:42:19 -0700 | |
commit | 45724b35e411fef7c5da66a74c78428c11d56843 (patch) | |
tree | 9264034aca675c89444e02f72ef58e67d7043604 /test/core/util/port_posix.c | |
parent | 298751c1195523ef6228595043b583c3a6270e08 (diff) |
indent pass to get logical source lines on one physical line
Diffstat (limited to 'test/core/util/port_posix.c')
-rw-r--r-- | test/core/util/port_posix.c | 402 |
1 files changed, 219 insertions, 183 deletions
diff --git a/test/core/util/port_posix.c b/test/core/util/port_posix.c index 602af23c15..2bb545a376 100644 --- a/test/core/util/port_posix.c +++ b/test/core/util/port_posix.c @@ -57,38 +57,46 @@ static int *chosen_ports = NULL; static size_t num_chosen_ports = 0; -static int has_port_been_chosen(int port) { +static int +has_port_been_chosen (int port) +{ size_t i; - for (i = 0; i < num_chosen_ports; i++) { - if (chosen_ports[i] == port) { - return 1; + for (i = 0; i < num_chosen_ports; i++) + { + if (chosen_ports[i] == port) + { + return 1; + } } - } return 0; } -typedef struct freereq { +typedef struct freereq +{ grpc_pollset pollset; int done; } freereq; -static void destroy_pollset_and_shutdown(void *p, int success, - grpc_closure_list *closure_list) { - grpc_pollset_destroy(p); - grpc_shutdown(); +static void +destroy_pollset_and_shutdown (void *p, int success, grpc_closure_list * closure_list) +{ + grpc_pollset_destroy (p); + grpc_shutdown (); } -static void freed_port_from_server(void *arg, - const grpc_httpcli_response *response, - grpc_closure_list *closure_list) { +static void +freed_port_from_server (void *arg, const grpc_httpcli_response * response, grpc_closure_list * closure_list) +{ freereq *pr = arg; - gpr_mu_lock(GRPC_POLLSET_MU(&pr->pollset)); + gpr_mu_lock (GRPC_POLLSET_MU (&pr->pollset)); pr->done = 1; - grpc_pollset_kick(&pr->pollset, NULL); - gpr_mu_unlock(GRPC_POLLSET_MU(&pr->pollset)); + grpc_pollset_kick (&pr->pollset, NULL); + gpr_mu_unlock (GRPC_POLLSET_MU (&pr->pollset)); } -static void free_port_using_server(char *server, int port) { +static void +free_port_using_server (char *server, int port) +{ grpc_httpcli_context context; grpc_httpcli_request req; freereq pr; @@ -96,111 +104,125 @@ static void free_port_using_server(char *server, int port) { grpc_closure_list closure_list = GRPC_CLOSURE_LIST_INIT; grpc_closure shutdown_closure; - grpc_init(); + grpc_init (); - memset(&pr, 0, sizeof(pr)); - memset(&req, 0, sizeof(req)); - grpc_pollset_init(&pr.pollset); - grpc_closure_init(&shutdown_closure, destroy_pollset_and_shutdown, - &pr.pollset); + memset (&pr, 0, sizeof (pr)); + memset (&req, 0, sizeof (req)); + grpc_pollset_init (&pr.pollset); + grpc_closure_init (&shutdown_closure, destroy_pollset_and_shutdown, &pr.pollset); req.host = server; - gpr_asprintf(&path, "/drop/%d", port); + gpr_asprintf (&path, "/drop/%d", port); req.path = path; - grpc_httpcli_context_init(&context); - grpc_httpcli_get(&context, &pr.pollset, &req, - GRPC_TIMEOUT_SECONDS_TO_DEADLINE(10), freed_port_from_server, - &pr, &closure_list); - gpr_mu_lock(GRPC_POLLSET_MU(&pr.pollset)); - while (!pr.done) { - grpc_pollset_worker worker; - grpc_pollset_work(&pr.pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC), - GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1), &closure_list); - } - gpr_mu_unlock(GRPC_POLLSET_MU(&pr.pollset)); - - grpc_httpcli_context_destroy(&context); - grpc_closure_list_run(&closure_list); - grpc_pollset_shutdown(&pr.pollset, &shutdown_closure, &closure_list); - grpc_closure_list_run(&closure_list); - gpr_free(path); + grpc_httpcli_context_init (&context); + grpc_httpcli_get (&context, &pr.pollset, &req, GRPC_TIMEOUT_SECONDS_TO_DEADLINE (10), freed_port_from_server, &pr, &closure_list); + gpr_mu_lock (GRPC_POLLSET_MU (&pr.pollset)); + while (!pr.done) + { + grpc_pollset_worker worker; + grpc_pollset_work (&pr.pollset, &worker, gpr_now (GPR_CLOCK_MONOTONIC), GRPC_TIMEOUT_SECONDS_TO_DEADLINE (1), &closure_list); + } + gpr_mu_unlock (GRPC_POLLSET_MU (&pr.pollset)); + + grpc_httpcli_context_destroy (&context); + grpc_closure_list_run (&closure_list); + grpc_pollset_shutdown (&pr.pollset, &shutdown_closure, &closure_list); + grpc_closure_list_run (&closure_list); + gpr_free (path); } -static void free_chosen_ports() { - char *env = gpr_getenv("GRPC_TEST_PORT_SERVER"); - if (env != NULL) { - size_t i; - for (i = 0; i < num_chosen_ports; i++) { - free_port_using_server(env, chosen_ports[i]); +static void +free_chosen_ports () +{ + char *env = gpr_getenv ("GRPC_TEST_PORT_SERVER"); + if (env != NULL) + { + size_t i; + for (i = 0; i < num_chosen_ports; i++) + { + free_port_using_server (env, chosen_ports[i]); + } + gpr_free (env); } - gpr_free(env); - } - gpr_free(chosen_ports); + gpr_free (chosen_ports); } -static void chose_port(int port) { - if (chosen_ports == NULL) { - atexit(free_chosen_ports); - } +static void +chose_port (int port) +{ + if (chosen_ports == NULL) + { + atexit (free_chosen_ports); + } num_chosen_ports++; - chosen_ports = gpr_realloc(chosen_ports, sizeof(int) * num_chosen_ports); + chosen_ports = gpr_realloc (chosen_ports, sizeof (int) * num_chosen_ports); chosen_ports[num_chosen_ports - 1] = port; } -static int is_port_available(int *port, int is_tcp) { +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 int fd = socket (AF_INET, is_tcp ? SOCK_STREAM : SOCK_DGRAM, proto); int one = 1; struct sockaddr_in addr; - socklen_t alen = sizeof(addr); + socklen_t alen = sizeof (addr); int actual_port; - GPR_ASSERT(*port >= 0); - GPR_ASSERT(*port <= 65535); - if (fd < 0) { - gpr_log(GPR_ERROR, "socket() failed: %s", strerror(errno)); - return 0; - } + GPR_ASSERT (*port >= 0); + GPR_ASSERT (*port <= 65535); + if (fd < 0) + { + gpr_log (GPR_ERROR, "socket() failed: %s", strerror (errno)); + return 0; + } /* Reuseaddr lets us start up a server immediately after it exits */ - if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)) < 0) { - gpr_log(GPR_ERROR, "setsockopt() failed: %s", strerror(errno)); - close(fd); - return 0; - } + if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof (one)) < 0) + { + gpr_log (GPR_ERROR, "setsockopt() failed: %s", strerror (errno)); + close (fd); + return 0; + } /* Try binding to port */ addr.sin_family = AF_INET; addr.sin_addr.s_addr = INADDR_ANY; - addr.sin_port = htons((gpr_uint16)*port); - if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) { - gpr_log(GPR_DEBUG, "bind(port=%d) failed: %s", *port, strerror(errno)); - close(fd); - return 0; - } + addr.sin_port = htons ((gpr_uint16) * port); + if (bind (fd, (struct sockaddr *) &addr, sizeof (addr)) < 0) + { + gpr_log (GPR_DEBUG, "bind(port=%d) failed: %s", *port, strerror (errno)); + close (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); - return 0; - } - GPR_ASSERT(alen <= sizeof(addr)); - actual_port = ntohs(addr.sin_port); - GPR_ASSERT(actual_port > 0); - if (*port == 0) { - *port = actual_port; - } else { - GPR_ASSERT(*port == actual_port); - } - - close(fd); + if (getsockname (fd, (struct sockaddr *) &addr, &alen) < 0) + { + gpr_log (GPR_ERROR, "getsockname() failed: %s", strerror (errno)); + close (fd); + return 0; + } + GPR_ASSERT (alen <= sizeof (addr)); + actual_port = ntohs (addr.sin_port); + GPR_ASSERT (actual_port > 0); + if (*port == 0) + { + *port = actual_port; + } + else + { + GPR_ASSERT (*port == actual_port); + } + + close (fd); return 1; } -typedef struct portreq { +typedef struct portreq +{ grpc_pollset pollset; int port; int retries; @@ -208,54 +230,55 @@ typedef struct portreq { grpc_httpcli_context *ctx; } portreq; -static void got_port_from_server(void *arg, - const grpc_httpcli_response *response, - grpc_closure_list *closure_list) { +static void +got_port_from_server (void *arg, const grpc_httpcli_response * response, grpc_closure_list * closure_list) +{ size_t i; int port = 0; portreq *pr = arg; - if (!response || response->status != 200) { - grpc_httpcli_request req; - memset(&req, 0, sizeof(req)); - GPR_ASSERT(pr->retries < 10); - pr->retries++; - req.host = pr->server; - req.path = "/get"; - gpr_log(GPR_DEBUG, "failed port pick from server: retrying"); - sleep(1); - grpc_httpcli_get(pr->ctx, &pr->pollset, &req, - GRPC_TIMEOUT_SECONDS_TO_DEADLINE(10), got_port_from_server, - pr, closure_list); - return; - } - GPR_ASSERT(response); - GPR_ASSERT(response->status == 200); - for (i = 0; i < response->body_length; i++) { - GPR_ASSERT(response->body[i] >= '0' && response->body[i] <= '9'); - port = port * 10 + response->body[i] - '0'; - } - GPR_ASSERT(port > 1024); - gpr_mu_lock(GRPC_POLLSET_MU(&pr->pollset)); + if (!response || response->status != 200) + { + grpc_httpcli_request req; + memset (&req, 0, sizeof (req)); + GPR_ASSERT (pr->retries < 10); + pr->retries++; + req.host = pr->server; + req.path = "/get"; + gpr_log (GPR_DEBUG, "failed port pick from server: retrying"); + sleep (1); + grpc_httpcli_get (pr->ctx, &pr->pollset, &req, GRPC_TIMEOUT_SECONDS_TO_DEADLINE (10), got_port_from_server, pr, closure_list); + return; + } + GPR_ASSERT (response); + GPR_ASSERT (response->status == 200); + for (i = 0; i < response->body_length; i++) + { + GPR_ASSERT (response->body[i] >= '0' && response->body[i] <= '9'); + port = port * 10 + response->body[i] - '0'; + } + GPR_ASSERT (port > 1024); + gpr_mu_lock (GRPC_POLLSET_MU (&pr->pollset)); pr->port = port; - grpc_pollset_kick(&pr->pollset, NULL); - gpr_mu_unlock(GRPC_POLLSET_MU(&pr->pollset)); + grpc_pollset_kick (&pr->pollset, NULL); + gpr_mu_unlock (GRPC_POLLSET_MU (&pr->pollset)); } -static int pick_port_using_server(char *server) { +static int +pick_port_using_server (char *server) +{ grpc_httpcli_context context; grpc_httpcli_request req; portreq pr; grpc_closure_list closure_list = GRPC_CLOSURE_LIST_INIT; grpc_closure shutdown_closure; - grpc_init(); + grpc_init (); - memset(&pr, 0, sizeof(pr)); - memset(&req, 0, sizeof(req)); - grpc_pollset_init(&pr.pollset); - grpc_closure_init(&shutdown_closure, destroy_pollset_and_shutdown, - &pr.pollset); + memset (&pr, 0, sizeof (pr)); + memset (&req, 0, sizeof (req)); + grpc_pollset_init (&pr.pollset); + grpc_closure_init (&shutdown_closure, destroy_pollset_and_shutdown, &pr.pollset); pr.port = -1; pr.server = server; pr.ctx = &context; @@ -263,27 +286,27 @@ static int pick_port_using_server(char *server) { req.host = server; req.path = "/get"; - grpc_httpcli_context_init(&context); - grpc_httpcli_get(&context, &pr.pollset, &req, - GRPC_TIMEOUT_SECONDS_TO_DEADLINE(10), got_port_from_server, - &pr, &closure_list); - grpc_closure_list_run(&closure_list); - gpr_mu_lock(GRPC_POLLSET_MU(&pr.pollset)); - while (pr.port == -1) { - grpc_pollset_worker worker; - grpc_pollset_work(&pr.pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC), - GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1), &closure_list); - } - gpr_mu_unlock(GRPC_POLLSET_MU(&pr.pollset)); - - grpc_httpcli_context_destroy(&context); - grpc_pollset_shutdown(&pr.pollset, &shutdown_closure, &closure_list); - grpc_closure_list_run(&closure_list); + grpc_httpcli_context_init (&context); + grpc_httpcli_get (&context, &pr.pollset, &req, GRPC_TIMEOUT_SECONDS_TO_DEADLINE (10), got_port_from_server, &pr, &closure_list); + grpc_closure_list_run (&closure_list); + gpr_mu_lock (GRPC_POLLSET_MU (&pr.pollset)); + while (pr.port == -1) + { + grpc_pollset_worker worker; + grpc_pollset_work (&pr.pollset, &worker, gpr_now (GPR_CLOCK_MONOTONIC), GRPC_TIMEOUT_SECONDS_TO_DEADLINE (1), &closure_list); + } + gpr_mu_unlock (GRPC_POLLSET_MU (&pr.pollset)); + + grpc_httpcli_context_destroy (&context); + grpc_pollset_shutdown (&pr.pollset, &shutdown_closure, &closure_list); + grpc_closure_list_run (&closure_list); return pr.port; } -int grpc_pick_unused_port(void) { +int +grpc_pick_unused_port (void) +{ /* We repeatedly pick a port and then see whether or not it is available for use both as a TCP socket and a UDP socket. First, we pick a random large port number. For subsequent @@ -300,55 +323,68 @@ int grpc_pick_unused_port(void) { int is_tcp = 1; int trial = 0; - char *env = gpr_getenv("GRPC_TEST_PORT_SERVER"); - if (env) { - int port = pick_port_using_server(env); - gpr_free(env); - if (port != 0) { - chose_port(port); - } - return port; - } - - for (;;) { - int port; - trial++; - if (trial == 1) { - port = getpid() % (65536 - 30000) + 30000; - } else if (trial <= NUM_RANDOM_PORTS_TO_PICK) { - port = rand() % (65536 - 30000) + 30000; - } else { - port = 0; - } - - if (has_port_been_chosen(port)) { - continue; + char *env = gpr_getenv ("GRPC_TEST_PORT_SERVER"); + if (env) + { + int port = pick_port_using_server (env); + gpr_free (env); + if (port != 0) + { + chose_port (port); + } + return port; } - if (!is_port_available(&port, is_tcp)) { - continue; + for (;;) + { + int port; + trial++; + if (trial == 1) + { + port = getpid () % (65536 - 30000) + 30000; + } + else if (trial <= NUM_RANDOM_PORTS_TO_PICK) + { + port = rand () % (65536 - 30000) + 30000; + } + else + { + port = 0; + } + + if (has_port_been_chosen (port)) + { + continue; + } + + if (!is_port_available (&port, is_tcp)) + { + continue; + } + + GPR_ASSERT (port > 0); + /* Check that the port # is free for the other type of socket also */ + if (!is_port_available (&port, !is_tcp)) + { + /* In the next iteration trial to bind to the other type first + because perhaps it is more rare. */ + is_tcp = !is_tcp; + continue; + } + + chose_port (port); + return port; } - GPR_ASSERT(port > 0); - /* Check that the port # is free for the other type of socket also */ - if (!is_port_available(&port, !is_tcp)) { - /* In the next iteration trial to bind to the other type first - because perhaps it is more rare. */ - is_tcp = !is_tcp; - continue; - } - - chose_port(port); - return port; - } - /* The port iterator reached the end without finding a suitable port. */ return 0; } -int grpc_pick_unused_port_or_die(void) { - int port = grpc_pick_unused_port(); - GPR_ASSERT(port > 0); +int +grpc_pick_unused_port_or_die (void) +{ + int port = grpc_pick_unused_port (); + GPR_ASSERT (port > 0); return port; } |