aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/ext/transport/chttp2/server
diff options
context:
space:
mode:
authorGravatar ncteisen <ncteisen@gmail.com>2018-10-29 14:46:51 -0700
committerGravatar ncteisen <ncteisen@gmail.com>2018-10-29 14:46:51 -0700
commit156d381db4fa375cf8dd6a4c558cfa8e60e53c83 (patch)
tree7aa8afe4add03a4258067ee94f595bc77e23e7f5 /src/core/ext/transport/chttp2/server
parent679abd779ae3c06361e868b45c970258f4353fab (diff)
parentccfd919190babf042c2876e6b94fa38a2508b424 (diff)
Merge branch 'master' of https://github.com/grpc/grpc into channelz-listen-sockets
Diffstat (limited to 'src/core/ext/transport/chttp2/server')
-rw-r--r--src/core/ext/transport/chttp2/server/chttp2_server.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/core/ext/transport/chttp2/server/chttp2_server.cc b/src/core/ext/transport/chttp2/server/chttp2_server.cc
index 0b0adb9786..0f601c4178 100644
--- a/src/core/ext/transport/chttp2/server/chttp2_server.cc
+++ b/src/core/ext/transport/chttp2/server/chttp2_server.cc
@@ -143,7 +143,6 @@ static void on_handshake_done(void* arg, grpc_error* error) {
// If the handshaking succeeded but there is no endpoint, then the
// handshaker may have handed off the connection to some external
// code, so we can just clean up here without creating a transport.
- // TODO(juanlishen): Do we need to free the memory to resource user?
if (args->endpoint != nullptr) {
grpc_transport* transport = grpc_create_chttp2_transport(
args->args, args->endpoint, false, resource_user);
@@ -169,6 +168,11 @@ static void on_handshake_done(void* arg, grpc_error* error) {
connection_state, grpc_schedule_on_exec_ctx);
grpc_timer_init(&connection_state->timer, connection_state->deadline,
&connection_state->on_timeout);
+ } else {
+ if (resource_user != nullptr) {
+ grpc_resource_user_free(resource_user,
+ GRPC_RESOURCE_QUOTA_CHANNEL_SIZE);
+ }
}
}
grpc_handshake_manager_pending_list_remove(