aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar David Klempner <klempner@google.com>2016-05-13 15:21:57 -0700
committerGravatar David Klempner <klempner@google.com>2016-05-13 15:21:57 -0700
commitc7614cf2779c4909d8ec3f64923242cfd02f157a (patch)
treed241faf78a984d88843346a1a9c94e3a4365bbc7
parent2ecb08f5a76f97443deae01befdfee679a5c9b6d (diff)
Fix declarations in port.h to not be ambiguous in C due to K&R.
Also actually add the port parameter to grpc_recycle_unused_port. Also remove the downsizing gpr_realloc in the recycle codepath, which is unnecessary and can free the pointer.
-rw-r--r--test/core/util/port.h6
-rw-r--r--test/core/util/port_posix.c25
-rw-r--r--test/core/util/port_windows.c1
3 files changed, 15 insertions, 17 deletions
diff --git a/test/core/util/port.h b/test/core/util/port.h
index 4b70fdc978..faeabbae9b 100644
--- a/test/core/util/port.h
+++ b/test/core/util/port.h
@@ -40,16 +40,16 @@ extern "C" {
/* pick a port number that is currently unused by either tcp or udp. return
0 on failure. */
-int grpc_pick_unused_port();
+int grpc_pick_unused_port(void);
/* pick a port number that is currently unused by either tcp or udp. abort
on failure. */
-int grpc_pick_unused_port_or_die();
+int grpc_pick_unused_port_or_die(void);
/* Return a port which was previously returned by grpc_pick_unused_port().
* Implementations of grpc_pick_unused_port() backed by a portserver may limit
* the total number of ports available; this lets a binary return its allocated
* ports back to the server if it is going to allocate a large number. */
-void grpc_recycle_unused_port();
+void grpc_recycle_unused_port(int port);
#ifdef __cplusplus
}
diff --git a/test/core/util/port_posix.c b/test/core/util/port_posix.c
index 32b1849ec4..7e270ff975 100644
--- a/test/core/util/port_posix.c
+++ b/test/core/util/port_posix.c
@@ -73,21 +73,20 @@ static int free_chosen_port(int port) {
int found = 0;
size_t found_at = 0;
char *env = gpr_getenv("GRPC_TEST_PORT_SERVER");
- if (env != NULL) {
- /* Find the port and erase it from the list, then tell the server it can be
- freed. */
- for (i = 0; i < num_chosen_ports; i++) {
- if (chosen_ports[i] == port) {
- GPR_ASSERT(found == 0);
- found = 1;
- found_at = i;
- }
+ /* Find the port and erase it from the list, then tell the server it can be
+ freed. */
+ for (i = 0; i < num_chosen_ports; i++) {
+ if (chosen_ports[i] == port) {
+ GPR_ASSERT(found == 0);
+ found = 1;
+ found_at = i;
}
- if (found) {
- chosen_ports[found_at] = chosen_ports[num_chosen_ports - 1];
+ }
+ if (found) {
+ chosen_ports[found_at] = chosen_ports[num_chosen_ports - 1];
+ num_chosen_ports--;
+ if (env) {
grpc_free_port_using_server(env, port);
- num_chosen_ports--;
- chosen_ports = gpr_realloc(chosen_ports, sizeof(int) * num_chosen_ports);
}
}
return found;
diff --git a/test/core/util/port_windows.c b/test/core/util/port_windows.c
index 29f3404b2a..36c8d2856c 100644
--- a/test/core/util/port_windows.c
+++ b/test/core/util/port_windows.c
@@ -90,7 +90,6 @@ static int free_chosen_port(int port) {
chosen_ports[found_at] = chosen_ports[num_chosen_ports - 1];
grpc_free_port_using_server(env, port);
num_chosen_ports--;
- chosen_ports = gpr_realloc(chosen_ports, sizeof(int) * num_chosen_ports);
}
}
return found;