aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core/util/reconnect_server.c
diff options
context:
space:
mode:
authorGravatar Aaron Isotton <aaronisotton@google.com>2016-02-26 11:53:22 -0800
committerGravatar Aaron Isotton <aaronisotton@google.com>2016-03-08 14:21:31 -0800
commit24e69bf02afb0f4abdd637d1513e93e5aa227e7e (patch)
tree0d8cb64c15f1d96ef83cebab98a2ff0cd7c63cc4 /test/core/util/reconnect_server.c
parent0e67d191267aa9bb641bbeaf11246878c3521e75 (diff)
Added a channel argument to set the maximum reconnect backoff duration. Extended the interop test to test the custom reconnect backoffs.
This closes #5377.
Diffstat (limited to 'test/core/util/reconnect_server.c')
-rw-r--r--test/core/util/reconnect_server.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/test/core/util/reconnect_server.c b/test/core/util/reconnect_server.c
index 57225aa8a3..bab34d8e5b 100644
--- a/test/core/util/reconnect_server.c
+++ b/test/core/util/reconnect_server.c
@@ -60,8 +60,12 @@ static void pretty_print_backoffs(reconnect_server *server) {
i, backoff / 1000.0, expected_backoff / 1000.0,
(backoff - expected_backoff) * 100.0 / expected_backoff);
expected_backoff *= 1.6;
- if (expected_backoff > 120 * 1000) {
- expected_backoff = 120 * 1000;
+ int max_reconnect_backoff_ms = 120 * 1000;
+ if (server->max_reconnect_backoff_ms > 0) {
+ max_reconnect_backoff_ms = server->max_reconnect_backoff_ms;
+ }
+ if (expected_backoff > max_reconnect_backoff_ms) {
+ expected_backoff = max_reconnect_backoff_ms;
}
}
}
@@ -108,6 +112,7 @@ void reconnect_server_init(reconnect_server *server) {
server->head = NULL;
server->tail = NULL;
server->peer = NULL;
+ server->max_reconnect_backoff_ms = 0;
}
void reconnect_server_start(reconnect_server *server, int port) {