aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/ext/transport
diff options
context:
space:
mode:
authorGravatar ncteisen <ncteisen@gmail.com>2017-12-08 12:57:26 -0800
committerGravatar ncteisen <ncteisen@gmail.com>2017-12-08 12:57:26 -0800
commita77fb7dc6792a48edc30100482032844c56feedc (patch)
tree3e61e066a3c31a24e22c2bf2b74caa886bca3094 /src/core/ext/transport
parent228089f7b87ac74e17c6d4470cb2ebf0371a0844 (diff)
Read new env var to toggle
Diffstat (limited to 'src/core/ext/transport')
-rw-r--r--src/core/ext/transport/chttp2/transport/chttp2_transport.cc18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc
index 768cee1190..f300ae9188 100644
--- a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc
+++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc
@@ -261,6 +261,9 @@ void grpc_chttp2_ref_transport(grpc_chttp2_transport* t) { gpr_ref(&t->refs); }
static const grpc_transport_vtable* get_vtable(void);
+// -1 == unset, 0 == disabled, 1 == enabled
+static int flow_control_enabled = -1;
+
static void init_transport(grpc_exec_ctx* exec_ctx, grpc_chttp2_transport* t,
const grpc_channel_args* channel_args,
grpc_endpoint* ep, bool is_client) {
@@ -544,12 +547,19 @@ static void init_transport(grpc_exec_ctx* exec_ctx, grpc_chttp2_transport* t,
}
}
- if (true /* disable flow control*/) {
- t->flow_control.Init<grpc_core::chttp2::TransportFlowControlDisabled>(t);
- enable_bdp = false;
- } else {
+ if (flow_control_enabled == -1) {
+ char* env_variable = gpr_getenv("GRPC_EXPERIMENTAL_DISABLE_FLOW_CONTROL");
+ if (env_variable != nullptr) flow_control_enabled = 0;
+ else flow_control_enabled = 1;
+ gpr_free(env_variable);
+ }
+
+ if (flow_control_enabled) {
t->flow_control.Init<grpc_core::chttp2::TransportFlowControl>(exec_ctx, t,
enable_bdp);
+ } else {
+ t->flow_control.Init<grpc_core::chttp2::TransportFlowControlDisabled>(t);
+ enable_bdp = false;
}
/* No pings allowed before receiving a header or data frame. */