diff options
author | 2017-12-06 11:55:15 -0800 | |
---|---|---|
committer | 2017-12-06 11:55:15 -0800 | |
commit | 782676edede4be5ad83bf282423ff1aa0571ded3 (patch) | |
tree | 8bd7455e173b577793f075e111779f1e83743bdf /src/core/ext/transport | |
parent | 650595ea15f50dfee318fbe116be96afe0fab191 (diff) | |
parent | d742f2893fba18d6c4a7b7e780fb4d79b8232a3b (diff) |
Merge pull request #13655 from yang-g/ping
Bug fix, use the last_sent ping time for next send
Diffstat (limited to 'src/core/ext/transport')
-rw-r--r-- | src/core/ext/transport/chttp2/transport/writing.cc | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/core/ext/transport/chttp2/transport/writing.cc b/src/core/ext/transport/chttp2/transport/writing.cc index 204b5a7708..cfaa0d0f70 100644 --- a/src/core/ext/transport/chttp2/transport/writing.cc +++ b/src/core/ext/transport/chttp2/transport/writing.cc @@ -69,14 +69,15 @@ static void maybe_initiate_ping(grpc_exec_ctx* exec_ctx, return; } grpc_millis now = grpc_exec_ctx_now(exec_ctx); + + grpc_millis next_allowed_ping_interval = + (t->keepalive_permit_without_calls == 0 && + grpc_chttp2_stream_map_size(&t->stream_map) == 0) + ? 7200 * GPR_MS_PER_SEC + : t->ping_policy.min_sent_ping_interval_without_data; grpc_millis next_allowed_ping = - t->ping_state.last_ping_sent_time + - t->ping_policy.min_sent_ping_interval_without_data; - if (t->keepalive_permit_without_calls == 0 && - grpc_chttp2_stream_map_size(&t->stream_map) == 0) { - next_allowed_ping = - t->ping_recv_state.last_ping_recv_time + 7200 * GPR_MS_PER_SEC; - } + t->ping_state.last_ping_sent_time + next_allowed_ping_interval; + if (next_allowed_ping > now) { /* not enough elapsed time between successive pings */ if (grpc_http_trace.enabled() || grpc_bdp_estimator_trace.enabled()) { |